The Future of Programming Was Yesterday
Bret Victor's work is a sustained argument that we settled too early — and a demonstration of what we settled for.
In 2012, a former Apple interface designer named Bret Victor gave a talk called Inventing on Principle. It was nominally about how to organize a creative career around a single guiding idea. But the demonstrations he used to make the point quietly detonated a lot of people's assumptions about what programming even is — and relit a fire that had been banked since the 1970s.
An immediate connection#
Victor's principle, the one he'd organized his own work around, was this: creators need an immediate connection to what they create.
To show what he meant, he put a code editor on one side of the screen and its running output on the other, and then he started changing the code — and the output changed as he typed. Not after a save, not after a compile, not after a run. Immediately. He dragged a number and the picture moved with his finger. He scrubbed through time in a running game and watched the character's whole trajectory draw itself across the level. He changed the color of a tree and the forest recolored under his hand.
The point wasn't the demos. The point was the gap they exposed. The normal way we program is: hold a model of the program in your head, type a guess about how to change its behavior, run it, watch what happens, and try to reconcile the difference — all while the connection between the symbol you typed and the behavior you got lives entirely in your imagination. Victor's claim was that this imaginative leap isn't fundamental to programming. It's an accident, a limitation we've so thoroughly internalized that we mistake it for the nature of the activity. And when you remove it — when the connection is immediate — you can suddenly see things, and have ideas, that were invisible across the gap.
This is the modern face of live programming, and its roots run straight back through Smalltalk's live image and the REPL to the very beginning. Victor's gift was to make the loss visceral.
"The most dangerous thought"#
A year later, in 2013, Victor gave a stranger and even sharper talk: The Future of Programming. He delivered it in character as an engineer from 1973, complete with an overhead projector and transparencies, presenting the cutting-edge ideas of "today" — 1973 — and speculating about where programming might go in the decades to come.
The conceit was devastating, because the ideas this "1973 engineer" presented as the exciting frontier were real and mostly abandoned: direct manipulation of data, programming by goals and constraints rather than step-by-step instructions, spatial and visual representations, concurrent and message-based systems. He was using the optimism of 1973 to indict the conservatism of the present. The things they thought were just the beginning, we turned into the permanent state of affairs.
His closing was the knife. The greatest danger, he said in his 1973 character, would be if future programmers ever stopped thinking of these as open questions — if they came to believe that this is just how programming is done. Then he stepped out of character to let the audience feel that this is exactly what happened.
The most dangerous thought you can have as a creative person is to think you know what you're doing.
It lands because it's aimed at the listener. The danger isn't that we lack good ideas about programming. It's that we've forgotten the current way was ever a choice, and so we've stopped looking.
Why this belongs to a long tradition#
It would be easy to file Victor under "cool demos," but his work is a node in a lineage this whole site is about. The dissatisfaction he dramatizes — why is instructing a computer still so indirect, so blind, so reserved for specialists? — is the same dissatisfaction behind Engelbart's augmentation work, Kay's Dynabook, and Papert's turtle. They all refuse to accept the computer as it currently presents itself.
And Victor's principle — immediacy, an unbroken connection between thought and result — is really a restatement, for the act of creation, of the tools-for-thought dream. A tool serves your thinking best when it disappears, when the distance between intending something and seeing it collapses to nearly zero. The turtle does this for a child and geometry. A live editor does it for a programmer and a program. Direct manipulation does it for anyone and a document. It's all the same move: shrink the loop.
Where it goes from here#
Victor's own work has kept pushing past the screen. His later research (the Dynamicland project) imagines computing you inhabit physically and socially — programs as paper objects you arrange on a real table, shared by people in a real room, rather than glowing symbols trapped behind glass. Whether or not that particular vision succeeds, it's the right kind of swing: an attempt to question the medium itself rather than to optimize within it.
The honest assessment is that mainstream programming has absorbed Victor's ideas slowly and partially. We have hot-reloading, live previews, notebooks, better debuggers — real progress, all of it downstream of the principle. But the deep version, where the imaginative gap is genuinely gone and where creating with a computer is something everyone does directly, remains mostly ahead of us.
Which is, in the end, Victor's actual message, and the reason his work belongs to the future of programming rather than its history. The future he points at isn't a prediction. It's an unfinished assignment — one that was already overdue in 1973, and that becomes available again the moment you stop believing you know how programming has to be.