Computers are Fun Again
A long long time ago, probably around the year 2001 when I was still in college, I studied abroad in France for a semester. I brought with me a tiny (at the time) 11” Toshiba laptop with one of those little keyboard nubbins for a mouse. My host family had no Wi-Fi, of course, but that was ok because I had downloaded the entire web version of the Java SDK onto my machine.
I spent days exploring all that Bordeaux had to offer with the other exchange students, and nights writing code with nothing but the Java SDK as reference. I made video games, desktop apps, command-line utilities and generally had a grand old time coding and debugging into the early hours of the morning.
I think what made it so much fun was the self-contained nature of the work. With only Java and my local computer as surface area, I could fully wrap my hands and mind around everything happening within the system. Debugging was still fun because there was only so much that could go wrong, and the foundation upon which I was building was stable: Java 1.3.1 running on Windows 2000 Professional.
Fast forward 20 years later and things had changed. Programming had become a thing made up more of dependency management than of coding. And the stack had deepened considerably. Back in my Bordeaux host family bedroom, it was just a programming language, compiler, runtime and OS. Now it was all of those things PLUS containers, container orchestration, The Cloud, infrastructure as code, web-based configuration UIs, third-party services, remote version control, package managers, data sources, and all the project management fluff surrounding anything done on a team. Plus the constant stream of new versions and releases meant all of that was likely changing out from under you multiple times per week.
It was now extremely difficult to wrap one’s head around all of it. Impossible if it wasn’t your full-time 8-hour-a-day job. And frankly, it was a lot less fun. Less about solving problems and building things, more about managing an ocean of ever-changing dependencies and barely keeping your head above water while doing it.
But now. Oh boy now. I’m at my desk where I have three different computers full of terminal screens and active computer use sessions. It feels POWERFUL. It feels good. I don’t have to be buried in the details. And yet the feeling of control is still there. I’m still making decisions about how to solve problems, getting intricate about how the system will be strung together, and most of all BUILDING.
It feels like 2001 all over again.
All the layers of complexity and dependency management are still there. But instead of those things representing seemingly infinite toil, they represent things that the AI can manage or recreate for me. And the problem of setting up the system to do that properly feels much more like actual programming instead of clicking around in web UIs, googling for package compatibility, or parsing obscure error messages.
Suddenly the power is back in our hands. Navigating the ocean of complexity and ever-deepening stack of dependencies is doable again.
Most of all, it feels FUN again.