4 ms·
I can't help but feel that people continually underestimate how bad human written code becomes over time. The exception is probably single-person passion projec
by andybak 3mo ago
I can't help but feel that people continually underestimate how bad human written code becomes over time. The exception is probably single-person passion projects or open source projects that maintain quality governance over time.
I strongly suspect most closed source code developed under commercial or internal pressure is pretty awful after a few years of development.
All LLM code has to do is suck less than existing code. And that's presuming the code quality doesn't improve as the models, the harnesses and our ways of working with them improve.
- embedding-shape 3mo agoSucky human-written code is still based on human understanding, which can change over time, be readjusted or solidified. People implement something wrong once, then update their perspective, then in the future does it right. LLMs doesn't have this benefit. You forget to add the correct to the system prompt, and the LLM will repeat the same mistake over and over, and worse than that, their mistakes aren't based on their understanding, it's basically random guesses. Humans, even bad coders, still seem to have some sort of architecture in mind, even if it's spaghetti, whereas LLMs (obviously) don't think more than a few steps, and never about the full scope of what they're contributing too, and on purpose too, because you want the context to be as small as possible when you work with LLMs. With LLMs you need to thread carefully between "What does the LLM need to know?" and "Can I skip passing this to the LLM this time?" while a human you can more or less dump them everything you sit on, and let them shift it through, and they'll mostly make it out OK.
- andybak 3mo ago> their mistakes aren't based on their understanding, it's basically random guesses Whilst I don't claim any true "understanding" as that is a very loaded term that doesn't mean it's just random guesses. Anyone using recent LLM coding agents on a regular basis would probably agree that there's something going on that fits some non-athropomorphizing, non-sentience-assigning definition of "understanding" As for the point about improvement - I think that's an orthogonal issue to the overall code quality. With regard to human codebases - there's plenty of scenarios that negate the improvement of individuals. We're comparing organizations with LLMs - not individuals with LLMs and that makes a significant difference.
- 8note 3mo ago> while a human you can more or less dump them everything you sit on, and let them shift it through, and they'll mostly make it out OK i dont see why software engineers are paid so well, and are so hard to hire? just dump a bunch of requirements on a homeless person and itll just work out
- andybak 3mo agoI have no idea what point you're making here.
- coldtea 3mo agoHe's making the point that the idea that "with a human you can more or less dump them everything you sit on, and let them shift it through, and they'll mostly make it out OK" is wrong. Humans absolutely need lots of training to be able to get this dump and do it right, and even when trained, different humans or humans at different coding tasks can be totally way worse and way better at it.
- coldtea 3mo ago>their mistakes aren't based on their understanding, it's basically random guesses. Not random across their whole training set. Random across related concepts bundled together in the training set. Which is not that dissimilar to human mistakes. A human's mistakes are also based on going from one option in their training and not another, where the two are close together but one is not appropriate and doesn't fully cover the expected result. That's obvious in a typo (you get close to the target word but miss it just so), but also in off by one errors (you're still in the proximity of the correct loop you should have written), all the way to picking the wrong architecture or patter n (you still chose among patterns for the worse fit you've picked, you don't suddenly start using cooking recipes).
- xzenor 3mo agoAnd where do you think the LLM learned coding from? But anyway, let the LLM verify the code to give advice on improvements but don't let it write code unverified. That's my opinion on it anyway.
- gymbeaux 3mo agoIf I have to verify the code then I don't see a point in using it to write more than a single method at a time, and that method should be simple enough that I can take a very quick glance and be able to tell it's correct - something like a method that writes an array to a CSV. I don't have that code memorized, especially in the various languages I regularly work in, but I know it when I see it. Anything more complex than that and I think it would take me as much or more time to truly verify the AI's output than to just write it myself.
- O5vYtytb 3mo agoI've been sent code from vendors that didn't even compile, long before llms were a thing. Most shops that aren't primarily software have really really terrible software.
- gymbeaux 3mo agoTrue. I used to get code that wouldn't compile all the time from Infosys "developers" in India circa 2016. Perhaps now with LLMs they still do basically no work, but at least the code compiles? That being said, I'm not sure that paying for Opus/GPT/Gemini makes sense for a company like Infosys that caters to the dumb C-Levels of large corporations who think "why pay X for U.S. devs when we can pay X/5 for foreign devs?" - such companies are fucked in the long-term anyway. Why would Infosys voluntarily pay gobs of money when such U.S. corporations seem to be content with their output as-is?
- wizzledonker 3mo agoI think the real issue might be that how “good” the code is matters less than being able to form a mental model for what the human who wrote the code was “thinking”. If written by a machine, this contract is broken and we get more confused, even if our traditional methods of evaluating the code come out equal.
- gymbeaux 3mo agoYes, thank you for wording it better. When I read through for example an entire codebase that was ~99% written by AI, it's "inconsistent" in a way that even a shared-by-humans codebase would not be. I think this arises from the AI misunderstanding slightly what is being asked - the AI misunderstands, but can still (at least in some cases) output code that does what it needs to. It may also do other things that it doesn't need to do, or may do the thing in a suboptimal, not-so-maintainable way, but the UI works and that's enough for most non-technical people.
- layer8 3mo agoThat doesn’t help the developers who have high standards.
- andybak 3mo agoYes. But that's not the point I'm addressing.