I somewhat disagree with this. In real life, say in some company, the inception of an idea for a new feature is made in the head of some business person. This person will not speak any formal language. So however you turn it, some translation from natural language to machine language will have to be done to implement the feature. Typically the first step, translation from natural to formal language, will be done by b…
The first step isn't from natural language to formal language. It's from the idea in your head into natural language. Getting that step right in a way that a computer could hope to turn into a useful thing is hard.
Dijkstra On the foolishness of "natural language programming"
41–50 of 281 posts
Re: Dijkstra On the foolishness of "natural language programming"
#42I somewhat disagree with this. In real life, say in some company, the inception of an idea for a new feature is made in the head of some business person. This person will not speak any formal language. So however you turn it, some translation from natural language to machine language will have to be done to implement the feature. Typically the first step, translation from natural to formal language, will be done by b…
Re: Dijkstra On the foolishness of "natural language programming"
#43Reminds me of another recurring idea of replacing code with flowcharts. First I've seen that idea coming from some unknown Soviet professor from 80s, and then again and again from different people from different countries in different contexts. Every time it is sold as a total breakthrough in simplicity and also every time it proves to be a bloat of complexity and a productivity killer instead. Or weak typing. How ma…
FWIW, neural networks would be in that pool until relatively recently.
Re: Dijkstra On the foolishness of "natural language programming"
#44Re: Dijkstra On the foolishness of "natural language programming"
#45People are sticking up for LLMs here and that's cool. I wonder, what if you did the opposite? Take a project of moderate complexity and convert it from code back to natural language using your favorite LLM. Does it provide you with a reasonable description of the behavior and requirements encoded in the source code without losing enough detail to recreate the program? Do you find the resulting natural language descri…
An example from an different field - aviation weather forecasts and notices are published in a strongly abbreviated and codified form. For example, the weather at Sydney Australia now is:
METAR YSSY 031000Z 08005KT CAVOK 22/13 Q1012 RMK RF00.0/000.0
It's almost universal that new pilots ask "why isn't this in words?". And, indeed, most flight planning apps will convert the code to prose.But professional pilots (and ATC, etc) universally prefer the coded format. Is is compact (one line instead of a whole paragraph), the format well defined (I know exactly where to look for the one piece I need), and it's unambiguous and well defined.
Same for maths and coding - once you reach a certain level of expertise, the complexity and redundancy of natural language is a greater cost than benefit. This seems to apply to all fields of expertise.
Re: Dijkstra On the foolishness of "natural language programming"
#46I somewhat disagree with this. In real life, say in some company, the inception of an idea for a new feature is made in the head of some business person. This person will not speak any formal language. So however you turn it, some translation from natural language to machine language will have to be done to implement the feature. Typically the first step, translation from natural to formal language, will be done by b…
The first step isn't from natural language to formal language. It's from the idea in your head into natural language. Getting that step right in a way that a computer could hope to turn into a useful thing is hard.
The "inside the head" conversion step would be more relevant in the reply to the gp if the hypothetical AI computer would be hooked up directly to brain implants like neuralink, functional MRI scans, etc to translate brain activity to natural language or programming language code.
But today, human developers who are paid to code for business people are not translating brain implant output signals. (E.g. Javascript programmers are not translating raw electrical waveforms[1] into React code.)
Instead, they translate from "natural language" specifications of businesspeople to computer code. This layer of translation is more tractable for future AI computers even though natural language is more fuzzy and ambiguous. The language ambiguity in business requirements is unavoidable but it still hasn't stopped developers from somehow converting it into concrete non-ambiguous code.
[1] https://www.technologyreview.com/2020/02/06/844908/a-new-imp...
Re: Dijkstra On the foolishness of "natural language programming"
#47People are sticking up for LLMs here and that's cool. I wonder, what if you did the opposite? Take a project of moderate complexity and convert it from code back to natural language using your favorite LLM. Does it provide you with a reasonable description of the behavior and requirements encoded in the source code without losing enough detail to recreate the program? Do you find the resulting natural language descri…
I don't see why a complete description of the program's design philosophy as well as complete descriptions of each system and module and interface wouldn't be enough. We already produce code according to project specification and logically fill in the gaps by using context.
Re: Dijkstra On the foolishness of "natural language programming"
#48Earlier quoted context omitted.
The first step isn't from natural language to formal language. It's from the idea in your head into natural language. Getting that step right in a way that a computer could hope to turn into a useful thing is hard.
Without descending fully into epistemology, I tend to think that there is no proper "idea" in your head before it's phrased in language - the act of initially describing something in natural language *is* the act of generating it.
Of course one might argue that even if LLMs are capable of ideation and conceptualisation without natural language, doesn't mean humans are.
But the fact that up to 50% of people have no inner monologue seems to refute that.
Re: Dijkstra On the foolishness of "natural language programming"
#49I somewhat disagree with this. In real life, say in some company, the inception of an idea for a new feature is made in the head of some business person. This person will not speak any formal language. So however you turn it, some translation from natural language to machine language will have to be done to implement the feature. Typically the first step, translation from natural to formal language, will be done by b…
So he's contesting not only the idea that programs should be specified in natural language, but also the idea that removing our need to understand the formal language would increase our ability to build complex systems.
It's worth noting that much of the "translation" is not translation, but fixing the logical ambiguities, inconsistencies and improper assumptions. Much of it can happen in natural language, if we take Dijkstra seriously, precisely because programmers at the table who have spent their lives formalizing.
There are other professions which require significant formal thinking, such as math. But also, the conversion of old proofs into computer proofs has lead us to discover holes and gaps in many well accepted proofs. Not that much has been overturned, but we still do t have a complete proof for Fermats last theorem [1].
[1] https://xenaproject.wordpress.com/2024/12/11/fermats-last-th...
Re: Dijkstra On the foolishness of "natural language programming"
#50He didn’t understand the concept of the vibe. Here’s the best theory article I’ve read https://www.glass-bead.org/article/a-theory-of-vibe/
The difference between the clarity of Dijkstra writing and the text at this link is astounding.
Keep in mind that Dijkstra had some giant shoulders to stand on. This article is the very first one I’ve ever seen that directly dealt with vibes.