hn.today

The foolishness of "natural language programming" (1978)

cs.utexas.edu162 points98 comments
Screenshot of The foolishness of "natural language programming" (1978)

Edsger W. Dijkstra argues that trying to program computers in everyday natural languages is misguided: it redistributes complexity rather than reducing it. Machines have always been literal and thus exposed human imprecision; the response has been higher-level formal languages that catch many errors with simple, checkable rules. Replacing formal notation with natural-language interfaces would vastly increase the machine's burden and the communication costs on both sides, and might even make programming harder rather than easier. Narrow, well-defined interfaces are preferable because they limit the joint work required to cooperate across them.

He supports this with historical analogy and practical critique: mathematics advanced only when thinkers adopted concise symbolisms (Vieta, Descartes, Leibniz, Boole) that made manipulation rigorous and accessible, whereas periods dominated by rhetorical or pictorial exposition stagnated. Formal notation is thus a privilege that extends reasoning beyond a few geniuses. He also warns that declining language mastery ("the New Illiteracy") weakens any case for natural-language programming. His concluding verdict is blunt: machines programmable in natural tongues would be both difficult to build and to use.

Read on cs.utexas.edu98 comments on Hacker News

Summary generated by AI from the linked article. hn.today is not affiliated with Hacker News or Y Combinator.

More in Programming

We have traits at home

We have traits at home

Zig uses two main approaches for polymorphism: runtime interfaces with dynamic dispatch and compile-time duck typing for static polymorphism. These methods offer different tradeoffs in performance and safety, with Zig emphasizing simplicity and compile-time checks over complex abstractions. (axelmagn.com)

The daily digest

Today's best Hacker News stories, summarized and screenshotted, one email a day.