Hall of FamePeter Naur198530 min readintermediate
Programming as Theory Building
Summary
This classic essay argues that a program is fundamentally a 'theory' – a shared mental construct in the minds of its developers, not merely its source code. The code is a lossy representation, and losing the people who hold this theory means losing the program's true essence and design rationale.
- A program's source code is an incomplete and lossy representation of the underlying 'theory' held by its developers.
- The 'theory' encompasses the deep understanding, explanations, and justifications for the program's design and behavior.
- Losing the original developers means losing this crucial 'theory,' making effective maintenance and evolution extremely difficult.
- Documentation, however thorough, cannot fully convey the nuanced, implicit knowledge of the program's theory.
This foundational essay is essential for any software engineer or manager to understand the human-centric nature of software and the challenges of knowledge transfer and long-term maintenance.
9/10