So what exactly is he wrong about in here? Are you people running your agents without guardrails and constraints?
Programmer Humor
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
Dementia is no joke.
Tests are input output, the shape comes from how you get from the input to the output.
I've actually found a lot of success with the opposite where I write the code and AI writes the unittests. I would have otherwise written a few unit tests, but AI makes typically 20x that many. Since my code is already documented, it can get lots of good context. I typically instruct it to check the branch's diff relative to main and test only those changes. I might skim them over, delete some that don't make sense in context and would never pass, and update one or two. Typically after a few rounds of iteration, I have tons of tests I would never have written on my own, and a human-made feature.
You could also have it write your tests first from the requirements and use red green tdd as you write.
In a perfect world yes, but even after all the solution in and planning, once a developer gets into the request and looks at the code things often change.
Requirement only written test steps are rarely going to be enough to cover every scenario. Saying this as a 10 year ba veteran
You started writing code in the 60s, yet you never quite mastered the craft, and you're proving it yet again. Remarkable.
I see all the tests are passing on this PR, so I won’t even review the code. LGTM.
🙄😖
I'll say it again for the people in the back, even if you are a vibe coding twat, well designed code is a MUST even more so.
If you want your LLM to preform even to the crappy level they can the codebase needs to be clean.
Except LLM agents are known to do weird things to succeed. I have heard of an LLM agent working with automated theorem proving languages using stuff similar to is_prime(x): return True to get the proof it was asked to. Now embed this in a 20000 line code full of such functions, good luck. They have their use but it is not this. And this is especially bad to hear from someone who used to claim that having functions with more than six variables is bad design because it is hard to maintain. A software fully written by an LLM is the epitome of unmaintainability. LLMs are productivity enhancers, information retrievers, nice debuggers and good to discuss questions with to see if there is an angle you miss. That is all this if you can put aside all the ethical concerns related to them ofcourse. But they are not automated software coders.
That is why you ask the LLM to find bugs and other instances where the first LLM cheated. The checking LLM will try to find abuse with all its might.
It really turns into a tug-of-war, see my answer below. Despite it being quite good at debugging imo still requires a human in the loop for it not run in circles after a "bug" that is almost never relevant in practice but whose fix complicates the code.
Try asking independent LLMs to find bugs in a code consecutively (fixing the founds bugs in between) and even after the rightfully major bugs are resolved, the independent newer instances will keep suggesting fixes (those which sometimes undoes its previous "fixes").
That is why you ask for visualizations and test real failure scenarios to see if they are detected properly.
Large language models are not the same as they were 5 years ago. Pumping trillions of dollars to automate software engineering did som what pay off.. They are really quite good nowadays despite the amount of hate they still get. Often they can detect sloppy mistakes by human coders too.
Do not trust them blindly but test their results. Or use them only to generate tests on your artisan handwritten code to see if it can detect any mistakes.
When you've been project managing interns and junior developers for 50 years, you have seen weirder shit than AI can ever dream of.
If you still have a working memory, you remember doing weirder shit than AI can ever dream of. Every one of us was a junior at some point. And judging by the comments here, most here still are.
For sure, but you don't accept code from an intern without review much less have them write a full software without any supervision.
Which is exactly what the original tweet was saying, is it not? Honestly, another LLM can read the code better. He's still performing rigorous reviews.
I found debugging code with LLM most productive when I am in the loop. Don't get me wrong it can quite often find tricky bugs, those requiring some sort of reasoning (i.e connecting together multiple relevant pieces of information to arrive at the conclusion). However it often also suggests fixing issues that are almost always irrelevant in practice yet the fix complicates and bloats the code. LLM itself even accepts it when confronted. That is the main problem, in an attempt to overachieve at the task it is given, it can do deceptive or impractical things that can have negative effects. You might try to fix this with a config file but it just turns into a tug-of-war. So I find it more practical and trustable to simply eyeball the bugs it has found, implement (or ask LLM to implement) corrections to those and be amazed at how it found some of those bugs.
Ofcourse if you have asked LLM to write the software from scratch, you don't stand much chance of vetting the bugs via eyebaling. You have to spend much more time to understand how relevant they are. So your only option really is to defend the position of fully autonomous LLM coders...
Been coding for about 30 years now, am I the only one who still LIKES to code? Who still LIKES to try writing a new approach to something, watching it fail, figuring out what went wrong, taking notes, learning from mistakes, and noticing improvements in their own code? Cuz it's starting to feel like it. Web development already lost me with the culture of "glue a bunch of bulky shit together that you didn't write and call yourself a 'dev' to the ladies" but this AI shit is getting absurd. And it doesn't even work! Look at how shitty all the operating systems are getting. Look at all the total slop on the app stores. It's depressing as hell.
~25 years here and I started getting bored about 15 years ago.
Of course many people like it. It's literally a highly addictive loop. But when you are a senior developer on a team, it's kind of a waste of resources for most projects. Writing code is not the hard part.
Scrolled way too far for a lucid take like yours.
This seems to be a bit of an echochamber.
I wish people would just be a little more honest. When they say “writing code” they actually mean hunting through stack overflow for bits of code you can string together. Take stack overflow out of the loop for argument sake. Your a unicorn information superhighway ninja. Snowcrash hasn’t left your bedside for decades. Mountain Dew and volt cans litter the floor space of your home …and you’re still just orchestrating a bunch of libraries you never saw the source code of.
I think a lot of people built their identity on being coders and that’s why they hate where the industry is going.
We need to build a culture that values process and making beautiful things for their own sake, not simply Pile Dollars Higher, which is killing the planet and making us all miserable.
That requires basically killing all major shareholders. They are the ones who enshittified and toxified the gaming industry, same applies to basically any industry they put their little grabby hands on.
It was literally Epstein that started it lol. Since activation/blizzard were integral to his operation and learning psychology through gaming (funny to think the big gold seller in wow was Steve fucking bannon). This timeline can’t be real.
I love coding and learning new languages. I'd rather move to another industry than reviewing vibe coded crap all day long.
Right there with you. I suck at it but I still find the pursuit worthwhile!
This crap is brought to you by the people who are positively baffled that someone would want to learn to make music, and enjoy the process, instead of just have it generated so they can hit "publish" and supposedly be making money off of it with zero real effort besides "having an idea."
this guy has always struck me as a shitty coder. His "clean code" is the ugliest shit i ever saw. This confirms it.
i wrote 4000 lines of code to make sure the AI generated 100 lines of code correctly.
What he is describing is what you are supposed to do for human written code also.
I'll do all that when the spec is written in stone.
Uncle Bob is a piece of shit
I saw an argument today that was presented in a very rage inducing way but in the end I had to agree that it wasn't the worst of takes: your code won't get any worse just because you let the infinite slop machine have a go at trying to find problems in it.
There could be a million other reasons not to use AI but if your only argument against it is that you don't trust the code written by AI to be good enough to be included in your code base, then you're just not thinking about every way that the clankers can be put to work.
I'm not arguing in favor of using AI by bringing this up. If you're morally opposed to it then this point makes absolutely no difference.
AI for code review is, I am pained to admit, a genuinely extremely pleasant addition to my workflow - it inherently is a process that involves humans checking it's work, and that kind of pattern recognition is one of the things that AI models are actually proficient at. It's for sure not bullet proof and it's pretty rare for it to catch something real that I wasn't already aware of, but it takes no time, doesn't touch my code directly and does pick up tiny errors like fenceposts or bad typing that make up the majority of my time when I'm running things down manually.
The clean-coding craftsman himself.
Desperate for attention.
Or got a few bucks from AI vendors to help keeping the fire on the AI bubble.
“Claude, no function should be more than one or two lines long” lol
Muh self-documenting code!
— Uncle Bob

Isn't this just the natural evolution of TDD? Write tests, pass them, don't care about how garbage the code is to make them pass