upvote
> Assuming that you truly understand and own every line of the LLM's output, the model is almost working like a macro.

I don’t have to review the output of a macro invocation once I’ve convinced myself that the macro’s definition is correct, similar to how I don’t have to review a compiler’s output. That’s the difference we are concerned with here.

For comparison, consider the statement “Assuming that you truly understand and own every byte of the compiler's output, […]”. The point of a compiler is that we can depend on it without having to impose such an assumption.

reply
Great points, but I'd wager step 3 is not being maintained. I definitely do not read every line produced by the LLM. I read the critical parts for critical software, but that's probably not even 5% given the sheer number of lines written
reply
I agree it can feel like working with a team sometimes, but I wouldn't liken it to a macro. That seems much too idealized.
reply
It comes up a lot, it's almost not worth arguing as it detracts.

I might take on to saying that compilers are more deterministic than vibe coding, that should stop the vibecoders from arguing about how technically 1+1 is not deterministic because of UB in C or whatever.

That said, they'll probably start debating that something is either deterministic or it isn't, and we can answer that they couldn't be more wrong, and they'll answer that wrong is an absolute state and not subject to gradation, , and we can answer that of course it's relative, it's wrong to say a tomato is a vegetable, but it's more wrong to say it's a suspension bridge, and then we can finally go to bed because the online arguments have all been solved, the end, it's done.

reply
You can vibe code without knowing what a function or a variable is. What is an int vs a bool vs a string. You can absolutely build something useful with today's technology without knowing how any of it works underneath. If you know how it works underneath you'll have a leg up on someone who doesn't, but what's the opportunity cost of knowing how that all works underneath. What are you missing out on and not learning while you're learning and reasoning about the aforementioned 1 & 3?
reply
You can build lots of interesting things now without understanding the code, but the maximum complexity of what you build will always be defined by what the latest model and harnesses are capable of without architectural guidance.
reply
If whatever you built is good enough for you, then the model was ipso facto sufficient. This has been true for many small projects since the first coding agents came out over a year ago.
reply
> If whatever you built is good enough for you, then the model was ipso facto sufficient

You literally don't know what it does, though. And it's not a given that QA testing the program will lead to an answer before it leads to a bad outcome. There's an understanding, when we use software we can't read, that some humans looked at it and talked to other humans about how it works. Maybe got calls from customers about bugs, made workarounds.

If I'm just vibecoding stuff for me, and I don't understand any of it, I would not feel safe running it on my computer. And I'm not convinced a lot of people are even going to do this, because non-technical users seem to intuitively understand they are rolling dice in some way.

reply
> You can vibe code without knowing what a function or a variable is

You certainly can, but you can't tell people anything about how it works, if it's safe, whether it spies on people, when it needs to be upgraded, etc. Is there going to be a market for vibe coders who sell services they don't understand? I don't know.

For documenting business logic, code is highly specific and dependable even with non-deterministic compilers. We can look at code and say "Yes, we can connect this to our Stripe account, because we have reviewed what it actually does." We can mock services and test that it works. We can do all of that without reading build output

The same, obviously, cannot be said of LLM prompts. And due to the flaws (and strengths!) of Natural Language, I'm not sure that will change. If someone told me their vibe coded app was safe because they politely asked it to be, I obviously wouldn't use their service. If they told me they asked it to write tests and do mocks, I wouldn't know if it actually did. A pure vibecoder can, at best, reread the prompt they gave, and maybe ask the LLM if there are vulnerabilities, hoping that it finds something.

Maybe we will get to a point where people are feeding 80 page specifications to LLMs as the input, but I'm not sure a person who is capable of writing that level of detail but incapable of learning to read code really exists. I don't think it will get that far. I think people will keep their prompts short and just roll the dice, QA testing.

reply