Programming as if chatting with AI? The 'dangerous illusion' warned of by a genius programmer in 1978

A programmer agonizing in front of a blackboard filled with complex symbols.
AI Summary

Computer science legend Edsger Dijkstra strongly criticized natural language programming back in 1978, arguing that it could collapse precise logical systems and foster intellectual laziness.

Imagine this: You tell an AI, “Organize these data points for me.” In the past, you would have had to write complex code line by line, but now we live in a world where you can get the job done simply by giving commands as if you were talking to a person. We often think of this as a magical advancement in technology. However, more than 40 years ago, one legendary computer scientist in this field already foresaw this phenomenon and issued a warning. He called it “The New Illiteracy.”

Why does this matter?

We live in an era where “AI does all the coding.” It is truly convenient to have results pop out just by giving commands in “natural language” (the language humans use in daily life). However, as we grow accustomed to the convenience of AI, we are gradually forgetting why computers work the way they do and what logical precision truly means. The essay written by Edsger W. Dijkstra in 1978, On the foolishness of “natural language programming”, offers a warning that remains highly relevant today. [Ref 5, Ref 6, Ref 11, Ref 14]

Understanding it simply: Why is natural language unsuitable for programming?

Dijkstra viewed natural language not as an “ally” of precise thinking, but rather as an “enemy.” [Ref 6]

To put it simply, daily conversation is like a “photo with heavy filters.” We can tell a friend, “Bring that thing over,” and they understand perfectly what we mean based on context. However, a computer is like a “high-resolution lens with no filters whatsoever.” If you input a command even slightly ambiguously, it will often bring you the wrong data.

Dijkstra cited the verb “to be” as a prime example of this. [Ref 14] The English verb “is” carries multiple meanings. It can mean “is a part of” (e.g., “John is a student”) or “is equal to” (e.g., “John is the culprit”). While humans can distinguish these based on context, a computer can be confused by these two logically distinct commands. His core argument was that computer programming requires “Formal Symbolism”—which strips away such ambiguity and is as clear as 0s and 1s. [Ref 1, Ref 2, Ref 14]

Current situation: Walking the tightrope between convenience and precision

Of course, today’s artificial intelligence models possess a scale and sophistication that are worlds apart from the natural language programming of the past. [Ref 9] Yet, Dijkstra’s concerns remain sharp. He criticized the trend of natural language programming as “foolishness” that ultimately encourages “intellectual laziness” in users and erodes the essential training and precision that programming demands. [Ref 12]

We are living in the era of “Vibe Coding,” but if we lose the ability to judge for ourselves why AI-generated code resulted in an error, we may truly be entering an era of “The New Illiteracy.” [Ref 6, Ref 7]

What will happen next?

Technology will continue to advance, but there is one thing we must remember: just because AI understands natural language, it does not mean that programming has become a task that “can be less accurate.” Even on the day when AI perfectly understands every one of our commands, computers will still only operate within the logical systems defined by humans. Dijkstra’s teaching—that the essence of programming, whether using natural language or symbols, is the “implementation of precise and accurate logic”—will remain unchanged in the future.


MindTickleBytes AI Reporter’s View

Dijkstra’s sharp criticism feels like a warning sent from 1978. As we enjoy the convenience of delegating coding to AI, it makes us pause and reflect on whether we are losing our fundamental strength: logical rigor. We must not forget the truth that as tools improve, the user’s foundation must become even more robust.


References

  1. On the foolishness of “natural language programming”
  2. On the foolishness of “natural language programming”
  3. On the foolishness of “natural language programming”
  4. Dijkstra Called It in 1978: Natural Language Programming Is Still …
  5. PDF On the foolishness of “natural language programming”
  6. On Natural Language Programming – @dsyme on software
  7. On the foolishness of “natural language programming”
  8. Of course. EWD 1008, titled “On the foolishness of ‘natural language…..
  9. Dijkstra on foolishness of Natural Language Programming
  10. Ten months ago, I published an article by Edsger W. Dijkstra from 1978…
AD
Test Your Understanding
Q1. What was the biggest reason Edsger Dijkstra criticized natural language programming?
  • Ambiguity of natural language
  • Lack of computer performance
  • Difficulty in user education
Dijkstra viewed natural language as inherently ambiguous and unsuitable for computer programming, where precision is vital.
Q2. Which word did Dijkstra cite as representative of the 'ambiguity of natural language'?
  • And
  • To be
  • If
'To be' can imply both 'is a part of' and 'is equal to,' which can confuse a computer.
Q3. What did Dijkstra call the phenomenon of relying on natural language programming?
  • The New Illiteracy
  • Intellectual laziness
  • Logical leap
He strongly warned against this, calling it 'The New Illiteracy.'
Programming as if chatting ...
0:00