Rails Needs New Governance

13 min read Original article ↗
The title card of Tom Stuart’s presentation, The DHH Problem.
The title card of Tom Stuart’s presentation, The DHH Problem.

Ages ago, when I was still a student, I taught myself Ruby on Rails for my senior thesis and fell in love. Fifteen years later, and I’ve used Rails at every job I’ve ever held in the tech industry. Fifteen years, and I still love Rails! But there’s something rotten at its core, and we share a name.

The DHH Problem

Back in 2014, Tom Stuart delivered a pithy yet salient lightning talk at the Scottish Ruby Conference titled The DHH Problem, in which he succinctly describes the character of David Heinemeier Hansson, the creator of Rails. I recommend watching it because, in just three and a half minutes, he effectively provides context on who DHH was, who he still is, and why his future shift to the right would make so much sense and be so unsurprising. But, if you’d rather not, I’ll include a transcript below:

DHH is an intelligent and successful person. DHH invented Rails, and now I can get paid for writing Ruby, even though I enjoy it. So: thanks, DHH (sincerely). But, there’s a problem. DHH is “Ruby Famous”, which means that DHH is extremely visible (some might say disproportionately visible) in the Ruby community. Why is that a problem? Because DHH is the Fox News of Ruby.

He’s noisy, he’s reactionary, he’s anti-intellectual, he’s very sure that he is right, and he enjoys being rude. [Tom cuts to a photo of DHH delivering a conference talk in 2006, standing in front of a slide that just says “Fuck You”] That was eight years ago, but things haven’t changed much. Just like Fox News, DHH appeals to “common sense” and makes a show of being “fair and balanced” but, in reality, his arguments use aggressive rhetoric and rely on a fixed viewpoint.

To paint a topical example, is TDD hard in Rails apps because TDD is dead, or because Rails makes TDD hard? Is TDD not worth the effort because TDD is dead, or because the complexity of software can be managed more effectively if you only work on one product for which you control the requirements? If we only listen to DHH, then we’ll never know, because DHH is just one person and he only has DHH’s experiences.

All I’m saying is: the Ruby community is large and diverse and thoughtful, and that is why I love it. Please listen to DHH: his experiences are valuable. But DHH does not speak for me, and he probably doesn’t speak for you. My personal preference is for a bit less of this [Tom cuts back to the photo of DHH’s “Fuck You” slide] and a bit more of this [he then cuts to a different man delivering a conference talk, standing in front of a slide that says “What others do may be the stimulus of our feelings, but never the cause.”]

Please give DHH’s opinions the weight they deserve: they are what one man thinks. And if you disagree with him, please speak up—write a blog post, give a talk, create a web framework—so that we can all learn what the world looks like to you.

That was eleven years ago, but things haven’t changed much. DHH is still noisy, still reactionary, still anti-intellectual, still very sure that he is right, and still enjoys being rude. You need only look at his personal blog to witness this yourself, but doing so isn’t for the faint of heart; this iteration of DHH’s blog on Hey World started a mere four years ago but, in that time, he’s written 476 posts on a variety of topics. That’s too many posts for a deep dive, but the broad trends show a reactionary who has moved, at times steadily and at times quickly, to the far right.

Early on, DHH comes off as a man who held a variety of political beliefs. He would write about the dire state of our climate and then, a couple weeks later, drop hints of an increasingly present narrative around cancel culture. Early posts on this blog tended to follow a theme of his “natural political stance” ostensibly being left-leaning, while being open to right-wing views as a way to “find common ground”. I’ll be honest and say that I’m not sure I believe that he was ever truly left-leaning. My own observations show someone who is fairly centrist or even slightly right of center, which tracks with what standard Liberalism has become in America.

Over the next few years, we’d see posts from DHH covering a range of far-right talking points: anti-wokeness, anti-DEI, free speech absolutism, support of figures who range from right-leaning (like Joe Rogan) to far-right (like Andrew Tate or Jordan Peterson), to anti-trans fearmongering, all the way to outright nationalism (this post may seem innocuous on its face, but hints at his inability to recognize hate speech as violence and includes the common dog whistle of countries having a “strong national identity”). He rails against finding beauty in diversity rather than what’s “normal” or in people of all sizes, then cheers when companies cave to the conservative backlash against DEI and stop celebrating that beauty. But what I find most indicative of DHH’s shift (whether towards the right, or towards honesty that he’s always been on the right) comes from a quote in one of his earliest posts on this blog, Legacy without nostalgia:

I’m just not a nostalgic person. In fact, I’m deeply skeptical of nostalgia. It too often feels like a trap to romanticize the past at the expense of the future. If you fall in love with who you once were, it’s too easy to forget to keep going. I want to keep going.

This is deeply ironic given just how much DHH thirsts for nostalgia in his later posts. He frequently yearns for the world of the past, especially the 80s (but not the 90s, which he hates), before all of this pesky talk about DEI, before cancel culture, before “pessimism”. But no post encompasses this hypocritical desire for nostalgia more than his essay from a few days ago, As I remember London, a post which is quite simply fascism on full display.

The fascism of DHH

Some people really don’t like it when you throw the word “fascism” around or call people a fascist, and there are many cases where its usage is undue. This is not one of those cases. There is a long history of attempts to coalesce definitions of fascism (many of which delve into extreme nationalism), but I like Roger Griffin’s definition, which he argues can be condensed into one sentence:

Fascism is a political ideology whose mythic core in its various permutations is a palingenetic form of populist ultra-nationalism.

That’s admittedly a dense sentence, so why don’t we unpack it a little bit, starting with Palingenesis being the concept of a rebirth or recreation. Fascism has an obsession with a cult of national purity and the idea of a mythic past that must be returned to through some form of national rebirth (palingenetic ultranationalism). Fascists will attempt to paint their nation as humiliated and threatened on the global stage and that it must be reborn through a populist, revolutionary, nationalist movement. This is a style of politics, not a form of government; a process, not an end result (even if the end results tend to be similar); and “As I remember London” fits this bill.

This post echoes that myth of a golden past, of London in the late 90s, and very quickly claims that London has strayed from it because “it’s no longer full of native Brits” in his view, citing statistical changes in London’s ethnic groups. This is an obvious and purposeful feint that equates “native Brits” with “white Brits” and falls into the fascist rhetoric of their national purity suffering as a result. DHH’s entire post is a subtextual frame for the hope that Britain can experience a national rebirth and return to a time of white purity.

After citing those statistics, DHH lionizes Tommy Robinson, calling his recent march “heartwarming”. Robinson is one of Britain’s most prominent far-right activists (with a string of multiple arrests and convictions) and has been involved in several hate-based organizations like the English Defence League, Pegida UK, and the British Nationalist Party. He cites misleading reports of “Pakistani Rape Gangs” despite later research making it clear that the majority of group-based child sex offenders are white. DHH’s quick reinforcement of his support for Graham Linehan (the notably anti-trans Irish comedian) is disgusting icing on an already disgusting cake.

DHH takes this growing multiculturalism in Britain and uses it to stoke fear of the same thing happening in Denmark, and Steve Klabnik was quick to notice the ridiculousness of saying that there’s “absolutely nothing racist or xenophobic in saying that Denmark is primarily a country for the Danes, Britain primarily a united kingdom for the Brits, and Japan primarily a set of islands for the Japanese” and, worse, how that verbiage disturbingly echoes the sentiments of the Ku Klux Kreed (America for Americans)

Something needs to change

This post was my breaking point. This post is why I’m here right now, writing something much longer than the social media quips I’ve written over the years in response to his ongoing descent into far-right white nationalism and fascist rhetoric (again, nationalism is the bedrock of fascism). Every time DHH spews a new piece of hatred, he alienates people that slowly decide to leave the Rails or greater Ruby communities. But I’ve noticed another common response over the years—often from multiple people—every time there’s a new controversy: “Wow, I had no idea DHH went fully mask off.” There’s a clear lack of awareness. Or, worse: people simply forget.

“As I remember London” should be a wake-up call for everyone in the Ruby and Rails communities. This is not a man who wants to keep going. This is a man who romanticizes a past that was predominantly good for white men. This is a man who has spent years railing against diversity, equity and inclusion and who spreads anti-trans rhetoric. This is a man who is deeply afraid of immigration changing countries’ cultures and “national identities”, despite this kind of change being a constant for the whole of human history. This is a man who is a white nationalist. And he is in sole control of Rails, this framework we all love.

There’s a growing discontent that I see on social media over leadership in Rails, most of which comes down to DHH’s continued involvement, waning trust in the organizations who continue to platform him (like Ruby Central), and the problematic reality of how much Ruby and Rails is beholden to Shopify money. But what’s the answer? What can we reasonably change? I don’t know! It doesn’t help that, as I was nearing the end of this post, yet another Ruby Drama unfolded live on social media. This latest drama (in a community that has a long history of drama the likes of which I’ve not seen in any other programming community) is that, over the course of the last week and a half, Ruby Central forcibly took control of the rubygems.org codebase on GitHub and revoked access from all of its maintainers in a massive shift of governance that came without advanced warning or communication of any kind. They responded several hours later with some very hand-wavey corpospeak describing their motive of “a fiduciary duty to safeguard the supply chain and protect the long-term stability of the ecosystem,” but Joel Drapper’s summary makes it clear that this came down to Shopify taking advantage of funding being pulled from Ruby Central due to their continued relationship with DHH. The whole situation has reeked of incompetence and I’ve lost any trust I had left in the organization, which had admittedly become very little. I’m tired of a lack of transparency from our community’s unelected leaders and board members. I’m tired of the vagueposting that makes it impossible to decipher what events like these are truly about. I’m just so tired in general, and now I’m thinking not only of Rails’ governance, but governance in the greater Ruby community as a whole.

I appreciate a lot of the work Ruby Central has done over the years in stewarding important projects and infrastructure that are central to Ruby and Rails, but we need something that is beholden to the community rather than a board of appointed officials who can become beholden to corporate sponsors. What I’d prefer to see is something more akin to a co-operative. What if we had a public organization with open membership (whether via dues or some other mechanism) and democratically elected leadership? I would feel much more comfortable with that kind of organization maintaining and stewarding important projects like RubyGems, Rails, Rack et al. and a democratic process would abate a lot of my negative feelings around our current state of corporate sponsorship in Rails.

At the same time, I recognize that this kind of change would be incredibly difficult. I don’t think there’s any chance of removing DHH from Rails, and I can’t see him stepping down of his own accord. He owns the copyrights to Rails, he’s the founder and chair of Rails’ current governing body, the Rails Foundation, and—despite his open politics—he continues to be platformed. He’s invited to speak on podcasts. He’s invited to speak or keynote at conferences. Even Ruby Central invited him back for the last RailsConf earlier this year after he threw a hissy fit over being asked to cede the keynote stage in 2022. Rails core members and organizations like Ruby Central continue to work with and collaborate with him closely and, though many have walked away in recent years, I wish more would follow. I get that doing so is an incredibly difficult decision to make, but people have had years to distance themselves from this man. But they don’t, so Ruby and Rails continue to be directed by far-right sympathizers like DHH and Tobi Lütke (and their money). And all of this is allowed because Ruby and Rails have a code of conduct that purposefully falls prey to the paradox of tolerance.

But is difficulty really an excuse not to try? Maybe, just maybe, we can do something about this. As I mentioned before, many prominent maintainers of projects like RubyGems and Rails have already stepped away due to ideological issues with DHH and RubyCentral. What if they were be open to returning with new governance? Of course, the unfortunate nature of copyright and current ownership means we would likely be facing a number of community forks (at the very least for Rails, and quite possibly for RubyGems as well), but community forks need not be doomed to fail! Starting the right conversations with the right people early on can do wonders for momentum. So, why collectively settle for this? I have to believe that we can do better than the leadership we currently have. We can do better than the Fox News of Ruby.