(no title)
StopVibeCoding | 7 months ago
I got tired of hearing about vibe coding day in and day out, so I gave in, and I tried everything under the sun.
For the first few days, I started to see the hype. I was much faster at coding, I thought, I can just type this small prompt to the LLM and it will do what I wanted, much faster than I could have. It worked! I didn't bother looking at the code throughly, I was more vigilant the first day, and then less so. The code looks fine, so just click "accept".
At first I was amazed by how fast I was going, truly, but then I realized that I didn't know my own code. I didn't know what's happening when and why. I could churn lots of code quickly, but after the first prompt, the code was worth less than toilet paper.
I became unable to understand what I was doing, and as I read through the code very little of it made any sense to me, sure the individual lines were readable, functions made some semblance of sense, but there was no logic.
Code was just splattered throughout without any sense of where to put anything, global state was used religiously, and slowly it became impossible for me to understand my code. If there was a bug I didn't know where to look, I had to approach this as I would when joining a new company, except that in all my years, even looking through the worst human code I have ever seen, it was not as bad as the AI code.
nico|7 months ago
Yes, this happens, and it’s similar to when you first start working on a codebase you didn’t write
However, if instead of giving up, you keep going, eventually you do start understanding what the code does
You should also refactor the code regularly, and when you do, you get a better picture of where things are and how they interact with each other
StopVibeCoding|7 months ago
I believe you missed the part of my comment saying that I have been coding professionally for 20 years. I have seen horrible codebases, and I'm telling you I'd rather see the switch statement with 2000 cases (real story), many of which were 100s of lines long, with C macros used religiously (same codebase). At a bare minimum, once you get over the humps, with human written code, you will always find some realm of reason. A human thought to do this, they had some realm of logic. I couldn't find that with AI, I just found cargo cult programming + shoving things where they make no sense.
mrbluecoat|7 months ago
StopVibeCoding|7 months ago
Among my peers, there seemed to be a correlation between programming experience and agreement with my personal experience. I showed a particular colleague a part of the code and he genuinely asked me which one of the new hires wrote this.
As for management, well, let's just say that it's going to be an uphill battle :)
> What steps could realistically reverse the momentum of vibe coding?
For me and my team it's simple, we just won't be using those tools, and will keep being very strict with new hires to do the same.
For the software industry as a whole, I don't know. I think it's at least partially a lost cause. Just as the discussions about performance, and in general caring about our craft are.
DANmode|7 months ago
almostdeadguy|7 months ago
CuriouslyC|7 months ago
StopVibeCoding|7 months ago
I have tried beign specific, I have even gone as far as to feed its prompt with a full requirement document for a feature (1000+ words), and it did not seem to make any significant difference.
ofjcihen|7 months ago
LLMs write code according to thousands of hidden system prompts, weights, training data, and a multitude of other factors.
Additionally, they’re devoid of understanding.
I truly hope you do better in the future.
skydhash|7 months ago
Nope. The factors are your prompt, the thousand of lines of system prompts, whatever bugs may exist inside the generator system, and the weights born from the examples in the data which can be truly atrocious.
The user is only partially in control (a minimal part of that). With standard programming workflow, the output are deterministic so you can reason out the system's behavior and truly be in control.
sokoloff|7 months ago
Maybe taking the AI code as input and refactoring it heavily will result in a better step 2 than your previous step 0 was.
StopVibeCoding|7 months ago
DANmode|7 months ago
je42|7 months ago
StopVibeCoding|7 months ago
> I have tried being specific, I have even gone as far as to feed its prompt with a full requirement document for a feature (1000+ words), and it did not seem to make any significant difference.