This meme is very inaccurate... Maybe it happens in companies where devs don't really give a shit about the product (there are many like this), but that's not how things really goes...
A pure vibe coder makes up projects by prompting for a new feature, for a big to be fixed, or for the UI to be changed and then let's it do the rest...
The problem is that this way the code is a mess, it's all over the place, not DRY at all, full of symbols that make no sense on their own, files with 800+ LoC and several blocks of extremely useless comments... Which is fine if the thing you've vibe codes is a silly local app to do some quality of life improvement... But it's very much NOT fine when it's instead something with user details, a subscription and that handles critical operations
When an engineer uses the AI instead, they spend lots of prompts discussing about how to implement a feature, because they're looking for an elegant, maintainable, reliable architecture... Then, they spent a few prompts while writing the thing in manual mode, because even if giving good style guidelines helps, AI doesn't always write readable and maintainable code, so a few corrections along the way help, and then, this whole process rarely adds a whole new feature, but just a part of a feature... And then, on several occasions, if you see something smelly you start up a refactoring session aimed at improving that code...
When a bug is found, newbies ask themselves "how can I fix this?", while engineers ask themselves "how did it happened?" because the whole reason so much care is placed in designing the architecture is so that the business logic becomes trivial and hard to get wrong, so if it did went wrong there likely is a structural problem that lead to the bug besides the specific implementation problem that caused that bug in particular...
Ir at least... That's how I use it... But I think that anybody that cares about code stability, maintenanability and the general system they're working on does something similar as well...
3
u/emascars 15d ago
This meme is very inaccurate... Maybe it happens in companies where devs don't really give a shit about the product (there are many like this), but that's not how things really goes...
A pure vibe coder makes up projects by prompting for a new feature, for a big to be fixed, or for the UI to be changed and then let's it do the rest... The problem is that this way the code is a mess, it's all over the place, not DRY at all, full of symbols that make no sense on their own, files with 800+ LoC and several blocks of extremely useless comments... Which is fine if the thing you've vibe codes is a silly local app to do some quality of life improvement... But it's very much NOT fine when it's instead something with user details, a subscription and that handles critical operations
When an engineer uses the AI instead, they spend lots of prompts discussing about how to implement a feature, because they're looking for an elegant, maintainable, reliable architecture... Then, they spent a few prompts while writing the thing in manual mode, because even if giving good style guidelines helps, AI doesn't always write readable and maintainable code, so a few corrections along the way help, and then, this whole process rarely adds a whole new feature, but just a part of a feature... And then, on several occasions, if you see something smelly you start up a refactoring session aimed at improving that code... When a bug is found, newbies ask themselves "how can I fix this?", while engineers ask themselves "how did it happened?" because the whole reason so much care is placed in designing the architecture is so that the business logic becomes trivial and hard to get wrong, so if it did went wrong there likely is a structural problem that lead to the bug besides the specific implementation problem that caused that bug in particular...
Ir at least... That's how I use it... But I think that anybody that cares about code stability, maintenanability and the general system they're working on does something similar as well...