Hacker News
I Read the Clankers' Code
JohnMakin
|next
[-]
Why did we ever? Because it made it more feasible to maintain and reduced bugs. Well structured, designed code bases are simply far easier to work with.
I'm sure we've all had greenfield AI projects where we just let it go nuts doing whatever it wants, then all of a sudden you need what should be a stupid easy change, and it just falls over completely or becomes borderline impossible. Each change needs 5+ other changes until you basically can't touch the thing. The difference is, AI will keep trying until you run out of money or you give up, but this way of programming is bad and we labeled it bad for a reason, and I don't know why as an industry we're thinking it's no longer important.
paimapi
|root
|parent
[-]
I think about test-driven development and how good versions of that were socialized norms, processes and checks that happened prior to outputting code. Just telling an LLM to do TDD just creates a hellish CI latency tail with too many tests - you have to have taste and discernment there and none of that's built-in. Context rot is still too much of an issue especially if you're on a distributed MS model. I've had a little luck with whole system ADRs helping (with a lot of skills + active prompting) but the context still degrades over longer sessions or the further into a sprint you get.
I've seen some preliminary 'innovations' like this with LLM-driven shared wikis but it's all very hand-wavey and not standardized across the industry. It really feels like people are just waiting for these frontier labs to fully solve code quality (my gut says that the scale of improvement is logarithmic, not exponential, at least not until there's actual revolutionary research on LLM outputs at the scale of something like tensors) or they hope that some outfit with a fully vibe-coded website that promises to solve all of these things will solve all of these things.
glitchc
|next
|previous
[-]
__abc
|root
|parent
|next
[-]
I've built around Claude (althought the infra is LLM agnostic) and the code it produces is okay. You can invest and get better. However, that was the same BEFORE llm generated code.
I'm finding that my investment motions, governance motions are more about medium change, not much else.
Standardards, guidelines, et al are now stored in .md vs. wiki, docs, etc.
Code reviews are still code reviews.
Release planning is still releaes planning.
All the same motions. JUST LOTS MORE OF THEM.
But we've scaled quality throughput before. It's just with a new IDE.
lioeters
|root
|parent
|previous
[-]
More like a genius junior developer who's been home-schooled by the web for better and worse. Hard-working, often impressive, but missing some common sense, occasionally spouts nonsense, and needs guidance to make sure they don't go off the rails.
voidnullvalue
|next
|previous
[-]
The same argument cuts both ways. I have seen some horrid code (that I have had to fix) made by humans.
__abc
|next
|previous
[-]
Are other orgs not relying on the fundamentals of software engineering and adapting to this form of generated code?
PS: I don't allow one-shots. Same decomposition and quality assurance motions. The timeline has just shrunk, not the steps, nor the focus. The medium for documenting and governamce have shifted, same strategies and problems.
Am I really on an island with this?
titzer
|next
|previous
[-]
Clankers can do things right when they are given clear instructions and good context. They go bad when they are given agency and no oversight. What I have seen repeatedly is that even small amounts of correction to turn a refactoring this way or that way or make a better modularity decision, or to enforce a boundary that wasn't written down, helps a lot. Clankers don't know about your implicit information hiding going on. They don't know you've been working for years to get rid of a bad code smell that spread faster than you could stamp it out, or that you've been working on the same codebase for 10+ years and only now understand how you'd like to structure it.
Some people use the clanker to get something out of nothing. As engineers, we should be using them to engineer the heck out of things that we didn't have human effort available for. Things like refactoring, testing, cleaning up documentation, doing optimizations, simplifying, introducing proper interfaces, removing improper interfaces, etc.
[1] The wide-arithmetic proposal, which added 4 instructions with very well-specified behavior.
wuliwong
|next
|previous
[-]
>Shit, I forgot to add you're a distinguished principal 10x engineermaxxer who's unfailable, make no mistakes and double-check your shit.
I know he's being funny and explains later but obviously that's not enough. There's lots of guardrails you can put on code delivery pipelines that help. In my experience the code produces good results way higher than 95%. 95% would be horrific.
exitb
|next
|previous
[-]
mschuster91
|next
|previous
[-]
This is why I left IT and went for an EE degree program. I actually enjoy helping people to grow, I always did. (I've had a colorful career involving a lot of different industries, so chances are high I might have picked up a few things here and there)
But when there are no juniors any more, only clankers, what the fuck is even my purpose other than making money for some American slave drivers uhhh shareholders.
fishtoaster
|previous
[-]
But code craft not the job. The job is to produce business value. Code craft used to aid that, but now it's an impediment.
Your job is no longer to produce code - it's to build systems that produce code. Tests and CI and Linters and custom lint rules and adversarial review and agent docs and automations and the next dozen tools we come up with as part of figuring out best practices around all of this. If you're getting woken up by agent-written code, the fix isn't to review every line of code - the fix is to improve your system so that class of error doesn't get written.
It's understandable if you don't want to do that work. It's almost entirely different from the work of reading and writing code. But if you don't, you're delivering less business value than someone who will. They don't employ hand woodworkers at Ikea.
batshit_beaver
|root
|parent
|next
[-]
titzer
|root
|parent
|next
|previous
[-]
bigstrat2003
|root
|parent
|previous
[-]
That is false. Code craft is still very much an aid to business value. If you just turn an LLM loose and don't review its work, you get a buggy mess over time. If you use an LLM, you must review and understand each line of code or you are sabotaging the quality of your work.