If the compiler only gets you 80% of the way there, but what it does is sufficient to put the LLM on rails, like programming language mad libs, I'd say that's a win.
Concrete example: Next/Turborepo. These tools make your life easier if you drink some kool aid. Rather than have the agent scaffold the app you have the agent use a tool that scaffolds. Agents write specs to manage tools, and those tools scaffold the code, then the agents just sprinkle in business logic that is too bespoke for codegen.
* We need a deterministic input language
* The LLM generates machine code
Isn't that just a compiler? Why do we need the LLM at that point?