Related ToolsCursorClaude CodeCodyAider

The Case Against LLM Code Generation as a Long-Term Strategy

AI news: The Case Against LLM Code Generation as a Long-Term Strategy

What if AI coding tools are solving the wrong problem?

That's the argument in a recent blog post by developer Boris Buyukliev, who contends that LLM-based code generation (tools like Copilot, Cursor, and Claude Code that write code from natural language prompts) addresses symptoms rather than root causes. Instead of accepting that programming requires mountains of repetitive boilerplate code and then automating its creation, the industry should be redesigning the abstractions that make boilerplate necessary in the first place.

The Core Argument

Buyukliev's position boils down to this: current programming languages and frameworks force developers to write enormous amounts of structural code that doesn't express any actual business logic. LLMs have gotten good at generating this code, which feels productive. But it's "a tool that aggravates the problem" because it removes the pressure to fix the underlying issue.

The fix, in his view, should come from better operating system APIs, smarter standard libraries, improved language design, and more capable middleware. These are the layers where repetitive patterns should be eliminated once, for everyone, rather than regenerated project-by-project by a probabilistic model.

Where This Lands

There's a kernel of truth here. Anyone who has watched Cursor generate 200 lines of database connection boilerplate knows that a better ORM or a smarter framework could have made those 200 lines unnecessary. The best code is code you don't have to write at all.

But the argument also has a significant blind spot. Language design moves on decade-long timescales. LLM coding tools are shipping improvements weekly. Real developers need to ship products now, not wait for a hypothetical perfect abstraction layer. And in practice, AI coding tools do more than generate boilerplate. They explain unfamiliar codebases, catch bugs, and help developers work in languages they're still learning.

The most productive framing isn't "LLM coding versus better abstractions." It's both. Use AI tools to handle today's messy reality while pushing for cleaner foundations underneath. The developers getting the most value from tools like Cursor and Claude Code aren't the ones blindly accepting every generated line. They're the ones who understand their codebase well enough to know when the AI is papering over a design problem they should actually fix.