Today I want to share something quite personal, and more emotional than I would typically post on this blog. I have been living in a mild state of malaise, and for me, it took deep self-reflection to realize what the root cause was. Some time in the last year, slowly but surely, the world lost something important to me: the art of programming.

I started programming when I was about 11 years old. It captured me pretty much instantly. It was just so much fun to be able to make games, interactive desktop wallpapers, and websites. I loved being able to make interactive experiences that I could share with others. I devoured every book about programming I could find, to the point where my parents got mildly concerned. And eventually I fell in love with the more theoretical side of programming as well: algorithms, data structures, and how to design and structure code so it's as clean and maintainable as possible. This led to competitive programming competitions, where I loved the thrill of participating in both local and global contests and putting my skills to the test against others. All the rounds of Google Code Jam, Hash Code, and other contests were yearly events I marked on my calendar in eager anticipation. And of course, programming became my career. An activity I greatly enjoyed and was lucky enough to be paid well for being good at it.

And then came AI. Powerful models are now capable of writing code faster than any human ever could. They know every algorithm that's ever been invented. They solve most problems you throw at them. Those programming contests I used to mark on my calendar? Most of them don't exist anymore. A key reason is that if you were to now copy-paste the question into ChatGPT, you're very likely to get a working answer within seconds. Previously, even the fastest humans couldn't produce it in under 5 minutes, and the more difficult challenges took hours. And our dayjobs have transformed for the same reason: nobody can write code as fast as Claude or Codex can.

On the one hand, AI is allowing us to create new software at previously unimaginable speeds. Shouldn't I be deriving my joy from that? I fell in love with programming because it allowed me to make things I could show others. I can still do that, and now even faster, right? In a sense, yes. And that aspect really is great. I love it.

On the other hand, it cuts deeper. A whole class of things I used to spend most of my life on now feel pointless. Why bother learning Rust / Zig / Haskell if I won't be the one writing it? Why bother knowing anything at all? After all, I know I'll just keep prompting until the AI figures it out, even if sometimes it will have to Google something along the way. In the end something I used to pride myself in knowing and being good at (writing quick code that solves a problem or produces something amazing) is now something a robot can do much better and faster in 99% of cases.

I still think I can do that 1% better, for now at least, such as architecting the system and designing the code to be as minimal and maintainable as possible. I can also understand and clean up what the robot builds, whereas a non-programmer couldn't. But the value of this is difficult to demonstrate to non-programmers. Heck, it can even be difficult to demonstrate to programmers. It takes a lot of time working with a codebase before you understand whether it is well-architected or not. As long as the code isn't a complete mess, you first need to understand the domain well enough to see whether any complexity in the code is warranted, or whether it is inherent to the domain. It can take days or weeks to do this, in a brave new world where we are getting used to working in timescales of minutes and hours.

For a long time, I attributed my mild malaise to the general uncertainty these technological advancements bring for the future, in tandem with large political changes we are currently seeing across the world. While that definitely factors in as well, for me personally, that is only half of it. I have lost the joy in practicing the art of programming. Coding a large system over hours, days or weeks, taking a step back, and being genuinely proud of my work, is a feeling I may rarely get to enjoy again. Not when you can, at least from the outsider's point of view, achieve the same result within hours with AI. We all know the end result is not really identical, but as it turns out, the economic incentives just aren't aligned to doing it the slow, thoughtful, artisanal way. Like a carpenter being replaced by machines and assembly lines, if I want to create some artisinal hand-crafted code now, it would either have to be on my own time, or I need to be able to set myself apart through what I produce in a way that no AI could. And even then, to stretch the carpenter analogy a bit more, I would be wasting time if I didn't at least use some power tools.

This is quite a big change, and one that, it turns out, I'm still getting to grips with. Am I in the fourth stage of grief, and the next stage will be acceptance? Perhaps. Time will tell.

A scene from The Six Million Dollar Mon

In an episode of Futurama called "The Six Million Dollar Mon", Hermes Conrad gets replaced by a robot called Mark 7G. In a futile attempt to stay relevant, Hermes starts replacing more and more of his body with robotic components. Until finally the only part he hasn't replaced is his brain. He then decides to replace the last bit of humanity left in him, and get a robot brain as well. It remains to be seen whether we as programmers will be fully replaced by robots, like Hermes with Mark 7G, or merely use AI as power tool-like augmentation of our existing skills to stay competitive.

Personally, I'm more in the power tools camp. These new tools are exciting, giving us superpowers to build even greater things, and as participants in the process we can still be proud of the result. I'm sure, in time, we'll learn to wield them with great skill. However, it was important for me to reflect on what we have lost along the way. For some, like me, well-designed code can be a beautiful thing. Artisanal, hand-crafted software will still have its place, but choosing that path will be an artist's life from now on.