🤖 AI Summary
Edsger Dijkstra’s 1978 essay rejects the idea that programming should be done in ordinary human languages. He argues that the supposed burden of formal notation is actually a strength: formal symbol systems enforce simple, rigorous rules that rule out large classes of nonsense and make reasoning, teaching, and verification tractable. History—Greek geometry’s verbal dead ends, the failure of rhetorical algebra, and the breakthroughs after adoption of symbolic notation by Vieta, Descartes and Leibniz—supports his claim. Converting programming to natural language merely shifts the work: machines would bear far greater complexity to resolve ambiguity, and humans would face harder-to-detect errors because natural language is inherently tolerant of imprecision.
For the AI/ML community this is a cautionary, still-relevant reminder about interface design and trade-offs. Natural-language interfaces increase the machine’s burden and the joint cognitive work of human–machine cooperation; they can enlarge rather than shrink overall effort and reduce the power of formal verification. Dijkstra’s call for “narrow interfaces” means designing precise, constrained languages or APIs where correctness can be checked by simple rules. He also warns of a societal side effect—declining mastery of disciplined expression (“The New Illiteracy”)—which would further undermine attempts to program reliably in ordinary speech. In short: natural language may make systems seem easier to use, but without rigorous formalization it risks brittleness, ambiguity, and greater debugging and verification costs.
Loading comments...
login to comment
loading comments...
no comments yet