DHH: "Open source hooliganism and the TypeScript meltdown"

Roger Stringer Roger Stringer
September 08, 2023
5 min read
DHH: "Open source hooliganism and the TypeScript meltdown"

David Heinemeier Hansson (DHH), in reply to the overall response to Turbo removing TypeScript:

I've seen a lot of true believers argue for virtues of their favorite paradigms and methods over the decades working in software. And mostly, I look at people with a passionate preference and smile. Isn't it great that people care so much about their craft that they volunteer to extol the benefits of their favorite tools! Yes it is, but there's also a fine line between being a passionate evangelist and becoming a dogmatic crusader. And a sad but critical mass of the TypeScript faithful chose the latter in response to our decision to drop their beloved compiler from our project yesterday. It was at times a full-on meltdown. Yuck.

Now before we go into the particulars of this meltdown, it's worth stating that there were also people with completely legitimate objections to dropping TypeScript from Turbo. Mostly people with standing as active contributors or users of the framework. I'm always happy to have technical discussions in good faith with such individuals, and they're certainly entitled to their opinion on a move like this without getting tarred by association with the hooligans who showed up spoiling for a fight.

But the brunt of the debate was carried by people with absolutely no stake in the particulars of Turbo. People who showed up to crusade for a narrative that tells them only the incompetent or the malevolent would deny the divine glory of their superset. To defend the honor of TypeScript, which they had somehow found besmirched by someone on the internet not being as enthusiastic about the language extensions as they are.

This lead to several ridiculous pull requests for "adding TypeScript back!", complete with the pile-on rush resembling those trashing the streets after their favorite sports team lost a match. The jeering and the emojis and the rockets and the LGTMs!!! There was even a pull request for deleting the Turbo repository altogether. And an issue to have me, personally, removed from the project that 37signals founded, funded, and continues to be the primary maintainer of. Alongside other issues just chanting slogans. Just absolutely unhinged open-source hooliganism.


It's also not like I hold myself above the fray in all regards. I certainly used to dance the line between evangelist and crusader, particularly in the early days of Ruby on Rails. But even so, would have found it absolutely inconceivable to show up in someone's open source repository to deface its collaboration organs. This is a new variety of open source advocacy that, as I said, resembles hooliganism more than it does even 1990s newsgroup console superfans and their flamewars. And it's entirely unbecoming for a profession like ours.

I expect that most anyone with a genuine care for TypeScript will in a few days or weeks be able to look back at this meltdown with more than a little ambivalence, if not shame. To have so many key advocates engage or encourage this kind of behavior, this kind of slander, and this kind of hooliganism against those who don't share their team colors is frankly embarrassing.


That's the eternal wisdom of bikeshed parable. That when the stakes are low, the debate more easily becomes nasty. Showing up for a fight on something so ultimately unresolvable as whether to use compiler-based type checking or not offers the thrill of hooliganism. An opportunity to let the inhibitions drop and the freak fly, for a moment, for a single match, which will be repeated in season after season until the end of time. It's the exercise of the Id.

Look, I'm happy if you found your true calling in TypeScript. I really am. I'm an unapologetic superfan of Ruby. But please, for the love of open source culture, find another way to express your enthusiasm than by defacing collaboration organs or slandering those who JavaScript differently with accusations of incompetence or malice.

Do you like my content?

Sponsor Me On Github