The skill of programming isn't eliminated and it's fine to still enjoy it. I think it will end up like carpentry or metalworking, or maybe ham radio.
The economic impact of this shift is a separate, much more problematic issue.
Like I had language models help me set up the build.gradle for a Minecraft modding project, and it made that build system a bit less scary to me, faster than I could've learned it from scratch. And it helped me focus on modding, rather than setting up boilerplate for nearly as long as I'd have needed to in the past.
That definitely can result in having fun. It's distinctly different from crafting something non-throwaway you actually care about vibe-coded or otherwise.
Maybe I'm not as much vibe coding as people who only talk about the user experience without worrying about the implementation. I care deeply about all observable details, including protocol level ones and things like process behavior, so I'm developing this bit by bit, like how I would organically. It is very fulfilling, comparable to doing it from scratch for me.
Of course, I also use it to whip stuff up as a means to an end as well. I can get to many more ends this way, compared to doing it organically, just because of time and effort constraints. Sometimes it goes above and beyond and accidentally ends up making it even easier for me than expected. Other times it goes too far and gets stuff wrong, but you win some and you lose some.
I'm doing exactly that right now. Vibe-coding a small MacOS app that I had for years. I bought it and all, but it never had all the features I needed, and it has stuff I never ever used. So, I wrote a spec, made screenshots and let the agent do its thing. It's coming out great, I will be using this thing daily. The plus for me is that I didn't need to learn/code a UI framework, wire up UI components, etc., which is knowledge that I honestly would have little need of in my daily job.