Dear Imaginary David

A few days ago I tried to write a letter to David. I never sent it, but here’s my draft:

Hey David,

I hope you’re well.

We’ve both been a part of the Ruby world since it was barely more than a mailing list. I remember you announcing Instiki there. I know you love Ruby just as much as I do, and are keen for it to thrive. Rails has been instrumental in achieving the progress between then and now, for which I am extremely grateful (not that you’re asking for thanks, but: thanks).

But I’m worried about our future.

In 2016 you wrote that we need “diversity of thought and people”. My guess is that when you wrote that, you were mostly thinking about technical ideas, and people from other technology communities, and people with diverse needs and aims for their software. I completely agree.

But I think it extends beyond that. I think we also need diversity of background, nationality, identity and ideology too. Those perspectives help us learn about our unknown unknowns. They help challenge assumptions we didn’t know we had. I don’t believe that software development exists completely separate from its environment, which includes the communities of people associated with it.

Later, you wrote:

This doesn’t come for free. It requires work to be welcoming. Especially if your goal isn’t just to attract more people who are just like the ones who are already part of the community. Lowering the barriers to entry is work we should always take seriously.

Again, I completely agree. But I am concerned now that we’re failing at this.

I’ll be direct: when leadership publicly defends positions that deny the basic dignity of potential community members — whether based on their race, gender identity, or background — it creates a hostile environment that no amount of technical excellence can overcome.

I know you might frame this as ‘diversity of thought,’ but refusing to tolerate racism isn’t intolerance, it’s the minimum requirement for an actually diverse community. A tent isn’t ‘big’ if it includes people who want to exclude others based on immutable characteristics. Seeing you empathise with Tommy Robinson — an overt racist and xenophobe — and suggesting that the colour of anyone’s skin should be a factor in their Britishness… it crosses the line from political disagreement into endorsing ideas that fundamentally exclude people based on immutable characteristics.

You bring up Denmark and Japan, but London isn’t ethnically homogeneous and never was. It’s been a global trading hub for 2000 years. More importantly, when you see a Black Londoner whose family came in the Windrush generation, or a British-Pakistani whose grandparents arrived in the 1960s, and think ‘not native’ because of their skin color - that’s not cultural anthropology, it’s racism. Would you tell a third-generation Japanese-American they make San Francisco less ‘native’?

I’m not interested in debating whether equating whiteness with native Britishness is racist - it definitionally is. The question is whether you want Rails to be associated with those views.

I’m not asking you to adopt any particular ideology. I’m asking you to consider whether defending racism is worth fragmenting the community you’ve spent 20 years building. Because that’s what’s happening, whether you intend it or not.

I know you value speaking your mind. But when the creator of Rails suggests that skin colour is a factor in who truly belongs in London, every Black and Brown developer has to wonder if they truly belong in Rails. That’s not a political opinion. That’s an existential threat to our community’s future.

You can dismiss this as ‘woke’ if you want, but that would be missing the point. I’m not interested in political labels. I’m interested in whether Rails remains a place where my Black colleagues, my trans friends, and developers from around the world feel they truly belong. Right now, your words are telling them they don’t.

I still believe in the vision of Rails you articulated in 2016 - a big tent with diversity of thought AND people. That’s a future worth building together. I hope we can.

Yours in love for our community,

James

I tried to be as clear as possible about my concerns, while also attempting to avoid any obvious ways for him to respond in the ways he typically does to criticism at the moment.

Some people might think I didn’t go far enough, didn’t object strongly enough to what he’s been doing recently, but I think it’s pretty good.

But as I said above, I didn’t send it. Because I already know how he’ll respond. It’d be something like:

James,

I appreciate the thoughtful note, even if I fundamentally disagree with your characterization of my writing.

First, I never “empathized” with Tommy Robinson. I observed that dismissing millions of people’s concerns about rapid demographic change as simply “racist” is intellectually lazy and politically counterproductive. You can recognize that people have concerns without endorsing every person who shares those concerns. This kind of guilt-by-association reasoning is exactly the problem with current discourse.

Second, noticing that London’s demographics have changed dramatically isn’t racism - it’s observation. When a city goes from overwhelmingly one demographic to majority another in a generation, noting that change isn’t racist. It’s factual. The fact that you can’t distinguish between observing demographic reality and “denying basic dignity and humanity” is telling.

The real fragmentation in our community isn’t coming from me expressing opinions on my personal blog. It’s coming from people who demand ideological conformity and label any deviation as “racism,” “transphobia,” or whatever term shuts down conversation most effectively.

You say you want a “big tent” but then immediately define the boundaries of that tent as excluding anyone who doesn’t share your particular view on immigration, demographics, or gender ideology. That’s not a big tent - it’s an ideological filter that happens to use the language of inclusion.

Rails has thrived for 20 years with me being exactly who I am. The code doesn’t care about my opinions on London’s demographics. The framework doesn’t discriminate. Anyone can contribute, regardless of their background or identity. That’s actual inclusion - judging people by their contributions, not their adherence to political orthodoxy. If developers are really choosing technology stacks based on the personal politics of framework creators, then they’re making technical decisions for non-technical reasons. That’s their choice, but it’s not one I’m going to enable by self-censoring.

The Rails community IS strong enough to include people with different political views. The question is whether you are.

P.S. - You say you’re “not interested in political labels” right after labeling me as defending racism and xenophobia. The lack of self-awareness is remarkable.

In other words: it’s me and the people who think like me who are the problem, not him; we are the people who are trying to enforce an ideology, and he simply will not bow to any attempts to tell him what he can and cannot think and say.

He’d say his writing is merely observation, and my objection to an observation is a clear attempt at mandating some set of limited, permissible thoughts.

Side note: his writing about London is most definitely not merely an observation; he makes the argument that Britain is surely a kingdom primarily for the Brits, and while he never explicitly writes it, his definition of “the Brits” means “native Brits” and by “native Brits” he means “White Brits”, and anyone who tries to argue anything else ought to read the piece and its citations more closely.


But the post about London is just one example. He’s written about body size, ADHD, mental health, all with similar angles. I don’t know why he cares about this subjects; maybe they are just intellectual sport.

But yes, it’s his personal blog and why should it be relevant if he is the leader of a community? Nobody is forcing us to read it, right?

Above, I tried to make the argument less about any particular politics, and instead focus on something I think he cares about: the Rails community. I wanted to know what he thinks the “Big Tent” actually means, because it feels like we have different ideas now.

I didn’t send it, because I think I already know the answers.

I think his idea now is simply that it’s his party and anyone can come through the door, but he’s the DJ and if they don’t like the music then they’re welcome to leave.

I don’t know anymore who he means when he says he wants to attract people to Rails who “aren’t just like the ones who are already part of the community”. I think his view of the Rails community basically means “the people who stuck around on X after Elon”, and everyone else has been lost to the “woke mindvirus”.

Thank goodness for his offer of “amnesty” though, right?

I don’t know what sort of “work” the 2016 version of David believed was required to keep the Big Tent functioning, or if his definition of that work has changed since. But it’s my belief that the “work” involved is exactly the kind of efforts that he now seems to joyfully cast off.

It’s the work of empathy and reflection. It’s about creating demonstrable consequences for behaviour that shouldn’t be tolerated, not unenforceable puff statements which dodge any responsibility for the real work of keeping a space safe. Yes, I’ll say it: the Ruby & Rails codes of conduct are barely worth the bytes they take up. Toothless and vague, they exist only to dodge the actual hard work of maintaining a community. MINASWAN in clause form.

These days, David seems more concerned with the principle of True Free Speech than actually thinking about the impact of his words on people, especially those unlike him. Would that we were all tall, beautiful multi-millionaire racecar drivers able to find spiritual fulfillment by pursuing passion projects on a whim. Who really needs theraphy or medication or some sense from society that they aren’t deviants or physically repulsive, after all. Not I!

Real diversity: Whoever shows up is welcome.

Real equity: We all help carry the meaningful burden.

Real inclusion: Your political opinions are your own.

But what he fails to realise is that sometimes “whoever shows up” actually means “whoever can tolerate the environment you’ve created”. I’m not going to go to a party if the host’s buddies are sticking their dicks in the mashed potatoes and the host doesn’t care to do anything about it.

[…] the same camp have tried hard to redefine “inclusion” as excluding and banning people, and “diversity” as strict adherence to a single ideology.

What you’re talking about here is the paradox of tolerance and, my friend, you’re on the wrong side of it.

I think David simply doesn’t care about making the Rails community appealing to anyone anymore.

He likes to say that people label him as a nazi because he chooses to use “master” instead of “main”, which he views as defending himself against a woke mob, hell-bent on controlling his every thought. Thank goodness he’s freed from those suicidally-empathetic linguistic shackles.

There can only be forgiveness for those who repent.

Tell me again how it’s not you seeking ideological dominance?


Anyway, so then I thought about taking a different tack. What if I simply ask him two questions:

  1. Do you understand why some people read what you wrote as racist?
  2. If people believe what you wrote contains racism, is that important to you?

Taken in good faith, I think the answers to those questions would be very telling, but again, I don’t think they’d be taken in good faith. I think the response would be something like:

The real question isn’t whether some people see racism where I see demographic reality. The question is whether we’re going to let the most sensitive interpretation of any statement define the boundaries of acceptable discourse.

I’ve built Rails to be technically excellent and completely open to contributors of all backgrounds. My personal observations about London don’t change that. If people want to conflate the two, that’s their choice, but it’s not one I’m going to validate by apologizing for having eyes.

Another dodge, so what about:

David, if someone could prove to you that what you wrote what racist, regardless of your intent, would you want to know?

And the response I imagine:

That’s like asking “If someone could prove to you that 2+2=5, would you want to know?”

(Editors note: yes I would!)

The premise is flawed. “Racist” has become so diluted that it now includes observing demographic changes, preferring certain cultural norms, or questioning immigration policies. By that definition, most of human history is racist.

What you’re really asking is whether I’d submit to your particular definition of racism, which apparently includes noticing that London’s demographics have changed. I reject the premise.

Intent matters. Context matters. If racism means “treating people differently based on race,” then I’m not racist - Rails is open to everyone. If racism means “noticing that societies change when their demographics change,” then the word has lost all meaning.

Rather than answer the question, attack the premise, attack the definitions, reject the framing; anything to avoid having to actually engage. “These labels have lost all meaning!”


Through all my imaginary discussion here, I’ve come to believe that it’s pointless trying to engage in conversation about this. He believes I, and people like me, are ideologically “captured”, too stuck to a particular view of what’s right and wrong and too invested to change our minds (or too scared to step “out of line” with some imagined woke orthodoxy). But I (and people like me) believe that he is ideologically captured; contrarian to a fault, anti-liberal, fixated with his victimhood during a shadowy liberal power grab and entirely unreceptive to actual constructive criticism of his beliefs and actions.

Let me be clear: I have no agenda here. I’m even prepared to defend some of the stuff that that often gets tossed around in conversations about this, like the “Fuck You” slide. I was there, I know the context, and I agree, it’s more often than not mis-cited.

I don’t want power, I just want to be able to ignore your politics as successfully as you have been able to ignore those of your employees. But you voice in our community is… god DAMN it’s REALLY LOUD, regardless of whether or not its on your personal blog.

David, I’m not calling you a Nazi. I haven’t even called you a “racist”. I haven’t called for you to be “cancelled”, nor ousted from Rails. Thank you for your open source gifts.

But you did write something that made a value judgement (“nativeness”) about the colour of someone’s skin. That’s definitional racism and it fuckin’ stinks.

We’re at an impasse. I’m glad you’re enjoying your party though.