Remix.run Logo
▲ dylanhouli 4 hours ago

Here I am still unable to stop myself from doing line-by-line code review. I notice too many things (redundant code, duplicate code, overly complex architecture, etc.) by doing it that I feel it would be careless not to.

▲stillpointlab 4 hours ago | parent | next [-]

My advice is to start a totally vibe coded side project. You will never gain confidence until you experiment, find the failure cases, learn to deal with them, etc.

Choose something you want to do but don't really care that much about. Be more ambitious than you think you could be, have a high bar on the outcome but purposefully choose to completely ignore the actual code. Make it write tests, dashboards, monitoring - whatever you need other than code to feel confident.

Now is the cheapest time it will ever be to experiment.

▲72deluxe 36 minutes ago | parent | next [-]

I did this, but now I have a useful piece of software that I have zero clue regarding how it works. My only chance of "maintaining" it is giving it to another LLM to explain.

I am happy that I have a useful tool, but it simply isn't maintainable without a machine or me investing much time to understand it.

I don't see how the former is a sensible future for humanity. I am happy to say I won't be releasing this software I've created (I will find it useful myself), but deferring all understanding to a black box seems a poor future for brain activity.

▲xboxnolifes 29 minutes ago | parent | prev | next [-]

I've done this, and always get subpar results. I cant get the LLM to make the minor tweaks I want to see, and now I have no mental model of the code to make the fix myself. Sometimes they arent minor things.

▲xyzsparetimexyz 2 hours ago | parent | prev | next [-]

Ridiculous suggestion. If someone already takes issue with ai generated code (as well they should, it often is _still_ pretty bad), getting them to write more of it is useless.

Additionally, do you really believe that 'Now is the cheapest time it will ever be to experiment'? Why so? Because of token prices? Not a good omen if so.

▲stillpointlab an hour ago | parent [-]

I'm not sure what is ridiculous about suggesting people take a stance of openness and curiousness when confronted with new situations. I genuinely don't understand what people have to lose by building some throw-away experiments without reading the code.

I do believe the subsidies offered on Pro accounts driven by the current competition make access to the best coding models and harnesses as cheap as they will ever be.

▲xyzsparetimexyz an hour ago | parent [-]

>I do believe the subsidies offered on Pro accounts driven by the current competition make access to the best coding models and harnesses as cheap as they will ever be.

God I hope you're right. Maybe then this era of vibe slopping out photoshop clones that'll be abandoned within a week (while advertising them all over social media) will come to a close.

▲mattm 2 hours ago | parent | prev | next [-]

I have done this. It's exactly the reason I went back to doing code review. I don't look at the code with a fine toothed comb, but it does help me catch bad patterns early.

▲stillpointlab an hour ago | parent [-]

I guess the question is: did the project you worked on fail? As in, you couldn't achieve the outcome you were trying to achieve? Or at some point did you sneak a look at the code and recoil in revulsion? What was the failure state?

Was this with the latest models (Fable/Opus 5.5 or equivalent) or an older model in a 3rd party harness?

Are you in the camp of: "if at first you don't succeed, never ever try again".

▲hn_acct-1029393 an hour ago | parent [-]

Not parent, but project I was involved in was shipped very quickly, had many bugs, and burned a lot of customer trust.

This was a few months ago, so obviously not with the latest models, but:

1. That argument is evergreen. You will always be able to make it, and it doesn’t really add much. It is impossible to refute.

2. Gone back to - when writing code - having a strict mental modal and good control over the codebase. A mix of hand coding (to establish the mental modal) and prompting (for boilerplate). It’s not quite as fast, but the quality is much higher when you mix in using LLMs in quality enhancing capacities (review, debug, etc). This is with the latest model. Hands off still atrophies over time (even the boilerplate), and in some cases is very inefficient (as in wasting my time, nothing to be said about tokens).

> Are you in the camp of: "if at first you don't succeed, never ever try again".

This is great in some domains, but “don’t make the same mistake twice” is much more important in mine. I don’t have the luxury to ship low quality, especially when LLMs make even higher quality so much easier.

▲stillpointlab 36 minutes ago | parent [-]

I think people are moving the goal post here. My post suggested starting a vibe coded side project, one where failure is low stakes and has no consequences. You are talking about shipping a production system to customers.

If you cannot tolerate failure then don't experiment. Don't mix the two.

▲troupo 3 hours ago | parent | prev [-]

[flagged]

▲dang 3 hours ago | parent | next [-]

Please don't do this here.

(You're welcome to make your substantive points thoughtfully, of course.)

https://news.ycombinator.com/newsguidelines.html

▲xyzsparetimexyz 2 hours ago | parent [-]

Please don't do this whole 'Please don't do this here.' thing here.

Their 'WAT' was self explanatory.

▲stillpointlab 3 hours ago | parent | prev | next [-]

Issue: I am still unable to stop myself from doing line-by-line code review

Response: Try experimenting in a low stakes environment

From Google: "Exposure therapy is a psychological treatment designed to help people confront their fears, break cycles of avoidance, and reduce anxiety."

▲g-b-r 3 hours ago | parent | next [-]

The thing is that's not an issue in the slightest, it doesn't need therapy!!

It's those who don't do it who'd need a talk..!

▲stillpointlab 2 hours ago | parent | next [-]

I think that depends on where you work. If your company demands that all code is reviewed then anyone who doesn't do that should be spoken to.

However, I suspect there are teams that are making different choices. In the most obvious example, I can do whatever I want on my personal projects (I hope you agree). And if I started a business and hire in programmers, I have some expectation on defining the culture, making hiring decisions based on my preferences, etc.

Whether or not such teams succeed will be a matter of fact, which I do not believe has been decided at this time.

▲9dev 2 hours ago | parent | prev [-]

I hate to say this, but you're now living in a world where the value of artisanal code is rapidly approaching zero. If you still cling to beautifully written code as your core qualification, you're having a rough future ahead of you.

And I say this with the bitterness of someone having lost a big part of what made me enjoy this line of work.

▲g-b-r an hour ago | parent [-]

That's not wrong right now, we'll see in the future.

But I have no interest in working as a vibecoder, there are many other jobs that I'd enjoy more

▲troupo 3 hours ago | parent | prev [-]

No. The issue is: "I notice too many things (redundant code, duplicate code, overly complex architecture, etc.) during review"

How does "low-stakes environment" fix that?

▲stillpointlab 2 hours ago | parent | next [-]

Because one may learn that those fears are overblown. Or they may learn that they cannot build any kind of software without reviewing every line of code.

The person is saying "I am still unable to stop" and that is most likely because they feel a sense of responsibility. If they choose a project where there is no responsibility, where it literally doesn't matter if the project fails, they may feel able to stop. And if they manage to make that project work, if they can succeed, then they will build up confidence.

It seems better to be able to work both on projects where they review all code as well as projects where they do not review any code. In fact, keeping their job in the long term may (or may not) require having both skills.

▲daveguy an hour ago | parent [-]

yolo'ing a code complexity generator doesn't make it suddenly stop being a code complexity generator.

▲jazzyjackson 2 hours ago | parent | prev [-]

I guess they’re just saying “you’re holding it wrong”

Last time I chose to vibe code, I did it in a language I didn’t know so that I wasn’t tempted to try and comprehend the choices the robot made. I ended up with the application I wanted.

Caveat: it was code I would never have to touch again, I ran a script to generate the 140,000 static html pages that the rails app provided and then just uploaded them all to R2 buckets (million reads per month on free tier)

▲BobbyJo 3 hours ago | parent | prev [-]

I think the intended takeaway is to learn to solve those problems without line by line review. Start by being hands off on a low stakes project, and see how the model fails. Then, come up with, and try, solutions that aren't you doing archeology.

▲troupo 3 hours ago | parent [-]

This somehow assumes that the person above doesn't already do all the magic the people say work 100% of the time, and finds these issues. How does running into literally the same issues in a low-stakes project help?

▲BobbyJo 2 hours ago | parent [-]

I think it's a good assumption. Their comment implies they aren't harnessing the coding agent very strongly given the failure modes they mention.

Do you think it's better to experiment with high stakes projects? Do you think it'll be easier to avoid defaulting to line by line auditing of a project that is high stakes?

▲benoau 4 hours ago | parent | prev | next [-]

This is why I like GitHub Copilot's autocompletion, I'm right there guiding and policing the code as it appears.

▲ 3 hours ago | parent | prev | next [-]
[deleted]
▲g-b-r 4 hours ago | parent | prev | next [-]

You're unable to stop being responsible? Tragic!

▲spiderice 3 hours ago | parent [-]

Is it responsible to move slowly when your competitors are moving quickly? Depends on how your competitors perform. If they perform well, then your "responsibility" suddenly becomes your extinction.

▲tripleee 3 hours ago | parent | next [-]

Apple's iPhone Duo seems like it'll be a huge hit.. how many years after the competitors?

They've built an entire strategy around moving slow and doing it better

▲g-b-r 3 hours ago | parent | prev | next [-]

If they move quickly by shipping crap they're just running towards a wall, the responsible thing is to not follow them.

▲xyzsparetimexyz 2 hours ago | parent | prev [-]

fomo nonsense. not everyone has to jump off the cliff just because you are.

▲dyauspitr 4 hours ago | parent | prev [-]

No one cares about good code. It’s a means to an end. Your code doesn’t need to look pretty or be well documented or any of that stuff anymore because people are not looking at it. The only thing people care about is performant and error free code.

▲tripleee 4 hours ago | parent | next [-]

People saying this are telling on themselves that they have no idea what quality code is. It's not about looking pretty or nice variable names.

Code quality matters to AI just as much as it did to people

▲bbctr1 4 hours ago | parent [-]

Do you have any data backing this statement? Or is it just your experience?

▲bpeng2000 3 hours ago | parent | next [-]

Personal experience:

AI tends to add new wheels for a new feature in a large codebase, because finding, understanding, and generalizing the existing code to integrate a new feature will likely break existing features, cost more effort (and token) to implement and test. Human reviewers also tend to like these code since they are clean, easy to review, and get the job done, especially when they are not familiar with existing codebase.

The issue is that wheels like these accumulate in the codebase, and they inevitably entangle. When an upstream specification changes, when a new feature that works with many existing features are introduced, all these wheels need to be revisited, and in many cases they are not because the new test cases do not cover all the paths. The code base got larger and more complex, and contains more bugs than the unit tests can cover, especially when unit tests are often "bent" to fit the wrong behavior unnoticed.

▲tripleee 4 hours ago | parent | prev | next [-]

-

▲piker 3 hours ago | parent | next [-]

Yep.

The worst part about this is that if you aren't watching it, the AI will "solve" this with a thousand assert_3_plus_5_equals_8() test cases that just further clutter the workspace and the context window. Churn baby churn.

▲Rudybega 3 hours ago | parent [-]

I haven't had this issue since like last year with frontier models. What are you using?

▲troupo 2 hours ago | parent [-]

All the models do this. I'm literally right now watching Opus 5.5 duplicating code even after telling it to fix duplication.

▲tripleee 2 hours ago | parent [-]

-

▲SmirkingRevenge 3 hours ago | parent | prev [-]

The models are pretty good at finding code duplication and eliminating it though, and it's usually part of my AI review process at this point

If you let it go buck wild on a massive change, there are those times where it sort of paints itself into a corner but rewrites are cheap (for now), so it's just not that big of a deal, imho

▲tripleee 3 hours ago | parent [-]

-

▲hn_acct-1029393 41 minutes ago | parent | prev [-]

I’ve had multiple occurrences (with the latest models) of AI reading a poorly named db column and assuming it was one thing when it was another that resulted in a problem. It does not know when to stop or when to continue with determining what is true.

▲gwynforthewyn 4 hours ago | parent | prev | next [-]

Literally 50 years of engineering history and culture cares about whether code is good. There are libraries worth of books about it, not as a means to an app but for its own beauty. Just read “The Elements of Programming Style”, for example.

Do what you want, write apps with AI and don’t review code, it doesn’t impact me. The claim that no one cares about good code is demonstrably false, and that’s all I’m objecting to.

▲g-b-r 4 hours ago | parent [-]

> it doesn’t impact me

so long as his software isn't used for anything that can affect you

▲nerdo 4 hours ago | parent | prev | next [-]

Not true, LLM’s will struggle with badly organized and designed large codebases just the same, though likely with less errors and profanities.

▲copperx 4 hours ago | parent [-]

The biggest concern is that AI can doxx you and find where you live if your code sucks. If that doesn't scare you, nothing will.

▲weakfish 3 hours ago | parent | prev | next [-]

> No one cares about good code. It’s a means to an end.

I do, my coworkers do, my friends do, etc etc.

▲swat535 2 hours ago | parent [-]

I think a more generous interpretation of the parent comment would have been: "No one [in business] cares about good code" .

Your end users certainly don't either, heck they'll gladly sit there and scroll through their phone until the 50GB React app loads.

▲xyzsparetimexyz 2 hours ago | parent [-]

I don't care about the opinions of end users with poor taste as much as I care about the opinions of end users with good taste.

▲g-b-r 4 hours ago | parent | prev | next [-]

Good code is a means to the end of the code being error (and vulnerability) free, maintainable and performant.

And if people are not looking it, those people don't care about their customers.

▲drewg123 3 hours ago | parent | prev | next [-]

The way you phrase it makes me realize its almost like a GPL contamination. Eg, once you pull in GPL code, your project is infected and can never use a BSD (or other GPL incompatible) license.

Similarly, once you pull in terrible AI slop code, the project becomes unmaintainable by humans and you need to maintain it with AI.

▲gwynforthewyn 3 hours ago | parent [-]

There’s a little irony about the example you picked of the GPL, just because in the US the output of an LLM cannot be covered under copyright. The GPL works as an assignment of rights under copyright.

This is, of course, tangential to your point.

▲xyzsparetimexyz 2 hours ago | parent | prev | next [-]

No code is error free. All code will need a fix of some kind eventually. When it does, it's better that the internals are not a total mess. In the same way that you don't want the insides of your car to be total alien nonsense either.

▲troupo 3 hours ago | parent | prev [-]

Code that isn't duplicated in 15 places, that doesn't read the whole database to fetch just 1 record, that doesn't do 15 database reads where one would suffice, that uses an optimized algorithm instead of an exponential one recreated badly from scratch... all that is also good code, and is just as important in LLM-slop era.