A week ago, I suggested the need for a new programming language tailored for AI output to tackle the human verification bottleneck. The discussion that followed was lively, and this subject remains an intriguing one.
We discussed the language the model uses to produce its output. However, there’s another important aspect: the language used for writing input specifications. This is even more critical because the quality of the output depends directly on the quality of the input (see my post from last weekend).
Natural language is great for brainstorming, but it can be imprecise for detailed engineering. When we use unstructured specifications in plain English, we often find ourselves in a back-and-forth of «no, not like that» and «don’t forget this constraint.»
We are witnessing the birth of a new layer in the stack: Input Languages.
JetBrains is currently working on CodeSpeak, a language designed specifically for defining specifications that an LLM then converts into executable code. It’s a formalized, system-level way to «speak» to the model without the verbosity of manual coding or the ambiguity of raw text.
See more about the language and examples here: https://codespeak.dev/
This is the logical evolution of Spec-Driven Development. By using a structured specification:
* We reduce the «noise» and variance in how tasks are defined.
* We allow the model to be more deterministic.
* We work at a higher level of abstraction, focusing on *intent* rather than *implementation*.
It doesn’t even matter if the output is currently Python or Java. What matters is the shift in where the «source of truth» lives. It’s moving from the implementation details to the formal specification.
The Future AI-Native Stack is becoming clear:
1. The Input: A structured specification language (like CodeSpeak) optimized for human intent and model comprehension.
2. The Processor: A reasoning LLM that maps specs to logic.
3. The Output: An AI-native programming language (discussed before) optimized for rapid human validation and machine execution.
This trio—Input, LLM, and Output—forms the new foundation shaping software engineering. We are transitioning from simply «writing code» to designing and architecting intent.
The gap in the middle is currently being filled. Are we prepared to shift from simply «coders» to becoming «spec-designers»?