Live data from Hacker News

When I reject AI code even if it works

vinibrasil.com

131–140 of 184 posts

Re: When I reject AI code even if it works

#131
post #112
post #25

Earlier quoted context omitted.

These "You're right to push back" scenarios are scary for me. I mostly code ML implementations, and some of the errors Claude Code (CC - have only used Opus 4.7) makes are very sneaky, and if you don't have sufficient experience in the area (I see this with people entering ML and writing their implementations with CC), you wouldn't know when to question CC and will let errors or future pitfalls silently slip into you…

What's mind-blowing to me is that people see the "you're right to push back" as anything besides hallucination / self affirmation Dude, the fucking model is great for sure, but there is nothing behind the illusion. It doesn't know if something is right or wrong - simpler or harder to reason about etc It's just generating text, in a coherent manner while following rhetoric processes as a solid attempt at logical think…

Looking on the bright side, where there's AI-generated muck, there will be brass for humans willing to clean it up.

Re: When I reject AI code even if it works

#132
post #112

Earlier quoted context omitted.

What's mind-blowing to me is that people see the "you're right to push back" as anything besides hallucination / self affirmation Dude, the fucking model is great for sure, but there is nothing behind the illusion. It doesn't know if something is right or wrong - simpler or harder to reason about etc It's just generating text, in a coherent manner while following rhetoric processes as a solid attempt at logical think…

How does it correct itself then? I often will push back without giving it the way out and it often does find it

By generating plausible-sounding corrections.

Re: When I reject AI code even if it works

#133
post #89

Earlier quoted context omitted.

I believe grandparent meant "small enough changes that you can understand what the effects are likely to be"

Then it's probably small enough - where you don't need a help of AI, and should do it yourself. My position is that AI could be useful to find the potential places for these changes, but it should be someone who's capable of thinking to implement them.

That might be true for you. For me, I can stay in flow state so long as I'm progressing, even if progressing doesn't involve writing every line by hand. Whereas I easily fall out of flow state as soon as I am frustrated by an inability to remember some particular bit of syntax, or a particular bit of architecture, or a particular code pattern.

For me, AI has been a godsend for productivity because it's great at what I'm bad at. I'm not spending 99% of my day grinding away at C++ code; I'm never writing enough for it to become a world class language expert. I'm jumping between SQL queries, CSS, Java, bezier curves, Python, and shell. If I need to write something in a language I touch infrequently (e.g. Go or Ruby) it's nice to have individual blocks of code generated for me, so that I'm not slowed down by my ignorance on a language's iterator syntax, or whatever.

Re: When I reject AI code even if it works

#134

Titles like these make me always point out the obvious: A working state is the absolute minimum requirement for any code to be merged, isn't it? ...imagine to merge something even though you know that's not working. Besides, this post has nothing specific to code produced by an LLM, and placing AI in the stated reasons feels completely arbitrary, or is rather a fallacy of our times: - I reject [AI] code when I can’t…

Well said. Replace [AI] with "junior dev" or "consultancy contractor" and these assertions have always been thus.

Re: When I reject AI code even if it works

#136

This resonates a lot with me. I often use AI for the plan and let it propose multiple possible implementations, I often have to point out the glaring easier / logical solution. When implementing its often a lot of misses with a few golden hits. The other day it used flex for a table layout while our app uses tables everywhere sigh . Another typical one is that it tends to prefere frontend aggregation and looping of d…

I find Cursor/Composer is really good at mimicking existing code when writing new code. And it will often do so without being asked, but I try to always explicitly mention an existing bit of code for it to read as inspiration (e.g. "use the TPS 2.0 report as a style guide").

Re: When I reject AI code even if it works

#137

If we rephrased this to "When I reject my coworkers code even if it works" and give the same reasons there would be zero dissent. There is this weird idea that seems to come up with AI that any solution must be good and adequate. Software Engineering is all about rejecting code that works for the right code that works.

Yeah, but I think there's a difference here: If your coworker puts up code that you don't understand quickly, in most environments people give it an approval, as withholding approval is meant to indicate that there's a problem with the code. It's very rare that you'd actually force them to wait to merge until they've explained the code to your satisfaction. (There are workplaces where that's the norm, I know -- it te…

What? No… we would jump on a call and talk through it for 5 minutes.

I’m not saying you must see into the soul of every line, but “no idea what I’m looking at, LGTM” misses the point of code review.

I have never been on a team where that’s okay.

Re: When I reject AI code even if it works

#138

LLMs diverge, not converge. They slightly increase entropy if not controlled. While you can have DRY skills and use AI to organize AI (in loops(tm) like Boris does) but eventually if you don’t understand the code, you are taking yourself out of the loop. And not just the job security that’s on the line, it’s the increasing cost for AI to babysit AI. If you or your “loops” (or paperclip, Hermes, gastown, or next in cl…

> They slightly increase entropy if not controlled.

If you use AI at the very start of a project, replace slightly with greatly. AI loves to write abstractions and indirection and add complexity wherever it can. And it does so really, really, really badly. AI is great at writing procedural code, but it's a world class shit-for-brains at architecture. It has no taste, no restraint, no appreciation of simplicity.

And it wouldn't be so bad, except it's ALSO a complete toaster when it comes to naming things.

Re: When I reject AI code even if it works

#139
post #40

Coding with AI eventually comes down to two paths, I've realized. One is using AI exclusively for everything. The other is not using it at all. There is almost no middle ground. The reason is that as the complexity and depth of the problem increase, the code AI generates increasingly follows enterprise level patterns. The deeper the meaning of what I input, the more AI tends to produce code that goes beyond my own ar…

The middle ground is to use it as a power tool: give me an example of this, fix my types, do this fussy bit, find this in the docs, without ever letting go of control.

When using power tools you make all the measurements and decisions, you just hammer screw drill and cut faster. You cannot power tool your way to building a things that you don’t know how to build.

The other interesting thing about this is it works with smaller models and uses a fraction of the compute.

Post reply on HN