AI Revived an Old Failed Idea
Just write a detailed spec, hand it to the model, and working code shows up on the other side. The spec is supposed to be precise, unambiguous, and complete so the model has nothing to guess at.
Guess what? A spec written like that is code. The syntax is markdown instead of Python, but the constraints are identical. You are describing behaviour with enough precision that another system can produce a deterministic result. That is the definition of a program that needs to be compiled.
We have been here times before. COBOL was meant to read like English so business people could write it. SQL was sold the same way. AppleScript. HyperTalk. Inform 7. Each one promised that natural language was the missing ingredient. None of them stuck for general programming. They were either too verbose to be practical, too ambiguous to be safe, or both.
Modern languages look the way they look because the alternatives were tried and abandoned. You can read it once and know what it does with some level of certainty. The English version takes a paragraph and still leaves you guessing whether "all the users" means current users or every user that ever existed. Nobody knows.
Then there is the small matter that very few people actually read. RTFM is a phrase that exists because manuals get ignored, PR descriptions get skimmed and wiki pages decay because the people who could update them never read them. Asking the industry to express its programs as long-form markdown documents and then expect anyone to read those documents carefully is optimistic at best.
If the artifact is going to be precise and complete anyway, write code, or pseudo code. At least pseudo code has a chance of being read.
Even deeper problem with specs is that they assume someone already knows how the thing should be built. That is rarely how programming actually works. Programming is exploration. You sketch something, run it, see what breaks, adjust. The shape of the solution emerges as you go. Half the decisions get made because you discovered a constraint you did not know existed when you started.
A detailed spec written upfront is a fiction about a problem you have not solved yet. The spec gets contradicted the moment the code touches reality, and then someone has to choose whether to update the spec or the code. The code usually wins, because the code is the thing that has to work.
Natural language has a real place in front of an AI coding agent. It belongs in the exploration. Loose, fast, throwaway conversation while you figure out what you are even trying to build. The goal is to think out loud, try shapes, change your mind cheaply.
The minute that language becomes precise, complete, and unambiguous, you have stopped writing a spec. You are writing the program. The model is a compiler.