The question is how well an LLM can rewrite boilerplate for new boilerplate when the underlying API changes. Boilerplate is usually bad because it's inflexible: you're making ever user of an API write almost the same thing, rather than giving them an abstraction, which means you're forcing them to provide all of the defaults. When something new requires a default, or when the right choice for a default changes, you require every single consumer of your API to change their code.
From what I've seen of LLMs, they'll be very good at this kind of change in 90+% of the cases and catastrophically (and non-obviously) wrong in the rest.
@ltratt @pervognsen yeah fair enough. I agree they are different. An IDE / LSP can’t give more than surface level understanding of code at a glance. LLMs can thrn code into plain English. And it’s pretty reliable for smallish sections of code even spanning multiple modules. (Breaks down pretty quickly when you get into weeds but this is still valuable).
But on the other hand, IDE tools / LSPs are significantly more reliable at understanding relationships, static analysis, refactoring, etc.
@ltratt I’ve said many times that LLMs provide the greatest productivity boost where the **accidental** complexity of your language, tooling, framework, etc. are high.
What if we just invested in better tools, better abstractions, etc. that reduce the accidental complexity. That’s the real problem to solve for!
LLMs are not a particularly huge multiplier when it comes to the essential complexity in my experience. It’s not nothing, but it’s not 2x either. Mostly helps me poke holes in ideas.