You’re spot on regarding how AI operates.
AI is stupid story time!
I recently helped a friend with a self-hosted VPN problem. He had been using a free trial of Gemini Pro to try to fix it himself but gave up after THREE HOURS. It never tried to help him diagnose the issue, but instead kept coming up with elaborate fixes with names that suggested they were known issues, like The MTU Traffic Jam, The Packet Collision Quandary, and, my favorite, The Alpine Ridge Controller Trap. Then it would run him through an equally elaborate “fix”. When that didn’t work, it would use the failure conditions to propose a new, very serious sounding pile of bullshit and the process would repeat.
I fixed it in about fifteen minutes, most of that time spent undoing all the unnecessary static routing, port forwarding, and driver rollbacks it had him do. The solution? He had a typo in the port number in his peer config.
I can’t deny that LLMs are full of useful knowledge. I read through its output and all of its suggestions absolutely would have quickly and efficiently fixed their accompanying issue, even the thunderbolt/pcie bridging issue, if the real problem had been any of them. They’re just garbage at applying that information.
ExperiencedWinter@lemmy.world 8 hours ago
Not only will it have a lot of notes, every time you ask if to analyze the code it will find new notes. Real engineers are telling me this is a good code review tool but it can’t even find the same issues reliably. I don’t understand how adding a bunch of non-deterministic tooling is supposed to make my code better.
Buddahriffic@lemmy.world 8 hours ago
Though on that note, I don’t think having an LLM review your code is useless, but if it’s code that you care about, read the response and think about it to see if you agree. Sometimes it has useful pointers, sometimes it is full of shit.
ExperiencedWinter@lemmy.world 7 hours ago
So when do I stop asking the LLM to take another look? If it finds a new issue on the second or third or fourth check am I supposed to just sit here and keep asking it to “pretty please take another look and don’t miss anything this time”?
I’m not saying it’s a useless tool, it’s just not a replacement for a human code review at all.
Buddahriffic@lemmy.world 7 hours ago
Stop when you feel like it, just like any other verification method. You don’t really prove that there are no problems with software development, it’s more of a “try to think of any problem you can and do your best to make sure it doesn’t have any of those problems” plus “just run it a lot and fix any problems that come up”.
An LLM is just another approach to finding potential problems. And it will eventually say everything looks good, though not because everything is good but because that happens in its training data and eventually that will become the best correlated tokens (assuming it doesn’t get stuck flipping between two or more sides of a debated issue).
JcbAzPx@lemmy.world 8 hours ago
That sounds worse than useless. It would be better to fail utterly than make up shit that you have to waste time parsing through.
Buddahriffic@lemmy.world 7 hours ago
It helps in the sense of once you’ve looked at code enough times, you can stop really seeing it. So many times I’ve debugged issues where I looked many times at an error that is obvious in hindsight but I just couldn’t see it before that. And that’s in cases where I knew there was an issue somewhere in the code.
Or for optimization advice, if you have a good idea of how efficiency works, it’s usually not difficult to filter the ideas it gives you into “worthwhile”, “worth investigating”, “probably won’t help anything”, and “will make things worse”.
It’s like a brainstorming buddy. And just like with your own ideas, you need to evaluate them or at least remember to test to see if it actually does work better than what was there before.