recently I gave AI a task to configure a software and the software didn’t have any docs of how it works only the source code. the agent went through all the files and generated a summary of how it works and why it’s not working for my particular scenario and suggested edits to my docker-compose.yml file. I couldn’t believe it since the bug was very hard to find and it used headless firefox to find why it wasn’t working.
made me realize do we still need documentation of how a software work when a AI can easily explain it?


“You’re not using the latest model”, “You’re holding it wrong”, etc…
It’s the same shit, different day.
I’m consistently told LLM generated code is the best thing since sliced bread, and people keep handing me “proof”, yet every time I open what they’ve handed me, I see a shit sandwich.
And as soon as I point that out, the goalposts are moved yet again, ad infinitum.
I think the effect you’re seeing is that different people have different levels of “good enough”, and also they work in different domains where AI became good enough at different times. E.g. for one-off web page design it’s been good enough for a long time.
I never said this for earlier models, because they did suck for things like Rust and SystemVerilog. Now they don’t.
I’d share some things I’ve vibe coded that work basically perfectly but they’re linked to me real name, but you could have a look at the Mold linker which was recently vibe-ported to Rust.
In just the last two months, I’ve been handed the following web projects:
navigate(),goTo(), andchangeSlide()).I think the effect that I’m seeing is twofold:
For .one-off web page that is true. You and I might not like that under the hood it’s a mess but we have to accept that if it works anyway and nobody is going to need to change it, that’s fine.
Also the latest models don’t even make a mess any more.
There’s not really any such thing as a one off web page.
It’s eventually going to need to be updated or reused for something else.
The only exceptions being if your company goes under, force majure, or if you have something with the same requirements but choose to make the same thing again from scratch for no real reason , which is just being inefficient and unreasonable.
Yeah… I’m calling bullshit on that, all four projects I was handed was made by the latest models and it will continue being an issue for the foreseeable future. (see a previous comment of mine for reasoning: https://programming.dev/post/57569685/26398217)
Of course there is. What an absurd thing to say. A very obvious example is event websites, e.g. for weddings.
Maybe it depends on the language but I’ve recently vibe coded two tools in Rust and I’ve skimmed the code and it’s perfectly good Rust. I would accept it in a PR - even if I was being as picky as I’d really like to be in reviews. I don’t think that would have been the case 3 months ago though.
Why would you not reuse event pages for the next event?
I’d expect that the code would be almost exactly the same as other code that already exists, in which case, why not use that code?
How many times are you getting married? 😄
Uhm, because it’s not the same? Why would I vibe code an app that’s almost exactly the same as an existing one?
Let me fix that for you: How many times are people getting married?
The answer: Lots.
There are already wedding websites out there, in every variation possible.
Why reinvent the wheel when we have so many wheels that they’re treated as disposable?
Because a vibecoded app is going to be a ripoff of its training data anyway. LLMs can’t produce creative or novel works, all they can do is stochastically regurgitate what they’ve already seen in their training data. So why deal with risk of injection attacks hidden in the training data when you can just use the original source instead?