After a couple months of experiments in “vibe coding” (which is to say, letting Cursor AI write all of my code for me), I am of two minds about the latest generation of LLM-based developer tools:
- I can see where this could be leading and it’s very exciting!
- It’s obvious the tech still has a long way to go, and in its current form it might be a dead-end.
For rapid prototyping of web apps and landing pages using popular tech stacks, libraries, and frameworks?
Incredible! I can potentially save myself a couple hours of initial setup time if I’m meticulous about my prompts. If I were still freelancing as a web developer this would absolutely be worth $20/month to me, and I would most likely incorporate LLMs into my workflow at this stage.
But for projects involving real-world code bases spanning hundreds or thousands of files and 100x as many lines of code? Projects built around microservices or cloud computing? Open-source software maintained by dozens of contributors?
These tools are completely useless! Worse than that, actually—they’re far more likely to make destructive changes than do anything remotely useful, even with the firmest possible guardrails (context and prompts) in place.
Crucially, if you don’t have the requisite coding knowledge to understand how to bring your ideas to life, I can just about guarantee you’re going to run into insurmountable showstopper bugs as your project grows in complexity beyond a simple landing page. You won’t know how to resolve them, and neither will the LLM. What then?
Bottom line for me: Despite major advances in UI/UX/DX with tools like Cursor and Windsurf, the LLMs they rely on are ultimately still just next-word-guessers. They can’t reason, they can’t problem-solve, they can’t reflect on their mistakes and learn to do better next time. They’re just guessing what the next line of code should be based on other code they’ve seen before, and the closer you get to real-world, production-ready code, the less useful these guesses become.