Like most programmers, I’ve been thinking a lot about the future of programming.

There’s a lot of chatter on the wild web that given LLMs can generate snippets, functions and even whole scripts based on prompts, and they’re often very good, that we’re headed to a world where human-written code may be less and less likely.

We’re collaborating on code for now, but that won’t last. We will first alpha-go and then stockfish professional programmers out of existence.

Actually, programming was always too hard to do really well anyway, right? Seriously. 10x and 100x programmers was shorthand for only 1 in 10 or 1 in 100 “trained professionals” could actually do the thing that was needed because it was so hard.

Code, UI, and whole systems will be on-demand in many cases, and developed+maintained by LLMs in the few other cases where we need a persistent artifact.

The dream we had when we played with genetic programming, namely automatic programming, went from impossible, to possible seemingly overnight. We’re not there yet, but we’re close. There are still horses on the road along side the horseless carriages. It’s early. We’re in transition.

I don’t believe this is late 90s .com “we’re going to do everything online forever starting tomorrow” hype. The shit works and is progressively getting better.

Some are in denial. I think it’s ontological shock. “things are moving fast” is an understatement.

Some are retreating already.

For example, I love the idea of slow code, which I found via Frank Ray in his post “The SLOW CODE Movement: Reclaiming the joy of coding”.

Slow coding is about enjoying the very act of writing code. It’s the experience of sitting comfortably, thinking carefully, being focused, and becoming one with the tooling. It’s about working in a way that enhances emotional self-regulation and promotes physical and mental relaxation. It’s about finding the right balance of communicating with colleagues and periods of isolated, individual endeavour.

I love the name. I love the ethos. I love writing code in this way for myself. Or I did.

I think I love the LLM-based approach more because I can make better things, faster. And I’m in the fat middle, not the leading edge of this stuff.

Anyway, the typical refrain, out there in the wild, is that we programmers will become hobbyists producing hand-crafted artisanal code.

Like hand-made shoes, and clothes, and wooden furniture.

Here’s just one example I tripped over just now (sparking this rant):

…Being a programmer today is like being someone in the early 20th century who enjoyed the craft and mastery of being a cold type typesetter. You could continue to do letterpress printing even as wave after wave of new technologies came along, but something which was necessary and state of the art was transformed into either a boutique small business or a quaint hobby, like calligraphy.

Seems reasonable on a first pass. Except…

A piece is left out. It’s the expectation that there will be a market for these hand crafted computational artifacts, like there is a market for hand-crafted luxury physical items and people are willing to pay more.

There won’t be a market.

This response to the above comment really hits home:

I understand what you’re saying but while artisan printing and calligraphy are visible articulations of the craft, skill, care and attention that go into their making, do you think the same can be said for “artisan, human-crafted code”? […] My opinion is it’s unlikely that human-crafted code will have the same inherent value that human crafted typography does, for all sorts of reasons to do with the way we can consume physical artefacts of language vs the way we consume code.

Nod.

No one will want (to pay for) your/our hand-crafted artisanal code down at the farmers market in the 2030s. We need to get okay with this idea.

(the comments above were on a discussion complaining about too many posts on LLMs. Using these points to motivate my rant: irony?)

From our buddy, gpt4o, chatting about all this with me:

Unlike handmade shoes or clothes, which have tangible differences in comfort, durability, and style, software doesn’t have an aesthetic in the same way—it’s primarily valued for functionality, efficiency, and correctness. If AI-generated code is superior, hand-crafted code would mostly be redundant.

Right now perhaps, (some) code written by an LLM is better than the average developer.

Soon it will be better than the top developers, then the very best developers. I think this progression is reasonable and to be expected.

For those in the market for code to solve business problems, why would they want programs that cost more and are likely less capable, just because they were written by a human?

The analogy of “but people buy hand-stitched jackets and handmade leather shoes and are happy to pay 10x moreis dead wrong.

Is someone going to value a binary compiled from handcrafted code written by a master as much as another luxury good, like a Rolex? High-status artisanal binaries?

In most cases, this is an analogy for a luxury item in a status game. How does an intangible artifact (a binary compiled from hand crafted artisanal code) fit into status games? Maybe I don’t have the imagination for the new status games that have to be invented. Collectors items maybe?

Will there be any use for human-rolled code? A very soft “maybe”, but not likely. Perhaps for extreme security or performance situations where you can’t trust or rely on current-at-the-time generative AI tech?

Programming will become a hobby only, a niche passion. Programming as a craft will be a blip in history before the machines could instruct themselves and each other, like humans do.

Hand-crafted code will be like hand-crafted math proofs. Perhaps something to entertain you in your down time and quaint artifacts you can show your friends and family.

Actually, here’s a thought: maybe for fun, we will watch live coding performances and competitions where we can watch other humans craft code. That kind of thing is popular on twitch right?