logoalt Hacker News

abustamamyesterday at 6:15 AM1 replyview on HN

I think this goes for many different kinds of projects. Take React, for example, or jQuery, or a multitude of other frameworks and libraries. They abstract out a lot of stuff and make it easier to build stuff! But we've also seen that with ease of building also comes ease of slop (I've seen many sloppily coded React code even before LLMs). Then react introduced hooks to hopefully reduce the slop and then somehow it got sloppy in other ways.

That's kinda how I see vibe coding. It's extremely easy to get stuff done but also extremely easy to write slop. Except now 10x more code is being generated thus 10x more slop.

Learning how to get quality robust code is part of the learning curve of AI. It really is an emergent field, changing every day.


Replies

bccdeeyesterday at 5:24 PM

Yeah I think that's an interesting point of comparison. There's definitely a phenomenon where people can take their abstractions for granted and back themselves into corners because they have no deeper understanding of what their framework does under the hood.

The key difference with LLMs is that React was written very intentionally by smart engineers who provided a wealth of documentation to help people who need to peek under the hood of their framwork. If your LLM has written something you don't understand, though, chances are nobody does, and there's nowhere you can turn to.

If (as Peter Naur famously argued) programming is theory building, then an abstraction like a framework lets you borrow someone else's theory. You skip developing an understanding of the underlying code and hope that you'll either never need to touch the underlying code or that, if you do, you can internalize the required theory later, as needed. LLM-generated code has no theory; you either need to supervise it closely enough to impose your own, or treat it as disposable.