Linus Torvalds recently wrote a long rant rejecting a patch. Read it now.
Fellow Mozillian Nick Nethercote commented on that rant. Now read that.
I began commenting on Nick’s post, but my thoughts spiraled. And I’ve been pondering this awhile, in the context of Linus and other topics. So I made it a full-blown post.
Ranting is sometimes funny
Linus’s rants are entertaining, in a certain sense: much the same sense that makes us laugh at a teacher’s statement (to a student, if an odd one) in Billy Madison:
What you’ve just said is one of the most insanely idiotic things I have ever heard. At no point in your rambling, incoherent response were you even close to anything that could be considered a rational thought. Everyone in this room is now dumber for having listened to it. I award you no points, and may God have mercy on your soul.
We’re entertained not because we approve of the teacher’s (or Linus’s) rants. We laugh because they’re creative. (Linus’s rants are creative, if not screenwriter-creative.) The flame can be an art form, even to flame war participants. My college dorm mailing list had regular flame wars (sometimes instigated or continued by regular trolls). I hated flame wars as a freshman. But eventually I grew to appreciate the art of the flame. In utter seriousness, that learning process was a valuable part of my college education, as it’s been for others.
(Yes, Billy Madison is low-brow humor. So are Linus’s flames, as entertainment. Not all humor must be high-brow.)
Even funny ranting is sometimes bad behavior
We also sometimes laugh because the behavior’s bad. (Humor’s core, I think, is a contradiction between expectation and reality. I highly recommend Stranger in a Strange Land for, among other things, its meditations on the nature of humor.) That’s one reason we laugh at the Billy Madison teacher-student interaction (allowing for its fictionality), and at Linus.
But somewhat pace Nick, I absolutely cannot equate laughing, or being entertained, with approval or celebration. This and this don’t celebrate ISIS, no matter ISIS appalls us. Naming Linus’s mail an “epic rant” doesn’t celebrate it. It’s just a description of five hundred over-the-top words when fewer words and less drama would have been better (as Nick observes). (At least one place calling the rant “epic” also linked this ironically-abusive decrial.)
Linux thrives despite Linus’s behavior, not because of it
Many of Linus’s rants are unacceptable. (I’ve seen a few that were overheated but not abusive.) Many developers weather them. But some developers have left the Linux community in response, when they wouldn’t have for gentler criticism. That’s a problem.
Linus gets away with bad behavior because: he’s abusive just infrequently enough; Linux has unusually high technical barriers to entry; it’s indispensable to many companies; and those companies fund development no matter Linus’s behavior. Linux led by Linus would have died already, absent these considerations. Linux is one of very, very few projects that can survive Linus’s abusiveness.
Linus is still very smart, and his rants can be right
I often recognize reasonable technical criticism beneath Linus’s rants. Regarding this patch, Linus is right. The proposed changes are harder to read than his suggestion — I’d reject them, too. I don’t agree with every Linus rant. But it’s normal to sometimes disagree even with smart developers.
What’s not normal, is being required to sift through abuse for usable feedback. It’s a skill worth having. If you can weather excess criticism from a coworker having an off day, you’ll be more productive. But it still shouldn’t be necessary (let alone routine), especially not for new open source contributors.
Conclusion
Linus is really, really smart. Because of that, and because Linux is really valuable, Linus unfortunately can keep being Linus. Barring a strongly-backed fork, nothing will change.
It’s one of the weaknesses in the open-source community, I think. To become a successful project, it helps a lot to have some strong-willed individual to provide governance – we see that with joke-titles like Python’s “benevolent dictator for life”. But such people aren’t always *nice* people… by nature, they’re dominant sorts, because that’s how they ended up running a project, but that doesn’t mean they’re well suited to managing people. Some are, some aren’t… and I do think Linus tends towards the latter…
Of course, I’m not suggesting that such people don’t exist behind the closed doors of the commercial, proprietary world – they certainly do. But in that environment, they’re usually kept somewhat in check by HR processes – no matter how skilled they might be, someone who goes around bullying co-workers is a liability, and won’t last long. I sometimes question the value of HR teams, but that’s one thing they tend to do right…
Comment by Simon — 05.11.15 @ 16:53
People who bully co-workers have done quite well in the commercial world. Bill Gates, Steve Ballmer, Larry Ellison and Steve Jobs spring to mind.
Comment by Robert O'Callahan — 06.11.15 @ 03:23
Its not about bullying per se but about establishing dominance. Heck some people are extremely nice yet recognize the need for that.
Think about it this way:
I’d rather have a nice guy behave like an asshole and make things right rather than an asshole behaving as a good buy and make things shitty.
Comment by bo — 07.11.15 @ 22:10
I reject your false dichotomy, bo. 🙂 The project maintainer who says “I won’t take this patch” establishes dominance equally well as the maintainer who further says that anyone who likes the patch is “incompetent”. Similar toning down would work just as well for Linus’s warning that similar code is equally unacceptable. (And in the latter case might even be clearer. As I reread his second-to-last paragraph, I’m honestly not sure what precisely he’s calling out. Is it obfuscatory overflow-handling coding style in general? [Tho I doubt many overflow-helper-addition functions are ever proposed.] A little less pepper, and maybe the precise meaning would have been clearer. The only alternative I see would be a warning against bad patches generally — but then the warning is almost tautologically unhelpful.)
Comment by Jeff — 08.11.15 @ 03:07