Carpentry has always been an implementation detail for making furniture. They have been able to purchase flat-pack chairs for all of their lives, but for some reason there are people who learn this skill and have fun slowly making things that factories already make at scale. A subset of those people have made lucrative businesses out of the very human craft that is carpentry, and are able to create custom pieces on-demand that you could never justify retooling a factory to create.
It is okay to view code as a means to an end. I disagree, preferring to treat code as craft, and striving for better systems that are easy to understand, maintain and extend. And I think that's the source of our disconnect; deeper than one's opinion about AI is one's value of human skill and the effect that has on the output. Maybe I overvalue it, and maybe creating code "manually" is going to look more like carpentry in the future; but you cannot expect to convince a skilled carpenter that an IKEA chair is just as good and accomplishes the same task.
b) There's a clear problem being solved (you need furniture).
Stretching your analogy to fit my point: pretend that programming is manually sanding wood, while AI-assisted programming is using a belt sander. If you're focused on the chair being built, getting a belt sander to help is great! If you're sanding for the craft (?) of it, focused on the wrist mechanics of rubbing sandpaper up and down, you'd be disappointed.
Maybe the disconnect, then, is that you don't consider programming to take place in the real world. I don't share that experience, any more than someone coding batch jobs on punch cards or an author committing chapters via typewriter. Maybe the medium has parts that only have meaning within our minds, but we are real (dammit!) and we punch out those characters with our real hands and we get frustrated and deal with impedance mismatches and want to scream and laugh and cry. There is a piece of us that lives in what we build. It's evidence that we are real.
This ties in with your second point. There are uncountably many ways to accomplish the goal of making a chair or writing a program. And if you are a carpenter working on a one-off matched dining set for a fickle client, the problem might not be as clear as even many software tasks are. Your skill and experience is highly likely to play into the eventual form and structure of the finished work. The customer might not know where you hid the dovetail joints or dominoes, but they can absolutely notice the grain continuity and lack of obvious engineered joinery evident in a factory piece.
If you don't care, then fine! You can focus on the other things that bring you joy. But I hope you can appreciate that some of us want to experience solving these problems with a bicycle for the mind instead of a Waymo.
There’s a third group of people: people who did it, got good at it, and got bored.
I do both carpentry and programming and both activities have long since become repetitive. There are only so many dovetails or distributed systems you can make.
That’s why I don’t care if AI can replace those parts. I’m in it to do the designing, not the crafting.
That would assume that the AI is as good at the repetitive parts as you were, which isn’t my experience. You still have to review and correct it, which is more boring and repetitive than implementing it yourself.
But I also disagree about the getting bored on the “crafting”. It may depend on what you do, but there are always new design decisions and trade-offs to make all the way down. This isn’t a solved problem, and AI doesn’t change that.
> pretend that programming is manually sanding wood, while AI-assisted programming is using a belt sander.
That analogy falls flat, because there is little creative difference between these two modes of sanding. In particular, there is approximately zero variation in what the belt sander does as a function of how you control it. It is a reliable, deterministic, very predictable tool. That’s as different from generative AI as a compiler is.
It easy to convince a college student with $20 that an ikea chair is good. Artisanal is overkill for plenty of scenarios, and definitely those where time or money are constrained.
It is okay to view code as a means to an end. I disagree, preferring to treat code as craft, and striving for better systems that are easy to understand, maintain and extend. And I think that's the source of our disconnect; deeper than one's opinion about AI is one's value of human skill and the effect that has on the output. Maybe I overvalue it, and maybe creating code "manually" is going to look more like carpentry in the future; but you cannot expect to convince a skilled carpenter that an IKEA chair is just as good and accomplishes the same task.