Industry & Society

Dijkstra's 1978 Warning Still Frames the LLM Programming Debate

Dijkstra's 1978 case against natural-language programming still frames today's debate: LLMs may replace developer judgment, but they do not preserve program semantics the way compilers do.

139 points85 comments

Edsger W. Dijkstra argued in 1978 that natural-language programming is a false remedy for formal notation.

Changing the interface does not simply shift fixed work: communication across the boundary adds effort, making narrow interfaces preferable. Dijkstra cites Greek mathematics, Moslem algebra and medieval scholasticism as cases where verbal or pictorial methods stalled, while formal symbolisms from Vieta, Descartes, Leibniz and Boole enabled reliable manipulation.

He predicts that if natural language had been the only input from the start, computer science would mainly be the black art of bootstrapping to a formal system, possibly taking thousands of years. A remark adds that declining mastery of language, the 'New Illiteracy,' should discourage believers in natural-language programming.

Key takeaways

  • Dijkstra treats formal symbols as a privilege rather than a burden: their manipulations need satisfy only a few simple rules, which rules out nonsense that native tongues make almost impossible to avoid. School children can then do what once only genius could achieve.
  • Historical examples include Greek mathematics stalled as verbal and pictorial activity, Moslem algebra dying when it returned to rhetoric, and Western Europe advancing once it escaped medieval scholasticism through designed formalisms.
  • The essay predicts that if natural language had been the only interface from the start, computer science would consist mainly of the black art of bootstrapping to a sufficiently well-defined formal system, requiring all the world's intellect and perhaps a few thousand years.
  • A closing remark on 'The New Illiteracy' argues that declining mastery of language in the Western world should discourage believers in natural-language programming who lack the technical insight to predict its failure.
  • Dijkstra also criticizes a 1977 technical report that avoided standard logical symbols 'for the sake of clarity,' suggesting the misunderstanding is not isolated.

What people think

LLMs replace developers, not compilers

The analogy that English is a higher-level language fails on semantics: compilers preserve the meaning of a program, while a natural-language specification admits many implementations. An LLM supplies developer judgment rather than mechanical translation, so it does not make programming languages obsolete as a way to enforce properties. The counterpoint is that LLMs may challenge the next generation of compilers and shift engineers into another metasystem.

Prompting spans abstraction levels

Natural-language interaction is not one mode. A prompt can ask for a whole calculator or specify an imperative step such as declaring a boolean array and setting positions on key presses. The latter resembles an imperative language with the LLM as compiler, which makes blanket claims about natural-language programming imprecise. If instructing an agent counts as programming, then asking a programmer to write code already did too.

Determinism and verification limits

LLM outputs are stochastic, but so are human outputs; the sharper distinction is that code can create determinism while model behavior depends on weights, context and seed. Agents cannot refuse instructions the way people can. In practice, reviewing behavior through narrated recordings rather than code can miss conditional logic that triggers only on a future date, leaving verification as a hard limit.

Human learning is more data-efficient

Humans learn from far less material than LLMs and still need prompting, meetings and direction to produce the required result. One developer reports working without meetings and sending completed work for feedback, suggesting organizational context matters as much as model capability. The comparison qualifies claims that LLMs simply abstract away the work.

Inform 7 shows a narrow exception

Inform 7, a language for writing text adventures, is the recurring example of natural-language syntax that works because its domain is constrained. The closest credible path to natural-language programming may be richer domain-specific languages rather than a general natural language that compiles to machine code. That narrows the scope of any general claim.

Transcription artifacts in the essay

The em dashes in the online text are a transcription choice: the typed original used double hyphens on a fixed-pitch Hermes Ambassador typewriter. A question remains about whether the original was written with a fountain pen and typed later. This is textual provenance, not a challenge to the argument.