Story Details

  • Dijkstra On the foolishness of "natural language programming"

    Posted: 2025-04-03 03:30:30

    Edsger Dijkstra argues against "natural language programming," believing it a foolish endeavor. He contends that natural language's inherent ambiguity and imprecision make it unsuitable for expressing the rigorous logic required in programming. Instead of striving for superficial readability through natural language, Dijkstra advocates for focusing on developing formal notations and abstractions that are clear, concise, and verifiable, even if they appear less "natural" initially. He emphasizes that programming requires a level of precision and unambiguity that natural language simply cannot provide, and attempting to bridge this gap will ultimately lead to more confusion and less reliable software.

    Summary of Comments ( 131 )
    https://news.ycombinator.com/item?id=43564386

    HN commenters generally agree with Dijkstra's skepticism of "natural language programming." Some highlight the ambiguity inherent in natural language as fundamentally incompatible with the precision required for programming. Others point out the success of domain-specific languages (DSLs) as a middle ground, offering a more human-readable syntax without sacrificing clarity. One commenter suggests Dijkstra's critique is more aimed at vague specifications disguised as programs rather than genuinely well-defined natural language programming. Several commenters mention the value of formal methods and mathematical notation for clear program design, echoing Dijkstra's sentiments. A few offer historical context, suggesting the "natural language programming" Dijkstra criticized likely refers to early, overly ambitious attempts, and that modern NLP advancements might warrant revisiting the concept.