> Yeah, I keep hearing people say how LLMs write amazing code now…
You keep hearing people saying AI coding assistants and coding agents can easily output working code. With enough work they can easily output that follows your own coding style and restrictions.
If you prompt a coding agent to write code following your personal choices and recommendations and it outputs less than amazing code... What does it tell you?
> Personally I have not seen this amazing code.
You get out of it exactly what you put into it. Garbage in, garbage out. I mean, one of the prompt styles they support is literally "implement this following the style used in this component". And people complain the code generated from your prompts and with your own code as a reference turns out to be crap? Strange. Moreover, code assistants excel at refactoring work.
The model is trained on a ginormous corpus of code. The problem is, most code is shitty. My code isn't.
Using a model means constantly fighting mediocrity, to the point where the trying to prompt it into shape often becomes more work than just writing the goddamn thing myself.
Yes, I can prompt. But I can't prompt understanding into the pattern matching machine. It will always revert to the undesirable mean.
> I’ve seen AI write a lot of buggy code. I’ve rarely seen AI wrote test cases that expose buggy code.
That's an odd statement to make, particularly with today's models. They can easily pinpoint concurrency problems and memory management issues. But here you are, complaining they write buggy code. What kind of prompting are you throwing at it?
It could be a prompt issue, but I write a lot of concurrent code, and I’ve given it a lot of attempts. I’ve been following model development since word2vec and friends so I think I have a good appreciation of the state of the art and how models understand context.
If there's one theme that's pretty consistent across all the reports I've seen on LLMs for coding, it's that they are both capable of very impressive feats and also capable of screwing up the simplest things.
I thought the same and it depends on which context you work.
Below is an answer on slack from our CEO when I said talking about Claude code source leak : « Dirty, un-architected code is the new norm; it makes billions, who cares… »
He answered:
> Well, yeah, who cares?
> This is where we need to differentiate between what truly needs to be clean (critical APIs) and where some random guy coding a product in a week will wipe the floor with a team of engineers with a clean architecture and no product after three months.
> What's more, this "vibe coder" is on the right side of history… Who's to say AI won't be able to just rewrite the code cleanly while keeping the core idea within 6, 12, or 18 months?
> This is also the question that drives business... and in business, "good enough" has almost always trumped "perfect." Except when you're making an ultra-luxury product like a Ferrari or something. Which software almost never is (if ever).
So when head of companies don’t care about quality, they’ll push hard no matter what to have speed.
> Who's to say AI won't be able to just rewrite the code cleanly while keeping the core idea within 6, 12, or 18 months?
Well lets say it's 18 months from now and AI writes lovely, ideal code. At that moment, the AI would have eliminated the need for AI, right? If the code is good, you can just read it and edit it.
The selling point of AI is that you will embrace that idea that you code is a mile-high stinking garbage heap, so that any human would be overwhelmed by the stench. Only so long as the best strategy for engineering is to pile the garbage as high as possible as fast as possible will the best tool for engineering be AI.
So my counter argument is: just wait 18 months and you can completely skip adopting AI.
> So when head of companies don’t care about quality, they’ll push hard no matter what to have speed.
This is especially true when the people who suffer the consequences of bad software are far removed from the company making it. You'll be forced to spend hours fighting with customer service over errors made by people using that bad software, but it won't impact the CEO of the company who vibe coded it. I hate that we're moving to a world where everything around is getting worse and less reliable while marketing companies try to convince us all that this is somehow progress.
Really? IME, if you use a different session to write tests and if you plan ahead (meaning: you are the driver) you can easily cover all the cases you can think of, and then let AI suggest and implement those you missed. It us easy to fall into trap that you do not need to think though.