Unfortunately, vibe coding is seen as acceptable to many specifically because what you say here hasn't been the norm for like 15 years now.
The rise of bootcamps, dependency-driven-development, and "move fast and break things" culture convinced a whole generation of programmers that all that matters is the happy path, and even then, only within the context of today's specific task. The ocean of garbage they produced during that time is both one of the reasons why LLM's can produce code in the first place and one of the reasons why that code is so consistently and irrecoverably poor by traditional standards. Aspiring vibe coders see their peers earning absurd six-figure salaries to produce the exact same sort of unstable, short-sighted noise that they see their LLM literally reproduce for pennies now.
In many ways, we should be gatekeeping by asserting a higher standard of foresight and quality for redistributed code, but we completely lost that battle many, many years ago already.
Most code (even written by good programmers) rarely functions correctly most of the time. Most code is broken. This is not the problem with AI. Unless I am using the tools wrong, LLMs can generate fully functioning scripts (and some of them are good) but they break after the 50k token context and start doing insane things that not even juniors will do (like randomly removing code).
If you want to see a shit-show, go to Bolt Discord channel. Some users are able to get a very simple and rough kinda single script app running. Everything else breaks once they start making simple amendments. This is not fixed by Claude 3.7 or O1 Pro or whatever. This is a fundamental issue in all of the LLM and a local maxima of the current tech.
Not that the current tech is not amazing. It is and there is a lot of value to be extracted from it. But everyone and his investor think they are about to reach nirvana and want to replace everything with "AI" where "AI" is a 100k context LLM.
When a post is a "warning" about user's credit cards etc. and it was in none of the "vibe coding" examples, that feels like someone deflecting (but with a gate keeping mindset).
As others have said here, I too have knocked out little apps and sites vibin'. At first (1) it was to see if what everyone was saying about LLMs was true. Then (2) I wanted to see if LLMs could help in languages I was not familiar with. Then, even for languages I knew well enough, I (3) wanted to see an LLM's code to get the modern method of modularization for the language (JavaScript is one that has gone through phases). Finally I came to trust the machine and (4) have vibed code just for my own small projects.
Gatekeeping is restricting access to the trade with arbitrary precedence, like "real coders use emacs." It's not expecting safety. If someone wants to build a bridge out of cotton the city won't let them. That isn't what most people consider gatekeeping.
Vibe coders as described in the OP can just copy/paste exactly what the LLM spits out with much less knowledge. It’s not the same thing at all IMO.
If you only take exactly what the LLM spits out you can only verify by running. If it is broken in edge cases you can only prompt the LLM to fix. You then have to run the code again to verify the fix, and with zero understanding it may have broken some other edge case (LLMs do this all the time especially overly eager reasoning models).
It might be, it might not. My colleagues and I are also guilty of introducing unrelated edge cases, but again, we do fine.
The case you're describing is also fairly pathological. There's nothing stopping a vibe coder from digging into their code and becoming a 20% monster like me.
Consider that the world is full of programmers who are objectively shit (I live in India, and have personal experience). The only difference is that they’ll be copy pasting from ChatGPT instead of StackOverflow, and honestly I’d rather have ChatGPT.
Isn't that the definition of gatekeeping? and even so, who cares? the new guy coming in creating/doing something in a way that "shouldn't be done" will eventually fail and notice the shortcomings of what they did. Then they will either drop their project or learn the way "it should be done" (like we all did, except now with AI).
I write really bad Haskell code sometimes without any AI assistance. Am I doing a Bad Thing when I create my own tools?
What are you intending to regulate here?
It appears to be happening right now in the US federal government.
Do you have an example?
That’s what AI code tends to do. It looks fine to the outsiders, it might even function correctly MOST of the time. Programmers are trained, mostly through experience but also classically, to think through every exceptional case and figure out how to handle it (or return an error so a human can handle it).
That isn’t to say this is ALWAYS the case with AI code, but rather it TENDS to be the case. YMMV, which is where these warnings are coming from.