In my experience, its the opposite. The AI is very good at writing code, but it is unreliable at any kind of design. I use it as a fancy form of autocomplete. I give the broad strokes: "add a method here and change all but this one caller to use the new method", "Apply this design pattern here for this change but don't do this other thing". It completes the task reasonably well and sometimes even remembers to run the code formatter and check that tests pass.
If I ask it to me produce a design, I'll almost always end up with something unworkable or inefficient.
Though if you push it hard enough then it can sometimes give you a good description of what existing code does and how it does it (which can be easily verified).
Can you pro-AI people at least agree on what is it even useful for?
Every thread is endless back-and-forth between the "AI works great and vibe coding is the future" and "no, AI works great as long as you don't vibe code" camps.
AI is in like year 4 of being useful for the task. And it’s changing rapidly. We don’t know what it’s good for yet!
But pick a technology used to write code and you’ll see many of the same things. Broad unit test adoption happened more then 20 years ago and people still can’t decide what it’s good for or even if it is useful.
That’s because it depends on the circumstances of the problem and the person solving it.
So no, we can’t decide exactly what it’s good for and if we could there would be exceptions. But that’s not an indictment of any tool.
Can developers agree on what the best programming language is? The best framework? The best OS?
AI is a diverse technology and will work differently for everyone, just like JS is a really, really bad technology for many, yet widely used.
On top of that it (as coding agent) is brand new, just a few years old. Looking at the history of technology it will probably take a few decades for it to settle into some sort of stability. Which does not mean it does not provide value during this time of exploration, however there is no trodden path leading you there.
Is it so hard to imagine that people who find LLMs useful might have different perspectives on it? If you put a lot of energy into being against something you might think that everyone who doesn't agree puts the same energy into being in favor of it, but that's not real life.
Fancy autocomplete is a solid use. I use the same pattern replication technique whenever the situation allows for it. It's great for following your lead, but unreliable at taking the lead. Even if it was more reliable, I won't have the same working knowledge of the structure it created.
If I ask it to me produce a design, I'll almost always end up with something unworkable or inefficient.
Though if you push it hard enough then it can sometimes give you a good description of what existing code does and how it does it (which can be easily verified).