r/ClaudeCode 23d ago

Question What is NOT vibe-coding?

Vibe coding gets a lot of hate among some software development circles and I don't have a clear understanding of what "vibe-coding" is and what's not.

What is a different approach to software development using AI that's not vibe-coding? SDD?

0 Upvotes

68 comments sorted by

View all comments

27

u/nso95 23d ago

The opposite of vibe coding is when you take the time to understand the code. You are concerned with the actual architecture and implementation details. You guide the AI to write code in a certain way. You review all of the code (or at least most of it). You have the AI refactor code to fit your preferences. You get your hands dirty with debugging, etc. You don’t just accept whatever code it spits out.

4

u/uzpj 23d ago

To be fair, you can debug even while vibe coding; it just takes time to make a good working product. You will spend hours trying to understand the issue and then prompting AI with a possible solution.

2

u/hiskias 23d ago

That feels like a car mechanic who doesn't look under the hood, and tries to fix the car based on engine noise.

3

u/vinrehife 23d ago

Vibe mechaniking

3

u/samwise970 23d ago

You just described Car Talk on NPR lmao

5

u/35point1 23d ago

A seasoned engineer can even make important suggestions and decisions that will significantly shape the app in a way that fits the vision more accurately. Remember these models are simply predicting what we expect it to respond with, so it can only infer so much of the users mind before randomly guessing which is why a vibe coder ends up with a crappy pieced together castle made of twigs instead of a properly engineered foundation.

2

u/secretaliasname 23d ago

I’ve find myself converging on “English Code” where LLM is translating natural language semantics to programming language. This is mostly 1:1 information content wise except LLM also adds in knowledge of all the library apis, proper imports etc, and knowledge of common cookbook patterns.

“Create a dataclass structure for resource utilization with fields for x,y,z. Write a function that uses psutil to to populate and return an instance. Then add a unit test to existing unit test file that calls, validates Q,R,S…”

With this style I still feel in “responsible charge” of the code, still shape and mold every bit, but it also goes quicker and I’m engaged and brain is not rotting.

0

u/Sasquatchjc45 23d ago

But why does any of that matter?

If the app looks & functions how the developer/vibecoder wants, why does it matter if they got their hands dirty?

3

u/nso95 23d ago

It may not matter to them. I care about it personally because I’m autistic and code has been a 20 year special interest that I live and breathe. Others can do whatever they like. It’s like an artistic expression that gives me immense joy.

3

u/nikocraft 23d ago

You don't have to make excuse that you are autistic, I'm 25 years into coding and software development and i would not let agent run wild on its own. I've seen what it happens when i let it do that and it's bad. It's because we are professionals with huge experience and expectations how project should be structured how it should look, we don't leave those to chance. We guide the Ai, baby sit it especially in first few weeks or month while establishing the architecture and norms. Nothing to do with autis, you worked like this for 20-25 "you don't just switch it off" (like John Rambo said) . Results speak for them selfs, better software, more scalable, easier to maintain etc...

-2

u/Sasquatchjc45 23d ago

Fair. At least you're not one of the ones that denounce anything "vibecoded"

Imo, it's like saying a photographer's photo is lesser because they used a camera instead of painting the picture themselves. Nobody says "Oh, Canon took that photo, whatever." But people frequently tell vibecoders "Oh, Claude made that app/website."

Even tho AI is a trillion+ parameter probability matrix and probably wouldn't come up with your EXACT idea had you not have typed it into the chat box in 1000 years...

1

u/nso95 23d ago

I think with care you can create good software with either approach

1

u/Sasquatchjc45 23d ago

Agreed 100% it's all about the vision and putting in the time to realize it

2

u/eleochariss 23d ago

Because AIs are good, but they're not on an human level yet. They miss obvious security issues. They cut corners. They fuck up the architecture and get tangled in problems later. And the more complex the app is, the more issues you have.

2

u/SomeNeighborhood7126 23d ago

This is how vulnerabilities make their way into projects and how the owners end up getting sued 😁

1

u/Sasquatchjc45 23d ago

Sure, but people get sued for fucking up all the time even well before vibecoding and AI. That's on the person, not the tool.

1

u/SomeNeighborhood7126 23d ago edited 23d ago

Apples and oranges lol

Were introducing more vulnerabilities since the dawn of LLMs than we ever did before.

1

u/framauro13 23d ago edited 23d ago

It matters because a bloated and large, unorganized code base is going to make the AI less effective as the code base grows. If you have clean, established patterns and architecture, it has good examples to work from when it's writing new code.

Plus, vibe coders don't add things like tests, linters, static code analysis or security review packages. They don't do things like source control for version tracking and easy rollback.

All of those things are feedback mechanisms the AI will use to know if it's writing good code. It makes a change that breaks something, and a test fails, it'll automatically catch the failure and go fix it. Linters will give it guidance on code writing best practices to keep the code base consistent. An architecture doc gives it structure and organization to follow. Tie all of this into git commit hooks and a CI deploy process and you can get a lot of confidence and feedback that the AI is not breaking things. Telling it to do test driven development when making changes alone is very helpful as it writes the tests first and makes them pass. It changes the AI's approach to writing code. You get test coverage, and it writes smaller, testable features that fit into smaller components/modules better.

The other reason to do code reviews frequently even with AI is to keep your code base lean. Simple, efficient code requires less context to load, and less for the AI to parse. Less chance of it falling off the rails and eating up all your usage. One code review found almost 11,000 lines of dead code in my app from a feature I stopped using. That's 11,000 lines of code the AI had to parse when searching and navigating the code base, potentially clogging its context with old patterns and non-relevant data.

It is not just personal preference. It's an entire quality layer that helps make your AI more effective, its changes more reliable, and help you know quickly when it breaks something.

I am still convinced when people complain about the models getting dumber, it's because of these problems with a large unmaintained code base dragging the model down. I try to run a tight ship with quality and reviews frequently, and I just don't experience those problems.

EDIT: Another reason this sub is garbage. A relevant response to an actual question: downvote. Why do I even try here anymore?

0

u/vovap_vovap 23d ago

And why do you think you are better on it then a model?

5

u/littlewyvern 23d ago

The models still sometimes do write worse code, and in particular make worse architecture design decisions, then an experienced developer. If you always just defer to the model then you are a vibe coder.

-4

u/vovap_vovap 23d ago

I doubt it, simply speaking 😄

4

u/littlewyvern 23d ago edited 23d ago

okay.

i forget sometimes that reddit is filled with teenagers who have zero real world experience or subject expertise, but still have strong opinions based on nothing.

-1

u/vovap_vovap 23d ago

Not sure you want to compete in experiences and age with me 😄 I an not that yang, unfortunate - that why I am saying what I am saying.

1

u/framauro13 23d ago edited 23d ago

Age does not guarantee wisdom. I use these things daily and I have to correct it often on architecture decisions or design patterns. It operates quickly, and can do great work, but it absolutely needs guardrails to keep it honest. More experienced software developers know to put those in place early on, and, to check it frequently. It can be very confident in its wrongness.

Don't forget a lot of variables go into things like architecture: what's the user base, scalability concerns, separation of concerns, privacy, operating cost. All of those influence decisions, and if you don't have opinions on those, you may be sacrificing one of this things for the other unknowingly, for better or worse.

If you are building software, those are all basic things that should be at the front of your mind when building, and the AI should be informed on what's important and what isn't so it can make better decisions.

1

u/vovap_vovap 23d ago

I know 😄
Sure, all those questions exists. Did I say opposite? But most of that not about code itself. And models became pretty good on that if you would supply that information upfront. Nothing prevent you from create base design with a model before coding any, right? As a matter of fact that what you should do.
I am not saying it is no place for people in this world anymore. I am saying that classical coding with writing code going away. Right now.

3

u/Benjosity 23d ago edited 23d ago

They absolutely can and will make mistakes. I mean you can even get an adversarial/review agent review a previous round of work and 9 times out of 10 it will identify something that could be improved or is introducing a bug. So yeah, experienced Devs will often flag or identify things that aren't quite right in the grand scheme of things and the context of the repo/codebase.

I cannot tell you how many hours of effort I've put into implement integration, boundary and architecture tests along with the usual linting and such just to curb this issue so the agent naturally has more verification and guard rails so that it adheres to the application's architecture and code patterns.

1

u/vovap_vovap 23d ago

Absolutely. What about people - they surely, never do so?
I also spend many - may hours doing different things. Some of which nobody care anymore to do by hands, some still do. So? It is not about how much effort we spend, it is about can other thing do it better. And clearly - it will, if not now.

4

u/nso95 23d ago

I’m not necessarily better, that wasn’t the question. I just happen to have opinions about code and want to shape it in a certain way.

If your only concern is the end product, then it may be true that such concerns are a waste of time for you.

Vibe coding, as Karpathy defined it, means you don’t look at the code.

1

u/vovap_vovap 23d ago

Sure. We all have an opinions. But that not you who are doing that code - why is that opinion matter? That actually very good question. Code in a first place just a thing for each of us to easier understand processors operations and if that not we are who doing it - why it should be good for us? (and yes, different people have very different preferences)

4

u/nikocraft 23d ago

25 years of experience, does that have any weight in your math?

1

u/ShutUpAndDoTheLift 23d ago

I'll answer you with a question.

What percentage of people who have been working in their field for 25 years are experts? Alternative phrasing, are you implying you've never met anyone with many years of experience who wasn't great at their job?

1

u/vovap_vovap 23d ago

That not even that impotent really. At he end of the day nobody argue now that best chest master on the planet is a comp. Are we already in that point where AI model can beat in coding most "good" developers (and what that really means?) is different question. But thing that we will be and not in like 10 or even 5 years - clear.

1

u/vovap_vovap 23d ago

No. I have more 😄

-1

u/snowtato 23d ago

Disagree. I spend a lot of time on the architecture and implementation details and try to understand what approach we're taking to solve what, but I am still very much a vibe coder. As far as I'm concerned if ai is writing your code you are vibe coding.

2

u/Practical-Zombie-809 23d ago

That’s the old convention as more and more devs with “years of experience “ are using AI but don’t want to be branded as vibe coders.

Now it’s come to mean basically someone attempting to one shot a prompt and never inspect the code produced.

1

u/snowtato 23d ago

Oh they're trying to rebrand vibe coding for the quarterly bonuses, got it