A Joy That is Being Lost - by Dave Griffith
Dancing with Robots: A Software Architect's Journey
SubscribeSign in
A Joy That is Being Lost<br>Agentic coding is amazing, but sometimes...
Dave Griffith<br>Jun 15, 2026
Share
My career started in 1977 at age 12, when Dad brought home an Apple II that he had borrowed for the summer from the high school where he taught algebra. The math department had purchased the computer and they didn’t want to leave it in storage all summer to be swiped. Hence it showed up on my parents desk, blazing like a Silmaril to my young eyes. It came with a random box of software on hand-copied 5-1/4” floppies and some spiral-bound docs. I took to it instantly, devouring the documentation including most especially one amazing book called the Apple II Basic Programming Manual.<br>That book, perhaps even more than the purple book, guaranteed I would never have to do an honest day of work in my life.<br>Programming the Apple II in Basic was so crude as to be barely possible. A grade-schooler programming in Scratch has better control and data structures available, better primitives, and a vastly better development environment. The hardware itself was just as crude, barely capable of doing anything useful. The best you could say about it as a programming experience was that it wasn’t possible to build a program that would physically damage its own hardware, although I’m sure Dad would have been simultaneously proud and annoyed if I had managed it. This relative robustness made it better than several of the personal computers available at that time, for which the idea of a “halt and catch fire” opcode was no joke.<br>I loved programming that thing beyond words. The sheer joy of getting a machine to do what I wanted was part of it, but for me the larger part of it was just how incredibly precise one had to be. One character in the wrong place, a pair of digits swapped, and everything you had tried to build would fail in ways either grim or ridiculous. A missing semicolon could cause a stock to crash, or a spacecraft. Literally everything about ones program had to be perfectly and laboriously specified. That experience taught me a kind of responsiveness found few other places in life. The machine never lied, never had a bad day, never held a grudge. If it didn't work, the fault was mine and the fix was mine, and somewhere in the gap between those two hard truths lived everything I would ever learn about the pure human joy of craft.<br>Over the years programming got easier and more powerful, and the need to be quite so fanatic about so many details lessened. The more fiendishly picky parts of the craft were solved, leaving us free to concentrate on problems of engineering and technology. We didn’t need to worry about register allocation or memory layout so much, and instead could worry about expressive datatypes and powerful test suites. Still the fundamental nature of the task was unchanged. Solve the puzzles. Work the issues. Don’t get one character wrong. We were engineers, sure, but also craftsmen.
And then, fifteen months ago, the sand started to think just a bit more than it had been, the tools learned to write themselves, and the thing I had been doing for forty-eight years quietly stopped being the thing I do.<br>Agentic coding tools have already started producing better engineering and technology than purely human programmers have. You can still find those saying otherwise, but they are fewer and fewer each day and their arguments are getting further and further removed from reality. I’ve embraced this fully. I’ve written in praise of it. I’ve used it both professionally and personally to build high-quality software. There is still a learning curve, but at this point any technologically literate person with a few bucks to spend on a license can produce more and better software than has ever previously been the case. I will brook no arguments that this is not a positive development for humanity.<br>What I miss, specifically, is not engineering. Engineering survived every prior abstraction. When we stopped hand-allocating registers we simply moved up a floor and found new puzzles waiting, and the work was as absorbing as it had ever been. What I miss is the craft itself. The demand that I hold the whole machine in my head at once, every byte of it, and account for all of it, perfectly, before any of it would run. That demand was tyrannical and I loved it the way you love a hard teacher decades after the fact.<br>There was a particular feeling when a difficult bit of functionality finally compiled and ran clean. Not relief, although under sufficiently horrible deadlines there was that as well. More like the click of a lock you’d been picking blind. You had carried a model of the problem in your mind, turned it over and over until it was as smooth as river glass, found the one arrangement of symbols that satisfied it, and the machine had acquiesced. The machine always acquiesced, eventually. Nothing else I...