| ▲ | godelski a day ago | |||||||||||||||||||||||||||||||||||||||||||
Let's just look at Dijkstra's On the Foolishness of "Natural Language Programming". It really does a good job at explaining why natural language programming (and thus, Vibe Coding) is a dead end. It serves as a good reminder that we developed the languages of Math and Programming for a reason. The pedantic nature is a feature, not a flaw. It is because in programming (and math) we are dealing with high levels of abstraction constantly and thus ambiguity compounds. Isn't this something we learn early on as programmers? That a computer does exactly what you tell it to, not what you intend to tell it to? Think about how that phrase extends when we incorporate LLM Coding Agents.
All of you have experienced the ambiguity and annoyances of natural language. Have you ever:
Congrats, you have experienced the frustrations and limitations of natural language. Natural language is incredibly powerful and the ambiguity is a feature and a flaw, just like how in formal languages the precision is both a feature and a flaw. I mean it can take an incredible amount of work to say even very simple and obvious things with formal languages[1], but the ambiguity disappears[2].Vibe Coding has its uses and I'm sure that'll expand, but the idea of it replacing domain experts is outright laughable. You can't get it to resolve ambiguity if you aren't aware of the ambiguity. If you've ever argued with the LLM take a step back and ask yourself, is there ambiguity? It'll help you resolve the problem and make you recognize the limits. I mean just look at the legal system, that is probably one of the most serious efforts to create formalization in natural language and we still need lawyers and judges to sit around and argue all day about all the ambiguity that remains. I seriously can't comprehend how on a site who's primary users are programmers this is an argument. If we somehow missed this in our education (formal or self) then how do we not intuit it from our everyday interactions? [0] https://www.cs.utexas.edu/~EWD/transcriptions/EWD06xx/EWD667... [1] https://en.wikipedia.org/wiki/Principia_Mathematica [2] Most programming languages are some hybrid variant. e.g. Python uses duck typing: if it looks like a float, operates like a float, and works as a float, then it is probably a float. Or another example even is C, what used to be called a "high level programming language" (so is Python a celestial language?). Give up some precision/lack of ambiguity for ease. | ||||||||||||||||||||||||||||||||||||||||||||
| ▲ | falcor84 a day ago | parent | next [-] | |||||||||||||||||||||||||||||||||||||||||||
> Vibe Coding has its uses and I'm sure that'll expand, but the idea of it replacing domain experts is outright laughable. I don't think that's the argument. The argument I'm seeing most is that most of us SWEs will become obsolete once the agentic tools become good enough to allow domain experts to fully iterate on solutions on their own. | ||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||
| ▲ | selridge 21 hours ago | parent | prev [-] | |||||||||||||||||||||||||||||||||||||||||||
Dijkstra also said no one should be debugging and yet here we are. He's not wrong about the problems of natural language YET HERE ARE. That would, I think, cause a sensible engineer to start poking at the predicate instead of announcing that the foregone conclusion is near. We should take seriously the possibility that this isn't going to be in a retrenchment which bestows a nice little atta boy sticker on all the folks who said I told you so. | ||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||