4 ms·
In my experience, AI really lowered the bar for bad code in the name of delivering faster. I have seen people write highly complex code where all the complexit
by tns_admin 5mo ago
In my experience, AI really lowered the bar for bad code in the name of delivering faster.
I have seen people write highly complex code where all the complexity was not necessary. Think: deep unnecessary branching, pointless error handling and retries which make no sense in our context, hand-coded parsing using regexps, haphazard data flow, functions which seem purely computational but slyly make API calls, pointlessly nullable model fields, verbose doc comments which describe the implementation instead of the contract. I could go on.
The worst part is, even when "prompted" by bad coders, it works in the end. Even has tests (ostensibly mock-ridden, a pet peeve of mine which always falls on deaf ears). So I cannot reject the PR without being an asshole.
I am no luddite. I make heavy use of AI, with all the skills / AGENTS.md / style guides and clear specs, then review every line of code, prefer testing with minimal mocking. I'd even say with right prompting, it can write better low level code than me (eg: anticipating common error conditions).
But my biggest fear about AI is how it enables normies with little to no understanding of CS principles to produce code faster which looks correct but slowly poisons the codebase.
- LPisGood 5mo agoI have a friend, smart guy, who is writing web services and “connecting them together” for a large firm; he has absolutely no programming experience. Talking to him, he told me he couldn’t even reverse a string. He is at once many times more valuable than ever before to his company, but also far more dangerous than ever before.
- CSSer 5mo agoThis is what fascinates me. I have a friend, also a smart guy, who has made it to the point he’s at by being a kind of solutions expert. He’s an IT guy, basically. He’s very technical but has never claimed to be a software engineer. He’s writing software with Claude now. The other day he sent me a screenshot of some other team at his work asking him to shut off something he made that was brutalizing an API of theirs. I asked him if he had ever heard of a 429 or exponential back offs. He said no. How do you meta-prompt for that without knowledge?
- gruzzlymug 5mo agoYou can create an agent in Claude with the role of Technical Lead / Architect and have it review your code. That depends on your agent specification. Just have ChatGPT generate that first. If you get the logs you can feed them in and ask for improvements, that sometimes helps.
- CSSer 5mo agoBut even then, you have to know to do that. It feels like a bit of a turtles all the way down situation, no?
- rizky05 5mo ago[dead]
- zahlman 5mo agoHe's "smart" but he chooses to be in a business where he's presumptively willfully ignorant of the fundamentals (since he surely should be able to learn to reverse a string if he wanted to learn)? He doesn't have a more lucrative opportunity available? Or does he somehow have a skillset that makes him able to "connect web services together" by prompting AIs in ways that other people (including ones who can reverse strings, etc.) couldn't? This form of being "smart" is a bit difficult for me to comprehend, I must admit.
- sublinear 5mo ago> This form of being "smart" is a bit difficult for me to comprehend, I must admit. I strongly agree with this. Suddenly with the mass adoption of LLMs there are so many smart, yet naive people out there willing to toe the line. Why these smart people couldn't bring value in a million different other ways is, of course, left unsaid. They're not even trying to dress up these bullshit stories anymore. In truth it doesn't matter if you believe it. So much buzz is people just talking to themselves out loud.
- LPisGood 5mo agoWell that’s not his primary job. It’s an extra task he’s doing at his job. At a non-tech company with small/horrific engineering components, someone in the business who can do any programming (or vibeing) is indistinguishable from magic.
- anal_reactor 5mo agoWhen I read the discussions about AI making code worse I keep bringing the same argument: people made bad code even before AI. Average coder is barely functioning and that's a fact.
- skywhopper 5mo agoAnd we were safe from them because they couldn’t produce a mountain of code every day. But soon many places will be buried under a planet of unmaintainable code. It’s adding friction and operational cost and often not adding value.
- bigstrat2003 5mo agoPeople could, however, learn to not make bad code. LLMs are incapable of that feat because they do not have any understanding or ability to reason. They are strictly worse than a human.
- tns_admin 5mo ago> people made bad code even before AI. As others have elaborated, the problem is empowering them to ship mountains of bad code; And yeah, many semi-technical M2s or even M1s can't distinguish bad code from good code, or worse bad architecture from good; this is golden time for those who are willing to sacrifice the future for present. Just burnnn'em tokenzzz.
- epolanski 5mo ago> In my experience, AI really lowered the bar for bad code in the name of delivering faster. I would've believed that 6 months ago, but not now. If you have a good codebase with proper rails, hygiene and architecture, AI will produce better code than most engineers out there. People forget that 90% of the field has always been charlatans barely able to implement a fizz buzz or go much beyond trial and error googling. I'll say even more. I'm in the 10%, and it's increasingly clear to me that AI writes in minutes code that's better than mine. Even stellar and respected OSS engineers are nowadays leveraging AI and guiding it less and less everyday beyond giving indications of what kind of data structure they may want for a complex problem or the kind of architecture they are looking for. In any case, I don't like this field anymore, I have no joy from it, way too much work, way too many changes a human can cope with both on product and technological level (not even counting AI and its tooling itself). The interesting parts of thinking an entire afternoon or week experimenting to get that design right disassembling the pros and cons are gone. Even if you want to do that, it's just faster to launch 6/7 worktrees with the different ideas and judge the results. But you don't get as intimate with the problem and the amount of information is way more than you can process.
- lbrito 5mo agoForgive my ignorance, but if the corpus of coding data was always 90% bad, isn't that the same data being used for training LLMs? How are they magically any better than that average?
- epolanski 5mo agoBecause LLMs are not stochastic parrots.
- thoman23 5mo agoProgrammer: "What is this slop that I found in your code?" AI: "I LEARNED IT FROM YOU, DAD!"
- bigstrat2003 5mo agoThey aren't. The guy you're replying to is just hyping them up based on nothing.
- dawnerd 5mo agoSo many fallbacks. So many function_exists. So much pointless type casting. I swear it’s like the system prompt is designed to waste as many tokens as possible.
- gw32 5mo agoIronic: my value as a programmer now comes not from my ability to write code, but my ability to delete the useless fluff that AI wrote.
- zahlman 5mo ago> it works in the end. Even has tests (ostensibly mock-ridden, a pet peeve of mine which always falls on deaf ears). So I cannot reject the PR without being an asshole. This is a social problem that I had thought the industry had solved a long time ago.
- codethief 5mo agoI agree 100%. At work I'm teaching software engineering principles to system administrators and they, too, often use AI without thinking. Then it's on me to provide feedback on the PRs they barely read themselves. Not a lot of fun but slowly but surely they're learning. > The worst part is, even when "prompted" by bad coders, it works in the end. Even has tests (ostensibly mock-ridden, a pet peeve of mine which always falls on deaf ears). So I cannot reject the PR without being an asshole. Yes, you absolutely can. And you should. Try to teach them lessons and what patterns to watch out for, then tell them to put those insights in their CLAUDE.md, so that their agent becomes better, too. You can also tell them to just copy your own CLAUDE.md, like I did: https://github.com/codethief/ENGINEERING_PRINCIPLES.md https://github.com/codethief/ENGINEERING_PRINCIPLES.md Stay strong!