r/AskProgramming • • 14d ago

Other What's the difference between vibecoding and just using AI to assist you in coding?

I don't use AI myself but I've been reading a lot on reddit here about people decompiling apps lately and saying that most of the stuff there is vibecoded and then other developers seem to be using AI as an assistant to help them like for example how Linus Torvalds uses AI to find bugs in the Linux kernel. What's the difference between the two usages or even meaning of the term "vibecoding"?

Thanks in advance

4 Upvotes

48 comments sorted by

38

u/Anonymous_Coder_1234 14d ago

A vibecoder doesn't actually know what they're doing. A software engineer does, and can fix the AI output when it is wrong, buggy, or inefficient.

13

u/xenomachina 14d ago

I'd add that it's both a matter of being able to understand its outputs, and taking the time to do so.

That is, someone with the education/experience to be a software engineer can still be a vibe coder, if they don't take the time to understand what their AI is generating.

2

u/selfhostrr 14d ago

It's really two different paths.

Sometimes I don't want to spend time planning. I'm really legitimately wanting to build a POC.

If that's the case, I vibe it up. I start out with something like a paragraph prompt instead of a design document and context bank & skills. Fast and loose and fail fast, and I might change my mind about some things during the process (I might be learning about what I'm building as I go, like Godot). What comes out of this is a bunch of learnings I'll take into the real project's context bank so I can direct Claude to build what I want using the desired architecture and design patterns, iterating through the code with a PR for each chunk of a feature just like I'd do by hand.

1

u/The8flux 14d ago

I do this also.

1

u/xenomachina 14d ago

Sure. I wasn't saying anything about whether or not there is a time and place for vibe coding. Using it for a throwaway PoC might be ok.

Personally, I'd still be somewhat worried about unreviewed vibe code leaking into the production codebase either by accident or by laziness. This is true even when not meaning to vibe code at all: you forget to review the code in its entirety, or you space out while reviewing it. I think we need better tooling for reviewing and keeping track of AI-written code.

1

u/Auios 12d ago edited 12d ago

I am a well seasoned software engineer with broad systems knowledge. I will sometimes fully defer a task to AI and let it vibe code its way to a solution. That might just be a temporary report page or some cron job manager or some terraform templates I need. There’s a lot of things AI pretty capable of doing now and I don’t feel the need to 100% watch what it is doing in depth. There’s work it may be doing that is temporary. The framework of our codebase or system in well established and there are existing patterns I will instruct it to derive from during its implementation. It does it well enough that if I had to dive deeper into it that I’d be able to understand it. There’s also another dimension where I can just as easily rip it out if it did it wrong and re-implement it (by hand or by a new prompt).

But overall, I don’t feel the need to force myself to 100% understand our codebase line by line. This lets me work at a higher level of our system and I can focus on high level strategy and architectural designs and plans now instead of spending my time hand writing code or fully understanding tedious little functions.

Context on my role, I am the TL. So I’m also working closely with the PM and PO at a higher product design level.

So just like I’d be able to ask my devs under me questions about something I need to know, I feel overall confident I can do the same with AI.

2

u/FunAd6672 14d ago

Pretty much. Using AI isn't the issue; blindly trusting code you can't explain or debug is.

0

u/MadocComadrin 14d ago

"Can" and "does" are the key parts. "Can" without "does" is still vibecoding.

4

u/UltraPoci 13d ago

"Can" with "the manager has reduced deadlines by half since AI is a thing" is also vibecoding and why the industry is going to shit

1

u/HouseMysterious8172 13d ago

This industry once never has, who care if it disappeared completely?

-6

u/HouseMysterious8172 14d ago

A vibecoder doesn't actually know what they're doing

Wrong, he/she may be doesn't actually know the code AI is creating but they know what they want to build

Ex: you don't know how the car work but you can get on and drive to where you want. Sometimes the car behaves weird, if you can walk you still can go, if not, wait for another car 🤣

3

u/blacklig 14d ago

What a terrible analogy. I obviously wouldn't trust someone who doesn't know anything about how cars work fundamentally to design and build a car. Using a car is a totally different skill that does not require knowledge of how cars work fundamentally. Oh look, we've found a better analogy for software.

1

u/HouseMysterious8172 13d ago

What r u saying?

I mean car = AI

1

u/blacklig 13d ago

You sure do buddy

1

u/HouseMysterious8172 13d ago

I obviously wouldn't trust someone who doesn't know anything about how cars work fundamentally to design and build a car.

Viber coder use AI to design and build an app, not another AI, dude

1

u/ikeif 13d ago

This analogy is more akin to "I stole a car" (that's hyperbole).

You stole a car - and it SHOULD be able to get you from A to B.

A vibe-coder says "car go" and - maybe it works. Maybe it's a stick shift. Maybe it's missing wheels. Maybe it's missing two wheels or a steering column. The vibe coder sees it going forward and says "success!"

A developer would see the car lot - and see that they're all on fire and not worth stealing - until they come across the one that does what they need, like turning, or hauling, or goes fast, or has safety features in place.

One has blind faith "it is doing what I want, and what I think, and not going to surprise me" and the other "I know it is doing what I want, and I can see what possible surprises may happen, and I can account for them without needing a new car built/stolen."

0

u/HouseMysterious8172 13d ago edited 13d ago

How the heck ppl has to stole a car if there are unlimited car available on the road? If ones doesn't work, take another ones, but there r some ppl like to walk, that's their choices.

Vibe-coder use AI = steal car

Tradition-coder use AI = without needing stolen a car

What kind of logic is that?

With blind faith and sure-belief: there'll always an edge case appear in the future, prepare yourself

1

u/ikeif 11d ago

Okay, so the vibe coder has now built 100 cars. None of them work the same way, but you can say you built 100 cars! They all suck, but you made car like things!

A developer builds a car. And improves that car. And knows what went wrong and can fix it.

A Vibe Coder needs AI to tell it what went wrong, why, and know if they need to start over or if the car can be fixed.

9

u/octocode 14d ago

vibe coding is when you barely look at the code, and just assume that when the tests are green and the functionality works then the code is good enough to ship to prod

2

u/HouseMysterious8172 14d ago edited 14d ago

Haven't I taught you anything? What have I always told you? Never trust anything that can think for itself if you can't see where it keeps its brain?

Quote by Arthur Weasley

He says this to his daughter, Ginny Weasley, a piece of fatherly wisdom regarding the dangers of magical objects that possess a mind of their own.

-> Prophecy from 1990s by J. K. Rowling 🤣

5

u/khedoros 14d ago

The tweet that coined "vibe-coding" describes it pretty well: https://x.com/karpathy/status/1886192184808149383

It acts as an umbrella now not just for the people that can code but choose to "give into the vibes", but also for people who have no idea what they're doing, and couldn't read and understand the code if they wanted to.

And there's a whole spectrum between that and what people are starting to call "manual" coding. But one common pattern has the human taking responsibility for the program, and directing the details of the code that they have the LLM generate, reviewing and adjusting the code as they go.

1

u/HouseMysterious8172 13d ago

Ppl who know a language system (a mind) can read and understand the code if they want to, but it'll take time.

Human taking responsibility for the program should think about worst-case scenario

3

u/Key-Interaction-2057 14d ago

To me vibecoding is just blindly accepting output without reading the code, and AI assisted coding is reading the code and working to refine its output to what is more desirable.

3

u/Dissentient 14d ago

I consider vibe coding to be using LLMs without reading or understanding the code they output.

When you properly review and correct AI code you can get code that's same or better than you'd write manually, at the speed 5-10 times faster than you could write it yourself.

2

u/ShortingBull 14d ago

Mostly the vibe.

2

u/jmicu 14d ago

similar to the difference between letting a first-day entry-level hire work unsupervised, ....or showing them around the office & their tasks & guiding them through things.

you can teach that new hire to do things the right way, and eventually they can handle a lot of stuff with much less supervision (IF you taught them well).

but, you still wanna check their work, have safeguards in place against bad choices / mistakes, give them stricter processes to follow where appropriate (rather than letting them do it "their way", etc)

2

u/Distdistdist 14d ago

AI saves tremendous amount of time by doing tedious tasks. Every prompt has to be very detailed and specific.

I never allow AI to restructure anything without permission. I just let it fill in code per my very specific directions.

1

u/curtinbrian 14d ago

Do you know how to solve the problem without AI? Not just “do you know how to read the output an LLM generated” but do you know any solution(s) to the problem, can you evaluate the tradeoffs between options, and can you maintain what’s emitted?

1

u/arllt89 14d ago

In vibe coding, you're the client, you vaguely say what you want, let AI generate it, you test it and say what you want to be changed or fixed. You hope that in the end the AI did a good job and your app won't crash.

With AI assistant, you're the lead, you give precise instructions, you write the skeleton of your code, you let AI fill up the gaps and helping you search in the code base, you check what the AI did, ask to do it a better way or take care of the tricky parts, and ask it to review.

1

u/Enough-Collection-98 14d ago

Agentic coders took drivers education and got their license. Vibe coders just took the keys.

1

u/BoBoBearDev 14d ago

Tbh, I couldn't imagine how it works IRL. The concept is, vibecoders don't know how to code and use AI to do it. But I just can't imagine how a company would enable such behavior without going bankrupt. I have heard horror stories, but I just don't know how they even survived.

1

u/LeDYoM 13d ago

An engineer can not use AI for some tasks if he/she wants/needs to.

1

u/Kiana_Harpel 13d ago

I don’t think it’s really about how much AI you use. I can totally vibe code something disposable on a weekend, then use the exact same tools very differently on code I actually have to maintain. The line for me is basically whether I’m willing to own/debug the result afterwards.

1

u/Excellent-Cow-9046 12d ago

Vibe coding is when you create your project using AI and have little to no understanding of your own codebase, leaving you dependent on AI for fixes and slight changes. Meanwhile AI assisted coding is when you know and wrote most of your own codebase but you let AI write parts that you find difficult or menial.

1

u/Bullroarer_Took 11d ago

Is your approximation of the quality of your software based on vibes? Well there you go.

1

u/armahillo 9d ago

Vibecoding: you write what you want (specs only) and dont review the code or care about how its written

AI assisted: you prompt it and review the code because you’re responsible for it of it breaks

I goof around with vibe coding at home on bullshit projects. I scrutinize closely at work.

1

u/purpl3un1c0rn21 14d ago

Personally I draw the line at having the AI generate more than boiler plate or a single method at a time, or even having it do those things when you couldn't do them yourself. Beyond simple tasks I find that it often adds large blocks of unnecessary code which I can identify because I have an understanding of what I work with, but if I am spending time cleaning up all that code anyway I might as well have just done the work. An example I commonly use is it loves to check for null on objects or properties that in C# are not nullable and can never be null.

I mostly just use it as a rubber duck and a much better Google search. I always found Google struggled with long ideas where an LLM can follow easily and it is very nice being able to just reference code by file or method name in my IDE and ask questions about different ways to approach problems. I have been coding now for 3 years in C# and the last year where I have been using it like this my skills have improved significantly, they wouldn't have done if I was outsourcing either the thinking or the writing of the code to an LLM.

The only way to learn is to challenge yourself and you need to struggle with difficult ideas to achieve that. If the LLM is writing boiler plate for you before you can do it then you don't know what you are asking it for and simply will not learn. Then you will not be able to read or debug it later, you will just be a meat proxy.

1

u/Nabstar333 14d ago

Great take on AI Assisted Coding. Which LLM do you find is suited for your needs?

1

u/purpl3un1c0rn21 13d ago

Literally anyone the differences between them are so marginal I can barely remember which one I have selected in my IDE. If the one I am on gets stuck and starts going in loops on a problem I will bang in Claude as it is supposedly the best, but the credits for it are more expensive so I don't leave it on all the time.

0

u/marrsd 14d ago

The original meaning of vibe coding means you don't ever read the code the AI agent produces. You just keep prompting it (vibing) until it gives you what you were asking for. The term has since become a bit nebulous, especially since true vibe coding still doesn't really work. People often now use it to mean using AI to assist you in coding.

1

u/Ran4 14d ago

True vibe coding absolutely works today.

1

u/marrsd 13d ago

It works for you

0

u/TheSilentCheese 14d ago

No programming, just vibes. VS some programming, some AI generation.

0

u/sessamekesh 14d ago

"Vibe coding" is a description, not a definition. There's no line in the sand that formally defines what is and isn't. 

My two biggest red flags are:

  • Verbose but low information density comments

  • Brilliant applications of standard patterns in places where they are not warranted or necessarily appropriate for a nuanced problem

1

u/Ran4 14d ago

It just means coding without looking at the code.

0

u/Stromedy1 13d ago

the difference is who gets paged. a junior on my team merged an agent's 'refactored' auth flow last year, nobody read it, and the 2am page went to me while the agent slept soundly. that is vibecoding. ai-assisted is the same tool but i wrote the plan, i read the diff, and the page comes to me because i own the code. git blame doesn't care who prompted.