AI is attractive to the sorts of people who have their secretary write their Christmas cards.
AI is still not competent enough to come up with good solutions in many things I work on. So, at least so far, AI has made me happier.
Unless you are hand selecting every atom that goes into a thing (maybe you make nuclear weapons?), you always make choices about what you focus on and what is irrelevant to your project.
Which is why it's changing the calculus on junior devs: if you're not mature enough to do self-review and self-QA, you're just dead weight for the team/company.
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.
a) Carpentry already happens in the real world
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.
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.
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.
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.
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.
The sharp end of the debate now is around what exactly that means in the LLM world. It's extremely unclear what exactly the new level of abstraction unlocked is, or at least how general/leaky it is.
There's obviously just the stance of enjoying the craft, and that's one thing off to the side, but I think the major source of conflict for those who are more oriented towards living in the top level of abstraction (i.e. what you can do in real life) is between some of the claims being pushed about said level of abstraction and what many still experience in actual reality using these tools.
Also, hasen't coding gone through many waves of automation now?