Well in this day and age, vibecoded happens a hellll of a lot and it's for better or worse.
Personally it's keeping me more on the tried and tested path in a lot of cases as while vibecoding has kinda found it's place, a lot and I mean a lot of people don't look much past what they want conceptualized in terms of, security, memory leaks, os differences etc etc.
That being said not every vibecoded project is 8/10 or a 1/10.
There is really good, tested but vibecoded stuff out there, but well the other way around is also definitly true.
I kinda wished, if somebody/a team vibecoded something... they would collaborate with known people (scene/developers etc) before they released the vibecoded version but I know that is wishfull thinking with regard of how things are moving along nowadays.
The way I look at those things is that it’s a sign of the times. Technology is iterative - programming used to be done with 1’s and 0’s on punch cards, so we created low-level programming languages like Assembly to input information in a more readily understandable way. Those languages still required intimate knowledge of the hardware, so we created high level languages like C to make the code more platform-independent, further abstracting from the bare metal. We still had to compile for specific machines though, so we abstracted yet another level away by creating languages that utilise VM’s or are interpreted to make code completely independent of the machine it’s running on. We’re getting to a stage where we’re abstracting away from the code itself and just “telling the computer to do things” in our native tongues, letting the computer figure out what we meant, something that in the past we could only imagine in fiction like Star Trek. That’s a huge, and it is good, but it comes with its own caveats.
What’s important here is that the “vibe coder” is relying on the machine to correctly interpret their instructions and generate code that does what they need it to do, and they need to verify that. In all of those previous stages of development the onus was on the coder to proofread and test the result to make sure it does not feature bugs that cause undesirable behaviour on the user’s machine. This is still the case and necessitates the required level of knowledge from the coder. There is nothing wrong with using AI as your little helper when coding to offload menial tasks so long as you know what the resulting program does and why.
Story time. I came to this exact conclusion when I read a story about Linus Torvalds using AI to fix bugs in an Intel driver, and arguing with said AI regarding the potential fixes. In that instance the AI was repeatedly wrong and needed to be steered in the right direction with conviction and persistence - it’s just a program, it doesn’t actually “think”. That being said, it was invaluable in this task per Linus’ own admission as it allowed him to brainstorm the problem, look at it from multiple angles he might have not considered and, ultimately, create a working patch.
https://www.xda-developers.com/linu...the-strengths-and-weaknesses-of-the-new-tech/
So, what did we learn? There was a bug in the Intel Xe driver and a patch was created with the help of AI, by one of the most foremost and formidable programmers in the world. Was it frustrating? Yes, because the model is trained a certain way and it will fall back on that training because it doesn’t actually “think”, it can be wrong and it needs to be shown another way sometimes which is frustrating. To get to that stage, you need to know what you’re doing. Combine AI and know-how together and you have an improved workflow that creates working solutions to problems that could take a long time to troubleshoot otherwise, or even to discover in the first place. It’s a fantastic tool that can, in Linus’ own words, do a lot of the grunt work, and that’s great.
Anyone who finds value in manually doing menial tasks does not value their time and does a disservice to their skill. Even if you’re a *great* programmer and you *can* complete a task without any assistance, your time is *better spent* tackling the big issues as opposed to wasted on peripheral nonsense that can be effectively copy-pasted, for the same reason why you’d use a library instead of writing everything from scratch - you don’t do that unless you have to. However, AI is *not* a replacement for knowledge and it does not absolve one of responsibility for what their code does because it would be negligent - the computer isn’t responsible for what you distribute, you are. You should inspect the result, understand it to the best of your ability, make relevant changes and, in the process of doing so, “own it”. AI is a tool, it provides assistance, and that’s how it should be used.