| ▲ | nickm12 3 hours ago | ||||||||||||||||||||||
I send this article to everyone who tells me how English is now a high-level programming language, the next level of abstraction up the chain from machine language to <their favorite language>. This analogy tends to be followed by "Just like most programmers never look at assembly code, looking at higher-level source code is going to become something only a few people do". Dijkstra's arguments tend not to change their minds. I think the analogy takes hold because there is a kernel of truth in it. AI models now give us the magical ability to program in natural language, but the implication that an AI model is a form of compiler is deeply flawed. AI models don't replace compilers, they replace software developers. The reason software developers rarely look at assembly code is that compilers (and emulators and VMs) are able to precisely preserve the semantics of the original program. A natural language spec is not a program, and there are many possible programs that can meet the spec. Software engineers and AI models turn specs into code, but the code is not the spec I think the analogy clouds our thinking about the value of programming languages as a tool for formally describing what the computer should do and enforcing properties of the program that should not be left to either humans or AI models to uphold. | |||||||||||||||||||||||
| ▲ | indrex 2 hours ago | parent | next [-] | ||||||||||||||||||||||
You mean the English to code layer is stochastic while code to assembly is not? This stochastic nature existed before AI. Humans are stochastic too. Two engineers convert specs to code in two different ways. I would argue the distribution is wider among humans than among agents. | |||||||||||||||||||||||
| |||||||||||||||||||||||
| ▲ | blurbleblurble an hour ago | parent | prev | next [-] | ||||||||||||||||||||||
The LLMs don't replace compilers, they challenge the next generation of compilers. And they don't replace software engineers, they shift them into yet another metasystem. | |||||||||||||||||||||||
| ▲ | glimshe an hour ago | parent | prev | next [-] | ||||||||||||||||||||||
Your acquaintances aren't changing their minds because the arguments are weak. Both the article and your comment assume that the only mode of interaction for natural language is a very high level description of programmer intent. You can interact with AI and say "code me a calculator" or "now declare a array of booleans to map to each of the keys in the UI and set the corresponding array position to true when the key is pressed". These commands are written in natural language at such different levels of abstraction that is hard to put them in the same bucket. It would be fair to call the latter an imperative language with the LLM in the role of a compiler. That's very similar to how I use AI. | |||||||||||||||||||||||
| ▲ | an hour ago | parent | prev [-] | ||||||||||||||||||||||
| [deleted] | |||||||||||||||||||||||