Comment by spaceywilly
4 months ago
From that tweet:
> I don't read the diffs anymore. When I get error messages I just copy paste them in with no comment, usually that fixes it
That sums up vibe coding, imo.
The article talks about code quality with vibe coding, but I think that misses the point. The real problem is code knowledge. When a vibe coder inevitably needs to debug something, if they have no idea what any of the code does, or why it is the way it is, they are not going to have a good time.
Sure they can copy paste the error into the LLM and hope for the best, but what happens when that doesn’t fix it? I’ve already had to spend hours at work tracking down bugs that ending up being in there because someone just blindly accepted the code an LLM wrote, I fear it’s only going to get worse.
> When a vibe coder inevitably needs to debug something, if they have no idea what any of the code does, or why it is the way it is, they are not going to have a good time
Kernighan's law still applies.
https://www.laws-of-software.com/laws/kernighan/
I strongly believe it also applies to the AI itself.
If the AI wrote the code to the top of its ability, it doesn’t have the capability to debug said code, because its ability to detect and correct issues has already been factored in.
You end up with a constant stream of “I see the issue, it’s: <not the actual issue>”, which is consistent with my experience of trying to have LLM’s debug their own code without basically doing the work myself and pointing them to the specific actual issue.
[dead]
Also from the tweet;
> It's not too bad for throwaway weekend projects, but still quite amusing
You were never supposed to vibe code on serious projects.
Any project that solves a real need will invariably become serious.
I have lost count of the number of quick one off scripts that ended up still being used in production workloads five (or more) years later.
It's fine for tooling or weekend project. I did it on an internal tool. It's got so much functionality now though, that Cursor struggles. It was great when I had a blank project, needed x, y, z and it went off and did It's thing. The moment the project got bug and need modifications, it is better that I do it myself.
Also I am a backend engineer. I don't know what kind of code it's producing for my front end. I just hit accept all. But seeing how it does the backend code and having to prompt it to do something better (architectural, performance, code reuse) I have no doubt the front end of my pool is a pile of poop.
I fear that management will see these small quick gains and think it applies to everything.
I'm of the opinion now, that vibe coding is good if you are familiar with the code & stack and can ensure quality. You don't want to give it to a product owner and have them try to be an engineer (or have a backend dev do front end, vice versa).
Just my opinion.
[dead]
Like you, I’m far too risk averse to not fact check everything an LLM outputs, but I’ve also fixed bugs that have been present for 5+ years. Maybe at a certain point you can just wait for the next generation of model to fix the bugs. And wait for the generation after that to fix the newly introduced and/or more subtle bugs.
> I’ve already had to spend hours at work tracking down bugs that ending up being in there because someone just blindly accepted the code an LLM wrote, I fear it’s only going to get worse
And I’ve also had to spend hours at work tracking down badly copy pasted stack overflow code, or from other places in the codebase that didn’t do what the programmer thought it did. A shitty carpenter will build a shitty staircase whether they have a chisel or a dremel
But what about a middling carpenter? Moralism about "shitty programmers" is not helpful when we're really talking about aggregate trends, and when it comes to aggregates -- tools do matter. Defaults matter. Precedent matters. Things like these are why culture has such an outsized impact on a teams' ability to ship good, quality code over a long period of time.
One difference is that orgs are tracking AI coding assistant usage as a (positive) metric, soemthing they never did with SO. Given finite time, being pushed to AI code whether or not it makes sense or is efficient in either quality or delivery time, and with no relief of time constraints, means other things will fall by the wayside.
A good carpenter will build a shitty staircase if he is forced to use the wrong tool, given a timeline that doesn't accommodate it, and paid for delivering something that superficially resembles a staricase on time regardless of quality.
> Sure they can copy paste the error into the LLM and hope for the best, but what happens when that doesn’t fix it?
Neither side cares unfortunately.
When users attempt to prompt away their problems without understanding the error and it doesn't solve it, that is still good news for Cursor and Anthropic and it is more money for them.
The influencers encouraging "vibe coding" also don't care. They need to be paid for their Twitter money or YouTube ad revenue.
> Sure they can copy paste the error into the LLM and hope for the best, but what happens when that doesn’t fix it?
Then you throw the code away and start newly from scratch. Or you accept that your problem cannot be solved by vibe coding.
[dead]