Programming in plain English. At scale
CodeSpeak is a programming language designed to help teams of humans build complex applications. CodeSpeak is based on plain English. It raises the level of abstraction above those of traditional languages.
Zoom out and think about what you are building, not how. The what is essential, the how is optional.
One does not simply program in plain English
Imagine programming in plain English (or any other natural language). Sounds great, and at the same time... it would be a mess. CodeSpeak takes care of the mess.
CodeSpeak adds modularity and reuse to natural language in order to help humans organise their code and work together productively. Coding agents in the background translate CodeSpeak into lower-level languages like Python, JavaScript, Kotlin, or Swift.
Humans in charge
Humans are in charge of what needs to be built. Agents can generate anything, but it's humans' job to communicate their intent.
In CodeSpeak, you don't think about agents. Agents will be fine. It's all about humans. Teams of humans working on large complex applications for a long time.
CodeSpeak is not about chatting with agents. A chat is a 1-1 communication between a human and an agent. And it's transient by nature. Multiple humans can't collaborate on a chat. They need persistent artefacts with version control and logical structure. CodeSpeak provides exactly that: expressing your intent in plain English, but with modularity and reuse like in programming languages.
Capture essential complexity
Any code that a computer could write by itself is boilerplate, it clutters your field of view and creates accidental complexity. CodeSpeak removes boilerplate. Nobody needs to write application code by hand. Yet, when you remove all boilerplate, there's something left: the essential complexity of your application. This is what we own as Software Engineers. CodeSpeak programs capture essential complexity and coding agents in the background figure out everything else.

CodeSpeak distils Software Engineering down to its essence: organising complexity into modules that help humans reason about the application as a whole and see the big picture. It's all you have to do as a CodeSpeak programmer: break your idea down into logical modules and describe what they do, not how. The what is essential, the how is optional. You can still specify it if you want, but you don't have to.
Handling ambiguity and non-determinism
Natural languages can be ambiguous, and programs shouldn't be. The CodeSpeak compiler makes sure there's no significant ambiguity. If something can be interpreted in two or more substantially different ways, CodeSpeak will ask you what you meant and help you change the spec accordingly.
LLMs are not deterministic, and compilers should be. CodeSpeak keeps the implementation in traditional languages around together with the spec and only makes incremental changes to it, keeping the bulk of the code intact. Of course, one can re-generate all the code from scratch, but to get exactly the same code every time, the spec would have to be written in a more precise manner than would be practical for most applications.
Having a chat alongside your spec
While CodeSpeak does not rely on the chat interface to communicate with codegen agents, we can still use agents to work with the spec. We can ask an agent to navigate or change the spec for us, or we can do it manually (which will very often be the same amount of work, unlike traditional languages).
CodeSpeak is coming soon
We are working on making CodeSpeak happen. Andrey Breslav, who was in charge of creating the Kotlin programming language, is responsible for the design of CodeSpeak. Stay tuned for more team updates.
Join the team
Vacancies can be found here.
Contact us
Email: info@codespeak.dev

