I have tried very hard to avoid knowing where a lot of programmers I have historically respected stand on AI. The reason is simple. I don’t want to know who has adopted a very unfortunate moral position. I want to remain blissfully ignorant if I’m being honest. I know of way too many otherwise intelligent and talented people in software that have completely rotted out their otherwise functional brains and hollowed out important parts of their souls with this technological drug.

For those of us who have sided with the faction that has decided that the fundamental underpinnings of LLMs, generative AI, and the companies promoting it are absolutely, positively evil and a fucking blight on our species, it’s really not even worth it to trouble ourselves with caring about the technological merits—presuming there really are any—at all.

For example, if there was a machine or a system out there that made me twice as productive at work and all I had to do was beat one of my kids once a week to invoke its power, I’m just not going to use it. I’m not going to tame it. I’m not going to entertain it. I’m not going to set up “guardrails” or “harnesses” or “agents” or “Ralph loops.” In fact, I’m not even going to take a co-worker particularly seriously if they want to talk about using it. Obviously, if I have a boss trying to force me to use it, it’s obvious to anyone with any sense of morality that this boss is a piece of shit1.

If you think this is hyperbole, you are wrong. If you think of LLMs and generative AI only in terms of outputs, you are either utterly ignorant, delusional, or a psychopath. None of these are mutually exclusive either. You can totally be all three and, sadly, these people do exist in greater quantity than I imagined.

Baldur Bjarnason expressed his disappointment, in regard to fellow programmers in one of his more recent takes on the topic. Many of us who have taken up this position and this banner have done so because of the rot within this technology and the corporations developing and selling it. The looming short and long term consequences are dire. We recognize that. We oppose that.

Those who adopt the “don’t worry they will figure it out” align themselves with the villains in this act. That is how it works. Taking the position of “I only worry about the technology and don’t care about being philosophical” is entirely spineless. When you really dig in, how can you justify avoiding the ethical quandaries?

People take this position for the same reason I don’t want to know about the preferences of programmers I respect. Ignorance is bliss. When Chris McCord, for instance, started endorsing this stuff, it was downright sickening to me. If I don’t know, I don’t have to feel bad or guilty. I can just pretend everything is fine. I don’t have to deal with conflicting emotions and I don’t want to if I can avoid it because no one does.

As I was winding down from a work day and checking YouTube for something to listen to while making a very late lunch, this video from ThePrimeagen involving an essay written by DHH popped up in my feed.

My first instinct was to not click. I could tell pretty quickly from the preview material I was not going to like the content at all. Worse, after watching, I was even more disgusted than I thought I would be. I was mad at DHH for his terrible take. This one really bothers me because I tend to really like what the guy has to say2. I think of all the programmers who have inspired me throughout my career, DHH would be near the top if not the top.

As if that weren’t bad enough, I felt ThePrimeagen’s takes were not too much better, despite his defense of some of the projects DHH took to task. While I get what he was trying to say, the conclusion left a terrible taste in my mouth. Perhaps less about any individual but rather an indictment of the ridiculous time we live in:

Maybe it’s good to have skills.

Maybe? Am I supposed to feel some sense of shame to agree? Am I some kind of “luddite” for thinking skills matter?

Are y’all fucking for real?

Where DHH is Wrong

Where isn’t DHH wrong here? Mr. Hanson, like many others, has bought into the insane idea that agentic development through LLMS is the next step in the evolution of our field. It is not. He’s fallen into many of the terrible mental traps that accompany this false assumption.

I was originally going to focus on what I thought were the most egregious parts and deal with them one at a time. The trouble is, he’s just wrong. The premise and arguments from start to finish are painfully and embarrassingly wrong. I have to address most of it because someone is wrong on the internet.

Let’s start with his first sentence, which is as misleading as it is an entirely false premise. This does not bode well at all for the rest of the essay:

The open source movement spent decades fighting for everyone’s right to change software, through free access to code and permissive licenses to release improvements.

Not everyone who releases their source code is philosophically aligned with or in any way bound to “The Open Source Definition.”

Conflating all open source (little os) projects with the Open Source Movement (big OS) is preposterous. There are plenty of open source projects out there with a myriad of motivations for making their code available. It covers everything from copyleft zealotry3 to “I wanted a repo but didn’t want to pay for GitHub and don’t really care.” That’s a pretty massive spectrum.

When someone puts in the time and effort to make their code available, especially in the “free as in beer” model, I have a real problem with pretty much anyone telling them what they have to do with their projects or how they should manage them. Is someone providing free stuff supposed to do something beyond that? Seriously? Do they somehow owe me more?

No good deed shall go unpunished I guess.

See, all programmers are equal, but some programmers are more equal than others.

No, they are not. This is a skill. I don’t even understand this position.

What are you even saying here my guy? Who is fucking saying all programmers are equal?

I’m sorry, the premise here is so terribly silly I can’t even. This is not a statement that should be taken seriously. (And yet, here I am.) I was going to write an analogy involving a bunch of other skilled disciplines before I realized this is not a serious argument in this universe and deserves no further refutation than I refute it thus!4

Projects big and small have been erecting new participation barriers on contributions aided by AI to preserve the privileges of the old programmer guilds.

No. Maintainers of their own repositories are laying down policies for how their fucking projects are managed. Repositories have owners. Open source repositories are not, in fact, any sort of public property by right of existing.

The beauty of open source is I can take some code and learn from it and modify it in the comfort of my own office. I can do so with the code of all the linked projects. If I am using that code and want to make modifications as it relates to my project I can also do that. The original repo, however, does not belong to me. If it did, things like the license wouldn’t apply. I can fork it in almost all cases. The maintainer, however, owes me absolutely nothing and does not have to take my changes if I submit them.

Maintainers who have already lent their time and talent to our community and profession get to control the destiny of their fucking repositories. I don’t want those “democratized.” I don’t want someone telling me what I have to include in my goddamn work, David. No one is stopping you from vibing away on an existing open source project either. The code is right fucking there.

SQLite is open source but certainly doesn’t let just anyone contribute and never has. Their maintainers have very specific ideals and goals for their project, as is their right. Humanity as a whole has benefited from this. Not every project needs, wants, or is improved by vibing randos or even a widespread community.

One size does not fit all. There’s a reason most of us don’t have positive reactions to “design by committee.”

Humans have been writing shitty software, with dodgy attribution and plenty of bugs, since five minutes after the profession materialized.

I’m so tired of this—so tired of this. Again, consider any other skilled discipline with this take. I dunno, how about doctors or lawyers settling for garbage because so much has preceded them? It’s lazy. It’s harmful. It’s disgusting.

In fact, I think this attitude is so pervasive in our industry because the software industry is, indeed, very bad at software. When are we going to adopt skill and discipline like actual engineers (think people who design bridges) or even tradespeople (think plumbers) rather than accepting irresponsible work?

Do you want to just believe that the casual acceptance of poor to mediocre work is a baked in feature of this discipline? Is that what I should teach my son when he starts down this path?

Our industry has the capacity to cause harm. Not every software project is some fun chat app with no consequences. Sometimes it powers very serious and very important things. It deserves serious professionals.

Programming is evolving. We don’t know exactly what the final shape will look like, but giving more people access to the fruits of computing freedoms is worth resisting the temptation to close the gates of participation.

While I agree with this in principle—I’ve made it clear how much I fucking hate low level programming in the past and am glad for high level languages and frameworks and libraries and syntax highlighting and all that—AI generated code is not that.

AI generated code cannot even exist without the massive and long term efforts of skilled people who have been giving away and making their code available. Those people have an absolute right to say no.

Again, no one is stopping a prompt fondler from vibing away on any given piece of software. It’s open. It’s free. Have at it.

Finally, let’s stop talking about about “freedoms” somehow being enhanced and anything being “democratized” by technologies that are inherently oppressive and anti-democratic. Techno-fascism is specifically anti-freedom and anti-democracy.

Where ThePrimeagen is Wrong5

ThePrimeagen is trying to take the “middle ground” here. The ever agnostic “you do you and I’ll do me” or “it’s just a tool” camp. He says pretty clearly that he doesn’t understand people like me—people in the AI is Most Definitely Fucking Evil camp6. It’s clear he doesn’t get it—or at least really consider it—beyond the technology aspect. This is a real problem across the industry.

Not only does he sorta waffle on NetBSD’s rationale but he actually calls out jqwik while failing to point out that the maintainer, Johannes Link, has written rather extensively on why he too is in the AI is Evil camp. His essay on the topic reads almost like a condensed version of The Intelligence Illusion. It is well sourced and I highly recommend. It has far more substance than either DHH or ThePrimeagen in this context.

There was one brilliant paragraph in the introduction that I think really puts into context what many of us in the AI is Evil camp understand:

The crux of the matter is that ethical behaviour does not come for free. Ethics are neither efficient nor do they enhance your economic profit. That means that by acting according to your values you will, at some point, have to give something up. If you’re not willing to do that, you don’t have values—just opinions.

ThePrimeagen specifically calls us out saying:

You put your values on other people.

No, I don’t. I am allowed within my own domain and within projects I maintain to set the values I expect to be followed by those I allow to participate. If we can have Codes of Conduct that often appeal heavily to identity politics in every fucking repo out there, I sure as shit have the right to say I don’t want code generated with fascist propaganda machines7 in my goddamn codebases. It’s bad enough that the very act of open-sourcing my code feeds these beasts.

Regardless, I’m not putting anything on anyone. I’m not storming into anyone’s office and tasering them if I see Claude or Cursor open on their computer. I can have a poor opinion of these people though and they can think the same about me. They can call me a luddite. Fine. Life goes on.

Having said all that, a portion of his conclusion is really good. He leaves the pure tech sphere and talks about his connection with projects and its importance. That matters. That matters even more when you’re invested in or maintaining a project for a long time.

Tools, Technology, and Outputs

It is disingenuous to consider LLMs and generative AI purely in terms of their technological merit while ignoring their social, economic, and environmental impacts. Even if you ignore the moral and ethical issues—and again, you’re kind of a shitbird if you do—the economic realities should still measure into the supposedly objective calculus. This is especially important in regard to the insane position taken by DHH.

LLMs and the entire generative AI industry are subsidized. Tools that appear cheap and available to everyone are not going to continue to exist in this fashion. They cannot. At some point the piper must be paid.

How empowering or “democratizing” is this technology when:

  1. People have to pay the actual cost of the tool?
  2. The output of the tool is built on the theft of those who do not consent to the use of their material being used to power these monsters?

How these tools are used will change fundamentally when we have to pay the actual costs. Thankfully, most of these idiotic debates will simply die. When we have to judge the outputs with an actual ROI and a cost per use, a lot of people are going to very quickly change their tune about the value of agentic anything.

And the justifications are just as tired: It’s about quality! It’s about attribution! It’s about workers! Spare me. It’s about you, your insecurities, and your privileges.

David. David. My dude. Are you really taking the position that quality, attribution (and the related copyrights), and workers aren’t really important? Seriously, spare me. It’s about you, your insecurities, and your privileges.

Making an accusation like that about Johannes Link when he’s taken a very clear ethical stand is absolute and utter horse shit8. You just want to keep playing with your fancy little toys and you don’t want anyone to tell you it’s wrong. You don’t want to feel guilty. You don’t want to have to be burdened with the ethical and moral implications of your usage because you like it.

Well guess what buddy? It’s fucking wrong. The outputs be damned. The code be damned. All of it be damned because this whole fucking thing is gonna split and sink like the Titanic9. At that point you and your ilk will have to admit that you have been duped by this scam and have wasted god knows how many precious hours training your slop. You will have to consider your part in what’s been done to the current generation of programmers and the businesses and projects that have been afflicted by it. Programmers of renown, as opposed to jackasses like me, are among the must culpable for endorsing this madness.

Are these tools here to stay? While some speak as if it is inevitable, I simply do not agree.

The economics will be the first reality that comes crashing down for sure. It has not been demonstrated these industries can operate in a sustainable manner, period. It’s not granted that they will either.

Once the social psychosis wears off—and we’re already seeing this all over the place, the fact that ThePrimeagen is saying things like “I’ve come out the other side” tells you what we all think about this even when we don’t want to admit it—we’re gonna see if this was at all valuable. Maybe, just maybe, we also ask the question as cultures and nations, “Was the output worth the cost? Just because can, does it mean we should?”

When (hopefully) saner governments get involved and actual regulations come into play, how is that going to affect both the sustainability and the cost?

Also, where is the power going to come from? David, do you want a gas turbine polluting and powering one of the these data centers in your home town? I mean, if we’re gonna talk about “democratizing” anything, we should stop dumping the burden of these data center projects on small towns and poor communities where their government officials are selling out their water and power rights. Some communities, I guess, are more equal than others.

LLMs rely on the skill of humans to generate anything remotely useful. They cannot move forward without us moving forward. The skill atrophy and the “democratization” of utter fucking trash is adding more and more burden to the very skill players who are the most important fuel for these demonic engines10. How does this cycle actually play out long term? What happens when more slop is the training data?

Do you really think software is going to improve with these tools? Are the maintainers going to improve? This is all predicated on the belief that LLMs can only get better and better. I believe they have peaked and we’re going to feel the pain of diminishing returns. More hilariously, many of the tools that improve code generation from a couple years ago to now are less about the models and more about the regular old deterministic code that helps try to reduce the insanity.

If your faith in the “AI revolution” is based on the notion that this is just the beginning and that it will only improve, it is a vain faith.

But hey, who cares what I think? We can all compare notes after the bubble pops and the realities are laid bare. These problems have a way of sorting themselves out—sometimes in the form of the weakest and most vulnerable members of society being robbed and steamrolled while we debate over the merit of code generation.

Please though, don’t let me burden you with details like ethics. I mean, it’s not like DHH’s piece was trying to take an ethical… oh wait.

Bro, seriously? What the fuck?

Ask yourself, honestly, do you have values? Or just opinions?

  1. And to be clear, every last one of you corporate goons pushing this shit on your employees is indeed a huge piece of shit—as in feces. The stuff that comes out of a butt. 

  2. Really, I get no joy out of this at all. Rework is a great book. I used Ruby on Rails for years. This is a great fucking interview. I also know he hates microservices. Philosophically speaking, I almost always agree with DHH. I kinda get his idea about making code more accessible. Ruby and ActiveSupport were designed to fasciliate this. However, the similarities between this kind of work and LLM generated garbage are very surface level. 

  3. They’re looking smarter every day. 

  4. One may question me citing my own argument as a logical fallacy but, I mean, my premise is genuinely that DHH’s argument is absurd because it fucking is

  5. Let me be clear, I generally really enjoy his channel for what it’s worth. 

  6. Look, we can be friends. I have friends who adopt religions I think are a net negative, friends who embrace dangerous and oppressive political ideas, and friends I disagree with on many things. Guess what? While we’re friends, if you do things I think are repugnant I’m going to think less of you. Being friends will not stop my brain from making a bad notation in your file if you cheat on your spouse or entertain a conversation where invading Iran was the right thing for the US to do. Deal with it. 

  7. Sorry. This is the grift of the Silicon Valley tech scene right now. They’re fascists. If we don’t call them by their true names they’re going to continue growing. Yes, everyone can have an opinion. If your opinion involves oppressing other people and just generally being a fucking Nazi shithead, I’m allowed to hate your opinion. 

  8. This was “bullshit” in the first draft. I really wonder what in my brain decided, “No, no. This is not bullshit, it’s horse shit.” They’re very similar. 

  9. It does not fill me with joy that the IPOs are incoming. I hope none of you were too attached to your pensions or retirement accounts. 

  10. Also not hyperbole on my part. I regularly evoke allusions to demons and hell for a reason.