You Should Read "Programming as Theory Building"
- title
- You Should Read "Programming as Theory Building"
- type
- summary
- summary
- CodeUtopia on Naur's 1985 essay; programming is building a shared mental theory of the program, with code, docs, and tests as artifacts of that theory
- tags
- software-engineering, philosophy, llm
- created
- 2026-05-10
- updated
- 2026-05-10
A short post recommending Peter Naur's 1985 essay "Programming as Theory Building" โ the writer treats it as the missing concept that ties together everything that previously felt like disconnected best-practice talk.
Naur's claim is that the primary product of programming is not the code, the docs, or the tests, but the theory โ the shared mental model of what the program does, why, and how it relates to the world around it. Code, documentation, architecture, and tests are all artifacts that exist to communicate and preserve that theory.
CodeUtopia's take: every conversation about "good code" or "maintainable code" is actually a conversation about how to communicate the program's theory. Clean code is easier to read because it's a clearer expression of the theory. Architecture is structure that makes the theory's shape obvious. Tests are executable assertions of theory invariants. Diagrams and design docs are theory exposition. The reason developers treat these as separate disciplines is they've lost the unifying frame.
The practical consequence Naur emphasized โ and CodeUtopia underlines โ is that you cannot meaningfully modify a program without understanding its theory. The theory lives primarily in the heads of the people who built it. When those people leave, the program "dies" in Naur's terms; subsequent maintainers can keep it running, but they can only patch around the parts they don't understand.
Why this matters in 2026: it reframes the no-silver-bullet-llms debate. If LLMs generate code without the originating engineers ever building the theory, the program is born theory-less. The visible artifact (code) is there, but the substrate (mental model held by humans) never formed. This is the steel-manned version of the skill-atrophy-supervision-paradox objection โ and it lines up with building-syntaqlite-ai's observation that disciplined AI use does still require a designer who holds the theory.
Cross-references: programming-as-theory-building, mean-free-path-language, clean-code-coding-agents, no-silver-bullet-llms, building-syntaqlite-ai, codeutopia-blog.