Are we all programmers now? We Replaced the Build Layer, Not the Runtime

ibrahimcesar1 pts0 comments

We Replaced the Build Layer, Not the Runtime — Ibrahim Cesar<br>Skip to main content

Guillermo Rauch wrote that everyone is now a programmer, because the present<br>and future programming language is your natural language: if you can write or<br>speak, you can build. He calls it the most important evolution in our field<br>since its creation, a tsunami that has just started. A claim that sweeping —<br>from someone with that much to gain by making it — deserves some critical<br>thinking, not a reflexive nod. The real part is smaller than the sentence<br>sounds: you can now build software by writing or speaking. What I want to argue<br>with is the slide from you can build to everyone is a programmer — not the<br>same claim, and the gap between them is this whole essay.

The hottest new programming language is English<br>Section titled The hottest new programming language is English

Let’s be honest about where this is coming from. Rauch runs a company whose<br>business is selling shovels for exactly this gold rush, and “everyone is now a<br>programmer” is about the most comfortable sentence a person in that chair can<br>say. So yes — some of this is hype, a marketing weather report from someone with<br>product to move. Andrej Karpathy reached for the same image earlier and more<br>bluntly — “the hottest new programming language is English”1, later naming<br>the practice vibe coding , where you describe what you want, accept what the<br>model produces, and mostly forget the code even exists2 — and he has his own<br>share of boosterism to answer for too. Discount the whole chorus for the sales<br>pitch. Skepticism is the right posture to open with.

And then, having discounted it all the way down, notice that something real is<br>still sitting at the bottom of the claim.

It works. I’ve watched people who have never opened a terminal produce<br>something that runs — a landing page, a script that renames a thousand files, a<br>small tool that solves a real problem in their day. That is not nothing. It is,<br>genuinely, one of the largest expansions of who gets to make software in the<br>history of the field. The barrier that kept most of humanity out of building was<br>never a lack of ideas. It was syntax, tooling, the thousand small hostilities of<br>the environment. Natural language dissolves a lot of that.

So yes: anyone can now build. That much I’ll grant without a fight — it’s<br>true, it’s new, and it’s one of the best things to happen to the field in my<br>lifetime.

What I won’t grant is the word Rauch reaches for to describe it. Build and<br>programmer are not synonyms, and the distance between them is the rest of this<br>essay.

Building is not programming<br>Section titled Building is not programming

Everyone can now ask for a program that runs. Not everyone can tell you why<br>it runs — or fix it when it stops. In the thread where I first made this<br>argument, Kelvin Meeks put the dividing line better than I could:

If the person can’t debug the source code, they are just a dabbler — not a<br>programmer.

That sounds gatekeep-y until you’ve been the one paged at 3am. “It runs” is a<br>statement about a single execution, on one machine, with one input, at one<br>moment. Programming is everything that statement leaves out: why it runs, what<br>it assumes, when it will stop running, and what you do at that moment. A model<br>can hand you the first. The rest is still, stubbornly, understanding — and<br>understanding does not come bundled in the output.

Here’s the objection that deserves an answer, because it’s the strongest one<br>against everything I’m about to say: the same model that writes the code will<br>also explain it. Paste the stack trace and get a root-cause hypothesis; ask why<br>the query is slow and get a paragraph about indexes. If generation got cheap,<br>didn’t comprehension get cheap right along with it?

Partly. And that part is real — I use it every day. But a machine can hand you a<br>theory; it cannot make you hold one. The explanation arrives as fluent,<br>confident prose, and fluent-and-confident is exactly the trap: you cannot tell a<br>correct explanation from a plausible wrong one unless you already understand the<br>thing being explained. Comprehension you didn’t earn doesn’t transfer, doesn’t<br>compound, and isn’t there in the one moment you actually need it — the novel<br>failure the model has never seen, where its explanation is as wrong as its code<br>and just as self-assured. So the honest version of the asymmetry is this:<br>generation fell to almost nothing, and real understanding got cheaper too, but<br>far more slowly — and it stops being free precisely when the stakes go up. When<br>those two curves diverge, you get an enormous amount of software that works and<br>that no one — the person who prompted it, or the model that wrote it — can<br>actually account for.

The abstraction moved up. The foundation didn’t.<br>Section titled The abstraction moved up. The foundation didn’t.

Here’s the framing I keep coming back to, and it’s the whole point of this post.

We did not replace the runtime. We replaced the layer where programs...

build programming language runs everyone programmer

Related Articles