Skip to content
TNPL

Out now · Paperback & Kindle

The Next
Programming
Language

Why It Won't Be Written by Humans

Programming has lived through three language eras in roughly eighty years, and twice authorship moved upward. Each time, the level below did not disappear. It stopped being written by people and started being emitted by machines.

Today AI writes Python — not because anyone judged it the right target for a machine author, but because it is what the training distribution contained.

The author has just changed again. This book designs what should come out instead — and builds it.

chapters
27chapters
runnable labs
8runnable labs
pages
178pages
working language
1working language
Cover of The Next Programming Language by Ajay Malik

The load-bearing claim

The property that matters in a machine-authored representation is not ease of generation — that half already works — but ease of deterministic correction and verification after generation.

Nearly every decision in the second half of the book falls out of taking that one requirement seriously.

Part I — Every language has an author

Three eras. Two transitions. The same reason each time.

Each transition was resisted with the same sentence — the generated code isn’t as good as hand-written. Both times the objection was true when it was made, stayed true for years, and was never quite refuted. The economics moved underneath it instead.

Era 1

Machine code

for the machine

Almost nobody hand-writes it any more

Now emitted

Era 2

Assembly

for engineers

Most of it is no longer written by hand

Now emitted

Era 3

High-level source

for programmers

Written by us — and increasingly not

Still written

Era 4

The next language

for a machine author

Does not exist yet. Part V builds one

Not yet written

Chapter 1

The same function, four times

Only the first one is bytes. The rest are descriptions of bytes.

Compile that C for x86-64 with optimisation on and you get exactly b8 2a 00 00 00 c3 back. Compile it on Apple Silicon and you get eight entirely different bytes. Same C. Same meaning. Nothing in the source said which.

So isn’t English the fourth language? That objection arrives on page one, and the book takes it seriously rather than leaving it until Part IV.

Read Chapter 1 free

Machine code

written by nobody

b8 2a 00 00 00 c3

Assembly

written by almost nobody

mov eax, 42
ret

High-level source

written by us — for now

int answer(void) { return 42; }

English

written by us

Write a function that returns 42.

Same meaning, four times. As you move down the list you stop writing the bytes and start describing them — and you hand somebody else the decision about what they actually turn out to be. The English at the bottom hands over the most of all.

Part II — With measurements

What it costs to make a machine write like a human

Part II demonstrates rather than surveys. Each cost is shown on a worked example small enough to check by hand and reproduce from the labs — with Python and Clang, on your own machine.

Lab 01–04

Invalid LLVM IR is accepted

Machine bytes, source to native, LLVM IR, and SSA rules that are not actually checked.

Lab 06

6 of 9 faults silent

Nine faults injected across languages. Six of them are silent in every language tested.

Lab 07

40% → 100% repair

The same fault, two error messages. A conventional message repaired it 40% of the time; a diagnostic naming the violated obligation and enumerating the legal repairs, 100%. Format alone did nothing (p = 0.36).

Lab 08

R² = 0.9996

Repair cost scales linearly with program size when the unit of change is the whole program.

One experiment reported in the book found that models repaired distributed faults forty per cent of the time when given a conventional error message, and one hundred per cent of the time when given a diagnostic that named the violated obligation and enumerated the legal repairs.

Changing the message’s format alone did nothing (p = 0.36). The content is what moved the number.

See all eight labs

Part V — The language

AIR is not a sketch. It parses, verifies, compiles and runs.

Nine chapters build it from a first program to native code. It is deliberately small — a language you can read in an afternoon is a language you can argue with — and the book is precise about which fragment of computation it covers.

Fragments with stable identity

A program is addressable. A fault names a fragment, and repair touches that fragment rather than regenerating the file.

Diagnostics as a protocol

A structured record: a stable code, the fragment at fault, the obligation not met, whether it is false or merely unproven, the finite set of legal repairs, and how much may be touched in response.

Declared effects and capabilities

What a fragment is permitted to do with the world is written down, and checked, rather than discovered when it runs.

Contracts and explicit freedoms

What must hold is stated. So is what the compiler is free to choose — which is the part conventional languages leave implicit and then argue about.

Chapter 27

It closes by listing what would prove it wrong

Eight observations, each with the experiment that would produce it — including two measurements the argument openly owes and has not taken. A design book that cannot say what would refute it is not making a claim; it is expressing a preference.

What it does not claim

  • That programmers disappear — people still review, debug and own the code.
  • That models will get better and that settles it.
  • That a model is a compiler. It is a compiler-like producer, which is a different and more awkward thing.
  • That AIR is finished, or covers all of computation. Appendix A.12 states the fragment.

What it does claim

  • The primary producer of code has changed, as it did twice before.
  • The languages being produced were shaped, feature by feature, around a human author.
  • The binding cost is correction after generation, not generation.
  • A representation designed for that is buildable — and here it is, running.
Ajay Malik

The author

Ajay Malik

Three decades building the infrastructure everyone agreed was permanent. Head of Architecture and Engineering for Google’s worldwide corporate network; executive leadership at Hewlett-Packard, Cisco, Qualcomm and Motorola. Around 110 patents, several startups founded and exited, and five books.

He has watched authorship move before, twice, in networking and in systems software. This is an argument about the third time.

More about Ajay

The author has changed. The language hasn’t — yet.

For software engineers, architects, compiler engineers and technical leaders responsible for systems increasingly written by machines.

ISBN 979-8-9877684-1-9 · 6″ × 9″ paperback · Kindle