Natural language is inherently a bad programming language. No developer, even with the absolute best AI tools, can avoid understanding the code that AI generates for very long
The only way to successfully use AI is to have sufficient skill to review the code it generates for correctness - which is a problem that is at least as skilful as simply writing the code
I don't think you understand why context-free languages are used for programming. If you provide a requirement with any degree of ambiguity the outcome will be non-deterministic. Do you want software that works or kind of works?
If someone doesn't understand, even conceptually how requirements
That natural language can only be ambiguous: but legal contracts, technical specs, and scientific papers are all written in precise natural language.
And that AI interaction is one-shot where ambiguous input produces ambiguous output, but LLM programming is iterative. You clarify and deliver on requirements through conversation, testing, debugging, until you reach the precise accepted solution.
Traditional programming can also start with ambiguous natural language requirements from stakeholders. The difference is you iterate toward precision through conversation with AI rather than by writing syntax yourself.
The only way to successfully use AI is to have sufficient skill to review the code it generates for correctness - which is a problem that is at least as skilful as simply writing the code