>Source code in a higher-level language is not really different anymore

Source code is a formal language, in a way that natural language isn't.

Right? That's the only reason that "coding with LLMs" works at all (believe me, all at the same time, I am wowed by LLMs, and carry a healthy level of skepticism with respect to their ability as well). You can prompt all you want, let an Agent spin in a Ralph loop, or whatever, but at the end of the day, what you're checking into Git is not the prompts, but the formalized, codified artifact that is the bi-product of all of that process.

Somewhat ironically, perhaps a formal, deterministic programming language (in its mathematical-kind of abstract beauty) is the outlier in the whole soup. The customers don't know what they need, we don't know what we ought to build, and whatever we build nobody knows how much of it is the right thing and what it actually does. If the only thing that causes people to sigh is the requirement to type all that into a deterministic language maybe at some point we can just replace that with a fuzzy, vague humanly description. If that somehow produces enough value to justify the process we still won't know what we need and what we're actually building but at least we can just be honestly vague about it all the way through.

When you get to the really tightly controlled industries, your "formal" language becomes carefully structured English.

Legalese exists precisely because it is an attempt to remove doubt when it comes to matters of law.

Maybe a dialect of legalese will emerge for software engineering?

Legalese is nowhere near precise, and we have a whole very expensive system because it’s not precise.

It is an attempt the be precise, and to remove doubt. But you're right that doubt still creeps in.

Legalese already exists in software engineering. Several dialects of it, in fact. We call them programming languages.

This is the answer