I think we all understand what a huge step it was to build the first compiler. Being able to write code that humans can read and understand and turn that into something that a computer can execute was a foundational step in computer science. It enabled the explosion of software that is, as Marc Andreessen said, “eating the world.”
The next step was an interpreter for languages like the JVM’s bytecode and .NET’s Common Intermediate Language (CIL). These took the human languages and converted them to a language that can be run or executed anywhere. As I’ve argued before, the abstractions never end. But only a chosen few bother to actually learn bytecode or CIL. No one chooses that as a development language. It’s meant to be written by a compiler and read by an interpreter.
Today, with AI, we code in Markdown and plain old English. The “intermediate language” now is the actual code — TypeScript, Python, Rust, etc. — and the human-readable part of the equation is our everyday conversation with the coding agent. We’ve added a layer that makes it even easier to communicate our requirements directly to the metal of our computers.
And just as no one actually writes IL, it won’t be long before none of us is writing TypeScript, Python, or Rust. Coding by hand will be a thing of the past. And at that point, it will become moot whether our “intermediate language” is TypeScript or whatever. It won’t matter.







