"Our goal should be to give an LLM coding agent zero degrees of freedom" Wouldn't that just be called inventing a new language with all the overhead of the languages we already have? Are we getting to the point where getting LLMs to be productive and also write good code is going to require so much overhead and additional procedures and tools that we might as well write the code ourselves. Hmmm...
Taming LLMs: Using Executable Oracles to Prevent Bad Code
21–28 of 28 posts
Re: Taming LLMs: Using Executable Oracles to Prevent Bad Code
#22I love the phrase “tested into existence”.
Re: Taming LLMs: Using Executable Oracles to Prevent Bad Code
#23"Our goal should be to give an LLM coding agent zero degrees of freedom" Wouldn't that just be called inventing a new language with all the overhead of the languages we already have? Are we getting to the point where getting LLMs to be productive and also write good code is going to require so much overhead and additional procedures and tools that we might as well write the code ourselves. Hmmm...
Actually, no. We always needed good checks - that's why you have techniques like automated canary analysis, extensive testing, checking for coverage - these are forms of "executable oracles". If you wanted to be able to do continuous deployment - you had to be very thorough in your validation. LLMs just take this to the extreme. You can no longer rely on human code reviews (well you can but you give away all the LLM…
Re: Taming LLMs: Using Executable Oracles to Prevent Bad Code
#24Re: Taming LLMs: Using Executable Oracles to Prevent Bad Code
#25Earlier quoted context omitted.
Yes, but a programming language with a proverbial sufficiently smart compiler. That is very useful.
Try writing an exhaustive spec for anything non-trivial and you might see the problem.
Aero, mechanical, and electrical engineers spend years designing a system. Design, requirements, reviews, redesign, more reviews, more requirements. Every single corner of the system is well understood before anything gets made. It's a detailed, time consuming, arduous process.
Software engineers think they can duplicate that process with a few skills and a weekend planning session with Claude Code. Because implementation is cheaper we don't have to go as hard as the mechanical and electrical folks, but to properly spec a system is still a massive amount of up front effort.
Re: Taming LLMs: Using Executable Oracles to Prevent Bad Code
#26Re: Taming LLMs: Using Executable Oracles to Prevent Bad Code
#27Earlier quoted context omitted.
Actually, no. We always needed good checks - that's why you have techniques like automated canary analysis, extensive testing, checking for coverage - these are forms of "executable oracles". If you wanted to be able to do continuous deployment - you had to be very thorough in your validation. LLMs just take this to the extreme. You can no longer rely on human code reviews (well you can but you give away all the LLM…
Llm boys discover the halting problem!
Re: Taming LLMs: Using Executable Oracles to Prevent Bad Code
#28Earlier quoted context omitted.
Try writing an exhaustive spec for anything non-trivial and you might see the problem.
Been saying this for a while now. I work in aerospace, and I can tell you from first hand experience software engineers don't know what designing a spec is. Aero, mechanical, and electrical engineers spend years designing a system. Design, requirements, reviews, redesign, more reviews, more requirements. Every single corner of the system is well understood before anything gets made. It's a detailed, time consuming, a…