26 comments

[ 2.8 ms ] story [ 51.7 ms ] thread
Only if you are blindly allowing the ai to do the entire work.
Software Engineering is often not truly Engineering.

The days of Devs gatekeeping and shitting on good ideas because the syntax of a PR was not perfect are over.

It is, but it may not be "good" engineering
Yeah, more like architecture or management.
Well, my team does what we call vibe engineering.

You do ask hard questions up front, define boundaries, give lots of high level architectural guidance, declare interfaces, and bounds of abstraction... And then you ask the LLM to make it so, and it does. You give it the structure, and it fills in the implementation.

This is engineering, more or less.

"Vibe coding produces code. Engineering produces systems."

By this definition, anyone hired to be a code contributor, and not operating at the architecture level, isn't an engineer.

On the other side of that definition, engineering doesn't even require code, but would be architecture with deep technical understanding that allows you to create the tasks that you hand off to individual coders.

True. But it can be very helpful for learning new things.
"Vibe coding gets you a demo"

I agree with this. Sadly, we're good at pushing working demos as the final product in corporate.

Great! I’ll just take the link to your article and ask Claude to consider this as it develops my project. Thanks!
This is AI written, according to pangram, and also obviously
Vibe coding is not engineering. Neither is copying answers from Stack Overflow.

Who even puts forward such claims?

Just look at the other comments in this thread and you see exactly those claims. We live in entertaining times.
second paragraph

> A model can generate a login system in seconds. It will not ask if emails must be unique. That single missing requirement can collapse the system. LLMs cannot see the category of questions that keep software safe.

really? I am assuming here that the author means that the emails used when registering across users need to be unique. even mediocre models will do that for you.

even more to the point though, if you tell an LLM, hey I want to build this system, let's talk about the architecture, it will ask you all the relevant questions. this can really help with the engineering. sure, there's a rubber ducking aspect to it, but even so. telling an LLM to immediately implement an idea does not lead to great engineering. starting to code yourself has the same problem. doing some brainstorming with an LLM (like in the olden days with humans) is where they help with the engineering part.

Like hell it isnt.

Ive used it to write that terrible one-off powershell or bash script. You know the types: grunt work, boring, and you just need it done.

I can ask my local LLM to make it. Its done as fast as it takes to load up a console and vim. I spend a minute or 2 reviewing, and run in stage.

The tough stuff or API specific proprietary stuff; i still write and maintain. But the drudge work is getting automated.

It was already debated whether "software engineering" is engineering, even before LLMs. Even traditional software engineering looks nothing like other fields - in particular lacking a whole lot of discipline. I believe it is, because it's a process of creating complex artefacts to satisfy business requirements, despite the different medium - that definition still remains true when an LLM is used as one of many tools. But "vibe coding" means the LLM is the only tool. Is that still engineering? Well I guess, did you create an artefact that satisfied business requirements? Seems like you did. There's not a good clear line here.
This is well known
I think this should be titled 'YOLO one-shotting is not engineering' which is a far more accurate description of the article.
(comment deleted)
what’s this precocious urge to define what vibe coding is and isn’t?

who cares?

I'm going to take this a step further. Software development is not engineering.

Software development is more like being a construction worker that uses engineered materials. The engineers, on the other hand, develop the structural components (steel beams, the actual dry wall), an architect designs the whole system, and a contractor manages it.

With vibe coding, you make yourself the contractor and turn agent into the other roles. You can choose to build a building without an architect (you or the agent) and without using engineered components (a proper database for example), which will likely lead to leaks or a full on collapse.

Frankly, this is no different to the franksystems build in midieval times.

> ”Given a simple prompt:

write python to "Add user accounts to a website so people can log in."

The model generated a small, working Flask and SQLite example. That is acceptable for a demo but it did not ask about these five requirements:

Should emails be unique Should accounts be verified Should users reset passwords Should roles exist What is the security model? ”

Write a better prompt? I don’t think any software engineer would ever send that?

It suit rookie but not someone who kown what are rational .
The line I'd draw is accountability: who owns it in prod at 3am. Vibe coding is fine for throwaway and prototypes, and it becomes a problem when the prototype quietly turns into the system and nobody can explain how it works. Don't get me wrong, there is a room for production systems coded completely with AI, it just needs to be more thoughtful in the way it is done.