- Author
- Edsger W. Dijkstra, transcribed by Tristram Brelstaff
- Published
- Undated; the transcription was revised 19 November 2010
- Kind
- Short essay from a technical memo series, transcribed online
- Original
- www.cs.utexas.edu/~EWD/transcriptions/EWD06xx/EWD667.html
- Subject
- Checkable specs for coding agents
- Themes
- Saying it exactly
What it is
Edsger Dijkstra was a computer scientist and a Burroughs Research Fellow. The essay answers calls for machines that can be instructed in everyday language. It argues that this would not make life easier.
What it says
- Dijkstra says high-level languages turned many silly mistakes into error messages. Before, they produced wrong answers.
- Dijkstra argues that changing an interface can raise the work on both sides. Hence narrow interfaces are preferred.
- The essay says Greek mathematics stalled while it stayed verbal. Modern mathematics grew from designed formal symbols.
- Dijkstra says formal texts rule out nonsense. Native tongues make that nonsense almost impossible to avoid.
- Dijkstra says the naturalness of everyday language is an ease. It is the ease of making statements whose nonsense is not obvious.
- Dijkstra guesses that machines programmed in our native tongues are damned difficult to make. They would be as hard to use.
What evidence it gives
The essay gives argument only. It sketches the history of mathematics in a few sentences. It gives no experiment, data or worked example of natural language programming.
Interests and limits
The essay is short and was written long before language models. It argues from the author's judgment and from history. It does not test any system. It also includes a side remark about a decline in writing skill, which is opinion.
Connections
These links are this wiki's own reading, not claims the sources make.
- A sufficiently detailed spec is code. Gonzalez borrows Dijkstra's phrase about the vain attempt at verbal precision. Dijkstra wrote long before language models, and Gonzalez tests the claim on one. The objection has survived a change of machine.
- Prompts are code, .json/.md files are state. Zechner calls a natural language prompt a program. Yet the precise work moves into a generated JSON plan, built by a script. Dijkstra's prediction shows up inside the workflow that seems to refute it.
- Skill Issue: Harness Engineering for Coding Agents. Dijkstra prefers narrow interfaces, since a wider one can raise work on both sides. HumanLayer's team found this by swapping a Linear MCP server for a small CLI. The old argument now gets paid in tokens.
- Forth: The programming language that writes itself: The Web Page. Dijkstra values formal texts because they rule nonsense out. Gauer's Forth has almost no syntax, and even comments are ordinary words. So how much ruling-out comes from grammar, and how much from defined words?
- Hangul. Dijkstra credits modern mathematics to designed formal symbols. Hangul is a designed script too, with consonant shapes based on speech organs. But Hangul serves everyday language. So design and ease of use may be less opposed than Dijkstra's essay suggests.