Claude Code or How I Stopped Worrying And Love the Codepocalypse
I've recently started to try the new hype “agentic coding“, which is something absolutely new and not simply vibe-codingFor some strange reason Mistral's implementation is called mistral-vibe. 🤷♂️, no no, completely new and entirely different. I've actually played around with it, using Pycharm Junie with different models, Claude Code with different models and Mistral Vibe. They're all the same, essentially, by the way, so pick whichever one you like. I even went to a workshop, organised by a client for their internal education, with two “expert trainers”, for coders and businesspeople.
I have learned a great many things from my experiences, and my professional opinion can be summarised like this:
Agentic coding goes like this: You tell it what you want, it'll go away for two to 30 minutes and then it's done. Or “done”. You can influence the level of done-ness by choosing different models and different strategies, and writing different instructions into different markdown files. It's all very scientific. The one thing you must not do, however, is to look at it. No, no, never look at the code. You may check the test coverage and the greenness of the CI system, but never the code itself. Not even the plan that you have the agent make for you, or the review document. Simply press enter and be done with it.
And yeah, sure, it somewhat works. Sometimes. Almost. But not really, actually.
Let's say that you're a carpenter and you're producing beautiful pieces of furniture with a varied selection of tools. And then someone hands you a chainsaw. Would you go: “oh, this is so much faster than what I did before” and use that single tool only for all your needs? Sure, sure, it's super quick and very easy to slice up stuff and also much less hard work than doing all the things yourself. But your furniture will be... let's say, coarse. And also not very stable. And if you want to change something, you'll just have to saw it all down and rebuild it again. And if you want to create a building with it, I wouldn't want to live in it.
But that's how y'all are going about it. You take your hard-earned, finely-tuned and well-honed skills, sharp and precise as a scalpel and exchange them for a freaking chainsaw. And the stuff you might produce might look nice at first glance, and it might work ok if you don't look at it too closely. And by “too closely” I mean “at all“.
The stuff I've seen... even the youngest learners would be ashamed to hand in that stuff. But if you say “I made that with AI”, all is fine. AS IF! And AS IF you actually had made it. You sat next to an idiot savant while they made something that vaguely looks like the thing you described, and you probably twiddled your thumbs and wasted your life at the same time, too.
Here's the thing: I can produce good software, and I can produce bad softwareAnd I specifically say “software” here. This goes beyond mere code, since it includes architecture, structure, integration, and also taste, which is the most important thing when designing APIs.. And the difference isn't super-easy to discern, if you're not a producer of software, which has been a problem for ages. “But you're almost done” is what your PM would say, because they didn't know better. And you had to educate them and push back and explain about the first 90% and the second 90%, but also about black triangles and about Mythical Man Months . But all that is gone, because now you're stuck in eternal almost-done, and
Congratulations, because that's exactly what the industry and the world needed: more bad software.
And that's not even the worst part!
But it gets worse, because you give these tools to amateurs. To the PMs and the POs and the business analysts, so they get to make bad software now. And they can't understand the difference, until it breaks and takes your carefully balanced systems down. But don't worry, because cLaUdE cAn FiX iT!
I would absolutely give a chainsaw to a beginner on their first day, sure!
I've seen people try to copy their error messages into their vibe coding interface, and when that didn't help, they tried againOk, that one's on us, we trained people to just try it again.. And when that didn't help, they installed a Playwright MCP and let the statistical parrot control their main web browser. The one that has all their logins and passwords and access to the internet, you know. Working software developers helped them do this!
WHAT THE ACTUAL FUCK? Yes, it certainly is a good idea to add some nitro to the tank of the chainsaw and also don't wear any protective clothing and also just put it on this bag of TNT when you start it up!
And now I hear people talking about the stupidest ideas like: “What can you even tell young people to learn? We won't need developers or physicists or lawyers or actors or musicians any more because ChatGPT can do all that.” These people are so mislead that they will endanger their children's futures for pure laziness. They've already lost so much mental capacity to the machines that they can't even think about what a full person could do in in their life. It's so sad and stupid and also all kinds of disgusting.
But wait, the worst part is this!
To my fellow software engineers I say this: HAVE YOU NO FUCKING SHAME? Are you not ashamed to be associated with this slop, this drivel, this entire fucking mess? Are you so blinded by the allure of laziness, of not having to do the thinking yourself that you go along with this shit!
I've seen guys vibe-code some feature for their website and deploy it without looking at the code even once. Not even a glance. I am so freaking astonished that anyone calling themselves a professional would sink that low.
Actually no, it's not that anyone would do that. It's the speed with which our profession abandoned all pretense of precision or accuracy or dignity or professionalism.
You're addicts, go get help!
A tool
A chainsaw is a toolEither it is the tool or you are. Your choice., and, for the right thing, you get to use it. Carefully, and with deliberation and respect. You get to chop up stuff with it, and then you take the stuff and build something out of it.
I'm not going to pretend that AI and vibe coding is not an amazingly powerful tool. I'm not going to pretend that I'm not using it, or that I'll stop using it.
But I know what I'm doing and I'm not going to blindly apply it to everything. I'm going to have architecture in my software, because that's whats going to make it usable ten minutes from now, when you can't even remember which framework you're using because you never bothered to check.
Someone's going to need to help you when you finally find out the limits of your vibe coding agent. When your carefully constructed building comes crashing down because no one understands what it's even made out of; not your agent and certainly not you – you will need professional help. This is something I can do. Because I spent the time and learned all that stuff, and didn't spend my time sitting next to a box that pretends to do it for me.
So if you find yourself in that situation, you may talk to me about it.