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.
post
Inb4 the agents change the tests to pass the CI.
literally seen an agent do a: "oh now the tests aren't passing" deletes all tests in the file
Or my Claude favorite, “oh you’re right? I did blow past that restraint and did something I was not supposed to, sooooorrrrreyyyyy”
assert(true);
assert(true);
assert(true);
assert(true);
assert(true);
Have I worked with you before?
My favourite (that I saw a human do) was asserting on unconstrained mocks with a typo (so they always asserted true)
Hundreds of tests. Not exactly pointless as they did call the code so maybe caught some issues. But we fixed the typo and barely half of them passed.
No idea how the software worked, but it did.
Or just disable limiting rules because they don’t wanna fuck with them. That one is my favorite to try to fight in PRs
"I stopped reading code because I was too busy writing a gauntlet of unit tests"
Sounds like 100x productivity to me.
Edit: also, general note - I think you kneecap your argument when you start with "I'm older than you".
There is a 0% chance he wrote all those tests himself anyway
I hope he at least read them.
He didn't, but he has unit tests for them.
None of this actually proves that they aren't writing slop. It just proves that the slop that they've written passes your tests.
Never ask a vibe coder about their code's performance.
This never happens to me, I swear. Just, gimme a second... Tell me how good I am. I'm so right. Say it. Almost there.
I mean, screw performance. You can get away with a lot of shitty performance and still have a completely functional application. However, the kind of slop that happens around module boundaries that turns your codebase into a giant pile of workarounds and hacks really sucks.
And AI is particularly bad at this, as AI almost always prefers to work around a problem or do everything it can to meet the plan the user approved, even if that plan meets reality, it has problems. Which tends to lead to cascading misalignment with intentions and cascading infrastructure and architectural technical debt.
All of which culminate in less stable software, lower likelihood of long-term support of that software, and worse performance.
I never understand why you wouldn't want to read the code. I prevent a massive amount of correct slop by just skimming. The LLM will 10 times out of 10 never ask "this code will be a massive duplication of exact same behavior, do you want to refractor it?" because it's trained to finish a task without asking if possible.
Uncle Bob now writes code for his tests instead of tests for his code. I know it's TDD but it always seemed backwards to me.
Unit tests for logic, integration tests for outside apis, e2e for features is the sweet spot IMO.
I use Claude/Codex, if it finds a thingy that's reusable it'll use it but it'll never create it or ask if it should be created in my experience. I find that it doesn't create new components but just replicates the existing one.
Within same file is a different story though, it does write helper functions to share logic which is proper.
I generally only use ai to write code I know what it should look like but don't want to type it all out.
Sounds like a cryptobro peddling some shitcoin claiming that it's impossible to get scammed because "code is law" four seconds before the liquidity pool gets drained through a vulnerability in the code.
Or a rug pull, or in this case the bubble popping.
While I do expect a pop, I’m not so sure about this take; How does the bubble popping devalue what you already have?
In crypto you’re left holding the bag, having paid $100 for something now worth 1c.
If you’ve produced a bunch of work already and AI company goes out of business, how does that hurt you?
If your workflows are deeply integrated with them and you need to pay the actual cost of it overnight it will definitely hurt, especially if the company is big enough. But yeah, theoretically you can make new workflows again and revert all organizational changes, it's just costly and not necessarily easy for everyone involved.
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
But if the ai writes the tests and you don't read them, how would you know if that's 100 lines of assertTrue(true) ?
So, "red, green, refactor" has become "red, green, deploy"?
That's a change, for sure, but I wouldn't call it an evolution.
I see all the tests are passing on this PR, so I won’t even review the code. LGTM.
🙄😖
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
I don't code any more, only write gazillions of tests smugface.jpg
Yeah,his avatar looks like evil Stephen King
He fails to mention that he has AI also generate and do all of those tests, which means, A) he has no quality supervision over his quality supervision. Speaking from experience, AI can and will break a test in order to pass it rather than fixing the code if it randomly decides to. It is not always reliable and does not have even the baseline of good sense you would expect a brand new junior dev to have. And B) he's probably spending 3 times as much on tokens used for generating and running tests than he is already using on code generation. That's only going to be sustainable while these tokens remain cheap, which won't be for much longer, my guy.
Also it is always fun when someone asks you basic questions about your code and you have to admit complete and total ignorance because you neither wrote nor read a single line of it. How are you going to sell confidence in your black box that even you haven't peeked inside?
The D Language Foundation tried to incorporate LLMs in the unittests, and they created something akin to assert(5 + (funcToTest(846) * 0) == 5) early on, now they want to use it to rewrite the standard library from scratch, because "it has become better since".
The other day I had Claude write some code that failed a unit test. It was failing at a step that ran assertEquals(actualMap, expectedMap);. The reason it was failing was because one of the values in the map, a UUID, is automatically generated in the code. In the test, it has been hard coded.
Anyone with any sense would know you need to handle that misalignment. Omit that field from the match assertion? Set that UUID based on the generated value instead of hardcoding it? Anything like that would work just fine.
But Claud's solution was to change that assertion to assertTrue("The actualMap and expectedMap will never be equal because the values of ID will never match");. So the test always passes and it explicitly notes that they will not match. I would have fired a Junior Dev on the spot for writing that solution.
If you do all that properly using an LLM is a waste of time.
That doesn't follow. What I think you mean is that by defining the constraints so rigorously, you've basically solved the problem yourself. But that's exactly the point. The LLM isn't the problem solver, it's the execution engine that does the wiring-up and the ticking of boxes. The easy part, arguably, sure. But still considerable effort that can be saved, and that effort may be better spent on the problem-solving + constraint-defining stage.
Mandatory disclaimer that this is not a pro-AI post. I also don't agree that this setup works, anyway. It's a classic Bob Martinism, the idea that writing good enough specifications makes the implementation irrelevant; it's the type of idea that is allergic to reality
He’s done so much to enshitify the industry.
I'm significantly older than you. I started coding in the late 60's
Yeah, appeal to tangentially related experience, age and arrogance aren't a way to inspire confidence in your work.
We live in the perfect times to display that experience, age and arrogance haven't been working in almost any field, from politics to LLM development. We've yet to witness any system that operates well, while also eliminating human oversight. It doesn't matter the guard rails you put in place. They're only as strong as your personal ability to evaluate your own product, which itself is a conflict of interest.
Edit: Also, you can't use your own credentials to assert the integrity of work you aren't even actually doing yet passing as your own.
Not to be too flippant, but:
Boomers gonna boom.
They literally can't help themselves, they're egomaniacal narcissists.
The rare ones that aren't that way can truly be awesome sources of perspective... but goddamnit so many of them are completely insufferable man-babies.
Boomers have been noted in studies to display worse cognitive decline at their age than any prior generation and it shows.
Its almost universally a generation that absolutely refuses to learn or adapt to the changes the world has experienced since Reagan, to the point of violence.
The only difference between this guy and other boomers is he's at least someone up to date with modern technology. Most boomers don't even know how to use smart phones or self checkout. You know... technology they've only had ALMOST 2 FUCKING DECADES TO BECOME ACCUSTOMED TO.
I'm not defending boomers in any way, but I see the same thing with younger people; that is the allergic reaction to learning about technology. I work in technology, so that's is my sole perspective. I would wager that plenty of young people are allergic to learning about ANYTHING, I just see the tech part.
I don't expect people outside of my vocation to be experts, but I can't imagine wanting to be utterly confused by the world at large--the world in which technology is literally everywhere. What would one's life be like if you had no clue how any of it worked? You just live in some sort of magical world where digital pixies do everything for you? You're not at all curious how it works? What about when it goes wrong? You just stand there and softly weep in a puddle of your own piss until someone rescues you?
I feel this way about cars too. I don't expect everyone to be a mechanic, but people will drive around with THE most horrible sounds coming out of their car and they're like "yeah, it started doing that a while back". Zero interest in perhaps having someone look at it or concern that it may turn into a bigger or more expensive problem in the future? A problem that they will have to pay for personally?
The entire life approach of being absolutely rigid to change or new information is such a puzzle to me. Life is hard enough, and these people just want to make it harder all because they're scared that they may have to put a little brainpower into learning something on their own?
The difference is the young people got their minds obliterated by convenience through apps from a young age... and everyone saying that this would be the new permanent sustainable future, so doing anything the hardway is just stupid.
They were presented with all this, the content on demand, the simplified UIs... things that mostly 'just worked'.
They also grew up in a time where there is no reward for perservering through difficulty and confusion. The economy, to a job seeker, is a random casino, or nepotism, that's it.
So to them... any kind of delayed benefit is more pointless.
They're not 'making it harder for themselves'... curiosity is a thing that has to be nurtured, encouraged, rewarded... and everything about their lives did the opposite, punished it, mocked it.
Thats not a switch you can just flip. They don't know how to contemplate.
Another important other part of this is the Boomers rigged society to work for them and fuck everyone else, and lied about doing that... and the Millenials, Zoomers and now Alphas all grew up to now in that world.
Homeowner average age is just the Boomer's average age. Political figures get older and older, anomalously.
And... nobody teaches anybody anything any more. The Boomers stopped passing down useful life advice, and that has now compounded into the incredible irresponsibility of Millenial parents just handing their 6 month old an Ipad, to do the parenting for them.
Of course the broadly shit economic conditions for Millenials are a huge part of why that happens...
But you can't pass down skills and habits you don't have, because they were never passed to you.
I am a millenial. Taught myself how to cook, taught myself car maintenance, taught myself socializing and romance advice/strategies, taught myself personal finance habits... my parents either didn't have time, mocked me for not already knowing, or actively had terrible advice that was either immoral, ineffective, or both.
And I think that is a very common Millenial experience.
My dad would tell me about the good times he had learning shit from his dad... and then just... didn't do that, with me.
Maybe I am a bad example, because I am so no contact with my parents they probably think I am dead.
But then again... more and more millenials are going no contact with their Boomer parents, because they've been treated similarly terribly.
You said a lot of shit, but I'm too drunk to read all of it effectively. I'm going to just go with the idea that you're a fine young person and here's to you. Fuggin, go get 'em sport.
Makes me remember the joke of the failure of the Soviet bordello, they just didn't understand why, they got the most experienced girls there were to find!
Say this stupid bullshit was true: you’re spending so much time baby minding the fucking thing that you’re not saving time?!? I don’t doubt that slop generators can code. But can they generate good code AND save you time? No.

top 90 comments