“Programs must be written for people to read, and only incidentally for machines to execute.”
— Harold Abelson, Structure and Interpretation of Computer Programs
For decades this line was gospel — the kind of sentence you nodded at, repeated in code reviews, and built careers on. Reading it today is genuinely funny. AI coding agents now write and read most of the code, and engineers increasingly orchestrate in English rather than in syntax. So the obvious question: who exactly is the code “running on” anymore? Machines are writing for machines. The human in the loop has quietly stepped back from reading line by line, toward something else — writing clear intent in natural language and trusting the agent to render it.
And yet I think Abelson’s quote still holds, just not in the way he meant. The artifact that people now write for other people is no longer the code itself; it is the prompt, the spec, the architectural decision that frames the whole effort. Those are what a teammate opens to understand what you were thinking — the things that must still be legible six months from now. The center of gravity of human readability didn’t disappear. It migrated up a layer, from the implementation to the intent. (A shift I first turned over in a friend’s thinking.)