this post was submitted on 12 Apr 2025
1259 points (98.5% liked)
Programmer Humor
22854 readers
300 users here now
Welcome to Programmer Humor!
This is a place where you can post jokes, memes, humor, etc. related to programming!
For sharing awful code theres also Programming Horror.
Rules
- Keep content in english
- No advertisements
- Posts must be related to programming or programmer topics
founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Know a guy who tried to use AI to vibe code a simple web server. He wasn't a programmer and kept insisting to me that programmers were done for.
After weeks of trying to get the thing to work, he had nothing. He showed me the code, and it was the worst I've ever seen. Dozens of empty files where the AI had apparently added and then deleted the same code. Also some utter garbage code. Tons of functions copied and pasted instead of being defined once.
I then showed him a web app I had made in that same amount of time. It worked perfectly. Never heard anything more about AI from him.
AI is very very neat but like it has clear obvious limitations. I'm not a programmer and I could tell you tons of ways I tripped Ollama up already.
But it's a tool, and the people who can use it properly will succeed.
I'm not saying ita a tool for programmers, but it has uses
I think its most useful as an (often wrong) line completer than anything else. It can take in an entire file and just try and figure out the rest of what you are currently writing. Its context window simply isn't big enough to understand an entire project.
That and unit tests. Since unit tests are by design isolated, small, and unconcerned with the larger project AI has at least a fighting change of competently producing them. That still takes significant hand holding though.
Isn't writing tests with AI like a really bad idea? I mean, the whole point of writing separate tests is hoping that you won't make the same mistakes twice, and therefore catch any behavior in the code that does not match your intent. But If you use an LLM to write a test using said code as context (instead of the original intent you would use yourself), there's a risk that it'll just write a test case that makes sure the code contains the wrong behavior.
Okay, it might still be okay for regression testing, but you're still missing most of the benefit you'd get by writing the tests manually. Unless you only care about closing tickets, that is.
"Unless you only care about closing tickets, that is."
Perfect. I'll use it for tests at work then.
I've used it most extensively for non-professional projects, where if I wasn't using this kind of tooling to write tests they would simply not be written. That means no tickets to close either. That said, I am aware that the AI is almost always at best testing for regression (I have had it correctly realise my logic is incorrect and write tests that catch it, but that is by no means reliable) Part of the "hand holding" I mentioned involves making sure it has sufficient coverage of use cases and edge cases, and that what it expects to be the correct is actually correct according to intent.
I essentially use the AI to generate a variety of scenarios and complementary test data, then further evaluating it's validity and expanding from there.