If anything, it's the opposite. LLMs are making programming even more fun for me, because I can choose what and when I delegate to them.
Looking up how to accept a drag and dropped file (and then implementing it) in a JavaScript application isn't really that fun to me - certainly not for the tenth time.
I thrive on variety and building interesting things. LLMs let me incorporate WAY more tools into my work - I can build with Go and AppleScript and Bash and ffmpeg and jq, all things I have never climbed the learning curve enough to feel confident using in the past.
Yeah, that makes sense. But I wonder, going forward, what is the relationship between "building abstractions/libraries" vs "Using LLMs"?
For your example, "How do I accept a drag and dropped file in JS?" - An LLM can spit out 100 lines that does what you want, OR someone writes a nice library that does what you want in a single function call (say, for the common case. More complicated usage requires more arguments, etc.)
(Of course, another option is LLMs are the ones writing these library functions).
I guess I am one of those programmers who is allergic to boilerplate (for better or worse), so having LLMs split out lots of code bothers me.
Part of this is my personal style: I don't like using libraries if I can throw in a tiny bit of boilerplate instead - that way I stay in full control of my code and don't need to understand dependencies that may do more than I need.
Looking up how to accept a drag and dropped file (and then implementing it) in a JavaScript application isn't really that fun to me - certainly not for the tenth time.
I thrive on variety and building interesting things. LLMs let me incorporate WAY more tools into my work - I can build with Go and AppleScript and Bash and ffmpeg and jq, all things I have never climbed the learning curve enough to feel confident using in the past.