Beyond the IDE
This post is sponsored by Ona, the browser-based, multi-genie, IDE-optional programming environment. I’ve used it for 60+ hours in the last 2 weeks & I have a hard time augmented coding without it. Get $100 of usage by signing up in the month of September at Ona.com.
From Patch Boards to Punched Cards
You see those old photographs of programmers hunched over patch boards, physically rewiring circuits with cables and plugs? That was programming in the 1940s. You wanted to compute a trajectory or process some data, you literally rewired the machine. The hardware was the software.
Then we borrowed an idea from the business world. Companies had been using punched cards for decades to sort and tabulate data—payrolls, census records, inventory. Herman Hollerith figured out in the 1890s that you could encode information as patterns of holes, and machines could read those patterns automatically.
So we thought: why not use this for code? Instead of manually setting hundreds of switches and plugging cables, we could punch our program into cards and feed them to the machine. One gesture—dropping a deck of cards into the reader—and boom, you're at a known state. The machine knows exactly what you want it to do.
This was brilliant reuse of an existing technology, not some grand invention. We already had the infrastructure: card punches, card readers, the whole ecosystem of handling and storing these cardboard rectangles. We just pointed it at a different problem.
But here's what we didn't fully grasp at the time: we'd created a fundamental separation. The tools we used to create programs lived in a different world from the programs themselves. You wrote code on paper, punched it onto cards with a mechanical keypunch machine, then carried boxes of cards to the computer room. If there was an error, you walked back to the keypunch, made new cards, walked back to the computer. The feedback loop stretched across physical space and human walking speed.
The Reinforcing Loop
Some computing pioneers realized that a reinforcing loop was there for the taking. Run the tools for instructing the computer on the computer and the better the computer got, the better the tools ran, which make it possible to further improve the computer. And the tools. And around and around.
Smalltalk was an early exemplar of this loop. The better the environment for programming together got, the better the environment for
...This excerpt is provided for preview purposes. Full article content is available on the original publication.
