Natural Language Programming
Natural language programming is a programming paradigm that allows users to express computational logic and program requirements in human natural language, such as English or Chinese, rather than formal programming languages. Its core characteristics include lowering the syntactic barrier to programming, improving the readability of human-computer interaction, and applying natural language processing techniques to parse user intent and convert it into executable instructions or code. The paradigm is applied in programming assistance, intelligent question answering, and low-code development.
Core Facts
Timeline (last 90 days)
Natural language programming requires users to learn to write tasks clearly, including goals, constraints, output format and acceptance criteria; the entry barrier is not high but deliberate practice is needed.
The core argument of EWD667 is that natural language is vague, ambiguous and context-dependent, whereas programs require precise, unambiguous, mechanically executable instructions, so treating natural language as a programming language is a misunderstanding of the nature of programming.
Some developers in the Hacker News comment section believe that the current narrative of "programming in natural language" is highly isomorphic to what Dijkstra criticized.
One commenter summarized: natural language programming lowers the barrier to entry but shifts complexity to the verification stage, and users need to review AI-generated code more carefully.
Some commenters believe that when Dijkstra was writing, machines' ability to understand natural language was essentially zero, whereas today large models can handle ambiguity and context to a considerable degree, so EWD667 criticizes "treating natural language as a substitute," and the more realistic current approach is "natural language as the interface, formal verification as the safeguard."
Automatically converting vague natural language instructions into formal specifications is itself an unsolved problem, so the idea of "natural language as the interface, formal verification as the safeguard" pushes the formalization step later rather than eliminating it.
Generating code from a one-line prompt suits small personal tools but not commercial projects, because code quality and bugs are uncontrollable and there is no code review step.
Natural language programming refers to the paradigm of describing program requirements in everyday human language and having the system translate them into executable code.
All Facts (9)
AI-assisted programming marks the first time natural language has become the primary interface for human-computer interaction, fundamentally eliminating the syntax barrier.
65%UnverifiedNatural language programming requires users to learn to write tasks clearly, including goals, constraints, output format and acceptance criteria; the entry barrier is not high but deliberate practice is needed.
50%UnverifiedOne commenter summarized: natural language programming lowers the barrier to entry but shifts complexity to the verification stage, and users need to review AI-generated code more carefully.
50%UnverifiedThe core argument of EWD667 is that natural language is vague, ambiguous and context-dependent, whereas programs require precise, unambiguous, mechanically executable instructions, so treating natural language as a programming language is a misunderstanding of the nature of programming.
50%UnverifiedSome developers in the Hacker News comment section believe that the current narrative of "programming in natural language" is highly isomorphic to what Dijkstra criticized.
50%UnverifiedSome commenters believe that when Dijkstra was writing, machines' ability to understand natural language was essentially zero, whereas today large models can handle ambiguity and context to a considerable degree, so EWD667 criticizes "treating natural language as a substitute," and the more realistic current approach is "natural language as the interface, formal verification as the safeguard."
50%UnverifiedAutomatically converting vague natural language instructions into formal specifications is itself an unsolved problem, so the idea of "natural language as the interface, formal verification as the safeguard" pushes the formalization step later rather than eliminating it.
50%UnverifiedGenerating code from a one-line prompt suits small personal tools but not commercial projects, because code quality and bugs are uncontrollable and there is no code review step.
50%UnverifiedNatural language programming refers to the paradigm of describing program requirements in everyday human language and having the system translate them into executable code.
50%