18 comments

[ 1.6 ms ] story [ 40.3 ms ] thread
Why do you think AI is producing low quality code? Before I started using AI, my code was often rejected as "didn't use thing X" or "didn't follow best practice Y" but ever since I started coding with AI, that was gone. Works especially well when the code is being reviewed by a person who is clueless about AI.
I've been using Augment lately in dbt, PHP, and Typescript codebases, and it has been producing production-level code, it has been creating (and running!) tests automatically, and always goes through multiple levels of review before merge.

Posts like these will always be influenced by the author's experience with specific tools, in addition to what languages they use (as I can imagine lesser-used languages/frameworks will have less training material, thus lower quality output), as well as the choice of LLM that powers it behind the scenes.

I think it is a 'your mileage may vary' situation.

Everybody loathes fast fashion but look at their revenue.
I don't know what fast fashion is, but we definitely get production grade high quality code from AI.
Many of the statements in the article would have been correct in 2023. OP sounds like he is judging stuff he doesn't have a lot of experience with, a bit like my grandma when she used to tell me how bad hip hop music is.
Whenever i try to use any of the LLMs to do code i need for work they fail miserably or sometimes it works and i scan over what theyve done to make it work and it looks absolutely like a mad man has written it.

The only use i seem to get out of LLMs with my work is writing mundane brainless stuff like arrays for json responses etc which saves me 5 minutes so i can browse ycombinator and write these comments

Vibe coding is not a 0/1 skill. LLMs generate code as the prompt says, so when you ask what you want, you get it. If you want a specific pattern or architecture, explicitly ask for that. It works really well when you (not the LLM) drive the development.
(comment deleted)
This might be the first article in the history of AI that I can truly stand behind.
I knocked up a VSCode plugin in a few hours that extracted a JSON file from a zip file generated by the clang C++ static analyzer, parsed it into the VSCode problems and diagnostic view and provided quick fixes for simple things. All of this without hardly knowing or caring about java script or how the NPM tool chains work. Just kept taking screen shots of VSCode and saying what I wanted to go where and what the behaviour should be. When I was happy with certain aspects such as code parsing and patching I got it to write unit tests to lock in certain behaviours. If anyone tells you LLM's are just garbage generators they are not using the tools correctly.
It seems to me that the ongoing “vibe coding” debate on HN, about whether AI coding agents are helpful or harmful, often overlooks one key point: the better you are as a coder, the less useful these agents tend to be.

Years ago, I was an amazing C++ dev. Later, I became a solid Python dev. These days, I run a small nonprofit in the digital rights space, where our stack is mostly JavaScript. I don’t code much anymore, and honestly, I’m mediocre at it now. For us, AI coding agents have been a revelation. We are a small team lacking resources and agent let us move much faster, especially when it comes to cleaning up technical debt or handling simple, repetitive tasks.

That said, the main lesson I learned about vibe coding, or using AI for research and any other significant task, is that you must understand the domain better than the AI. If you don’t, you’re setting yourself up for failure.

> TL;DR: My take on AI for programming and "vibe coding" is that it will do to software engineering what fast fashion did to the clothing industry: flood the market with cheap, low-quality products and excessive waste.

This metaphor is too limiting though. You can do so much more with software than you can with clothes. Take a look at what injidup wrote. People are creating small home brewed projects for personal use.

So a lot of "fast fashion software" is going to be used at home. And let's face it, for our own home brewed projects for personal use, standards have always been lower because we know our own requirements.

I think in this "shadow economy of personal software use", LLMs are a boon.

I think it's revealing that a group that historically values making decisions based on verifiable and accurate information is now jumping to discredit "Vibe Coding" based on rumors that are easily disproven.

1. Tea App wasn't vibe coding - It was built before vibe coding and the leak was incorrectly secured Firebase https://simonwillison.net/2025/Jul/26/official-statement-fro...

2. Replit "AI Deleted my Database" drama was caused by guy getting inaccurate AI support. All he needed to do was click a "Rollback Here" button to instantly recover all code and data. https://x.com/jasonlk/status/1946240562736365809

What does this eagerness to discredit vibe coding say about us?

On a plane from Sydney to Tokyo. Just "vibe coded" a tool we've needed for years in a matter of hours. Web workers, OPFS file management, e2e tests via playwright, Effect service encapsulation and mocking etc.

If you know the domain it's a 3-6X efficiency improvement.

Amazing how well LLMs work on airplane wifi. Just text after all.

I refuse to believe “__vibe__ coding” (I hate that word) is even a thing outside of startups and hobbyists. It just seems like a cute phrase coined by Karpathy now solely exists to create articles for clicks.
The 'vibe coding as fast fashion' analogy is interesting, and the article makes some valid points about code quality, maintenance burden, and the 'don't build it' philosophy. As an OSS maintainer, the 'who's going to maintain it?' question hits home.

However, I find the analogy a bit off the mark. LLMs are, fundamentally, tools. Their effectiveness and the quality of output depend on the user's expertise and domain knowledge. For prototyping, exploring ideas, or debugging (as the author's Docker Compose example illustrates), they can be incredibly powerful (not to mention time-savers).

The risk of producing bloated, unmaintainable code isn't new. LLMs might accelerate the production of it, but the ultimate responsibility for the quality and maintainability still rests with the person pressing the proverbial "ship" button. A skilled developer can use LLMs to quickly iterate on well-defined problems or discard flawed approaches early.

I do agree that we need clearer definitions of 'good quality' and 'maintainable' code, regardless of AI's role. The 'YMMV' factor is key here: it feels like the tool amplifies the user's capabilities, for better or worse.

Novice programmer: AI is really useful

Middling programmer: Don't use AI. It creates bad legacy code that no one understands and is hard to debug. Machines will never write code as beautiful as true human artisans. Even if your saving time, you're actually wasting time.

Advanced programmer: AI is really useful