Abuse is indefensible

This post is entirely my personal opinion.

Linus Torvalds wrote a 541 word abusive rant about two lines of code he didn’t like.

J. David Eisenberg rewrote it to show how the same opinion could be expressed in an equally direct, but non-abusive fashion. At 180 words, it’s almost exactly 1/3 the length of Linus’s original, and much clearer.

As a complementary exercise, I extracted the overtly abusive parts of Linus’s text (103 words) and put them here. (Coarse language alert!)

I consider this kind of abuse indefensible. Nonetheless, I’ve seen multiple people defending and even celebrating it. (One outlet called it an “epic rant”.) Of the many things I could say about this, I will say just one: sadly, I am certain the reaction to this text would be entirely different were it written by a woman.

I will moderate the comment thread below this post with enthusiasm. I won’t hesitate to delete comments that are hurtful, abusive, or otherwise objectionable to me. Please think before commenting.

48 replies on “Abuse is indefensible”

Coincidentally, I discovered these overflow-checking functions yesterday and was thinking of using them heavily in some imported code I’ve been maintaining lately, that contains many unchecked operations.

‘if (overflow_sub(a,b,c)) {FAIL}’ seems clearer to me than ‘if (a<b){FAIL} c=a-b', as it performs the fallible operation once, and we catch issues afterwards (intuitively, it should be faster too, as overflows are always recorded by the CPU anyway) — but I'm willing to discuss all this in a civilised manner, especially since I have no experience with this yet.

So, more on topic, I agree that abuse is never the answer. I guess some people try to excuse it because it's not physical, even though it may impact others just as much.

There’s a saying: “If you’re the most powerful person in the room and someone behaves badly, if you don’t address it then you’re implicitly condoning it.”

I guess a corollary to this is: “if the most powerful person in the room is behaving badly then all bets are off”.

Yes. J. David Eisenberg made a very nice rewriting. Having strong opinions do not grant you the right to be aggressive to this point. It makes me sad each time I see this. It’s the geek tough skin culture. If we do not have one, then we are welcome to the game. Sad sad. We can identify this kind of behavior everywhere.

Usually, I just want to move away from the project when this happens, which in return reinforces the old club lockers room smell. :/

I completely agree.

I don’t see that kind of behavior around Mozilla and I’m very glad about that.

Which would explain the recent decline of Firefox and the steady rise of Linux in terms of performance, focus and quality.

I do a lot of code reviews and reject sub-standard code all the time. But unlike Linus I can do it without being an offensive jerk.

I have been a user of Linux since the late 90’s, and a lurker in the dev forums (I mostly work with Python/Kivy, now), and this abusive behavior has nearly made me give up the OS. At least the BSD communities are considerate. The abuse is indefensible, and destructive to the open source community.

I guess you haven’t been to OpenBSD community, discussing the fine points about such new code with Theo DeRaadt. 🙂

But the truth seems to be, to steer a big project successfully, it takes some rough actions to keep everything in check. If the leader of such projects knows their stuff, there’s no room nor need for polite discussions on simple matters, otherwise it’ll be an endless debate and the project grinding to a halt.

A comparable example might be a benevolent dictator vs full democracy, the former being absolutely the most efficient way to get things done. And in these software projects, it’s still only software, and for the greater good of the community.

I have great respect for both Linux and OpenBSD leaders, even if there’s some overreactions and harsh words every now and then. They have long history of getting things done, with no comparison that I can think of at the moment, with regard to the popularity, quality, size and the age of the projects.

“to steer a big project successfully, it takes some rough actions to keep everything in check”

I think you’ve *entirely* missed the point of David’s rewriting, which is that you *can* be clear and direct and authoritative without being abusive. Abusive behaviour drives people away.

Sorry, it’s sometimes difficult to find the correct words, English is only my third language. Neither is it the first one for Linus.

But yes, I agree, they are often rude, and could improve on that with minimal effort.

But they a quite some personalities, with real character and edge. And they can get carried away while in the zone, focusing on hacking furiously with endless enthusiasm for their baby projects. But it’s not personal, they really don’t intend to be mean on purpose, it just comes out like that while focusing on the software that matters, not the people or anything else.

That’s what keeps the projects rolling. In many successful projects, whether open source sw, private companies, government offices, or whatever, the managers that get the most results are often not “nice” or “polite”. They focus on the tasks, and do what they need to do to get things done. Yet people still respect them, because they understand they are there for the results, not for being “nice”, and they understand the points made by the managers, and the success they are heading to.

It would be impossible if the leaders needed to hold hands and put great effort to be nice and explain their decisions to all the millions of newbie contributors/workers all the time, through the decades. If something inappropriate still ends up in their hands, after being filtered through all the lowers layers of pre-screening, reviews and processing, it’s their job to put a decisive end to such things swiftly and efficiently, not to care how it might have happened, but just get done with it. Sometimes such guidance doesn’t look nice, but it gets the point through loud and clear.

Ps there’s also some interesting comments made by Theo and Linus about each other’s projects. Some may consider them offensive, others maybe funny.

[An abusive, low-quality comment was here. I’ve removed its text, but left this here as a placeholder for the responses. You don’t need to have seen the original comment for the responses to make sense.]

Wow, you just couldn’t resist being the troll?

Let me break this down for you. When you give in to your own feelings of offense about a bad code submission you lose focus. It makes it harder to clarify why the code is bad and how best to avoid writing bad code (i.e. using non-standard functions). Also, it turns the situation into an antagonistic one where future submissions are likely not to occur from that specific person (could be good, could be bad, it depends on if the submitter in general is deliberate in submitting bad code). Plus, it marks you as unprofessional. Linus can get away with that since he created the project, but I’m sure in unrelated projects he’s not welcomed.

As for this rant about censorship and the like. Let me just stop you right there. It’s not censorship, ever. A private individual telling you that your comment won’t be allowed if they don’t see it as acceptable doesn’t come close to having a State or corporation blocking you at every turn from communicating your ideas. This hyperbole seems to be more common these days since so many folks (be it *channers or Reddit users) feel entitled to post any and all thoughts without interference. When the blog is yours then you can post whatever you like but as long as this is Nethercote’s blog then we’re all guests, so be a good guest like the rest of us.


Sorry, I just don’t agree that this counts as abusive (or aggressive as another comment stated). “Offensive”, maybe, but then again many things are to different people. Everyone has different tastes and different ways of expression. I’m not personally in favor of the communication style Linus uses, but it’s his business, not mine. I personally prefer the path of politeness, but that’s just me.

So if someone spoke to you like that in person, you’d just say “hey, that’s your communication style” and be totally cool with it? I think not.

After reading what Linus wrote, his remarks are not abusive. Considering his position within the Linux community and what he is responsible for, his remarks are strong, concise and quite frankly honest. Linus appears to have a certain level of standards & expectations for developers contributing to Linux. His analysis of the code in my view is acceptable and his point is well made.

> I am certain the reaction to this text would be entirely different were it written by a woman.

I don’t see how anyone can be certain about an assertion like this. The reaction might have been entirely different if it were written by anyone (yes even males) who isn’t Linus Torvalds. It might have been entirely the same.

What if, say, Dr. Lange (unlikely, as she works with cryptography not operating systems) had written this email and the reaction had been the same? Would you be so certain?

Linus is being a bit of a dick, but I don’t see how gender really enters the equation here at all.

But Linus is not a woman (your choice of words). If Linus would have been the sort of person you describe, he very likely wouldn’t have gotten Linux to the point it is now. Linux is not designed by committee, or politics, or compromise and consensus. At least, not completely, though probably much more so now than in the early days. Some projects might benefit from the consensus approach, and some projects require a “ruthless dictator” to get anything done. Most great accomplishments in history have been achieved by the latter approach. Change through struggle versus peaceful stagnation.

This whole “I’m so offended” political correctness debate is ridiculous, the man is an adult and is entitled to say what he wants the way he wants, even if it is sometimes Monty Python-esque. He has as much right to be himself as anyone else.

You don’t want freedom; you want your kind of freedom. And filter anything out you don’t like. I understand what you are saying, but I disagree.

I think that this is a case not of someone needing sensitivity training but of someone needing training to be less sensitive.

If you’re offended by this, that’s your neurosis at work, not Linus’.

What shall we do with Linus then?

What shall be done to anyone who you believe is verbally abusive?

If someone I managed spoke like that to contributor, I would reprimand them. If they did it repeatedly, I would consider firing them.

Well, you can’t fire him from his own project, so the next best thing would be to boycott it. Get a bunch of Linux kernel developers to abandon ship and work to make FreeBSD better instead. Or OpenBSD. Or NetBSD. Or DragonflyBSD. Et cetera.

linus doesn’t pay anyone, so he’s completely immune from work protection laws regarding workplace harassment, etc., so he can do whatever he wants and deal with consequences to just his and his product’s popularity.

so far, end users have voted with their feet to stay, and the purported victims of linus’s incivility haven’t even made noises about forking the kernel.

only pundits and wannabe pundits (i.e., the professionally outraged) seem to care, and none of them have the skills and reputations to make viable alternative free products.

Products like the linux kernel demand correctness to a unfathomably larger degree than diversity of opinion/developer background or consensus among contributors of dramatically differing skill/experience levels.

When mistakes caused by cavalier attitudes can have unforeseen consequences for literally billions of people, it’s laughable to prioritize developers’ feelings over getting the message across that careless decisions cannot be tolerated.

Do people think that for example women using Android phones care more that open source developers making the software were nicer so that more women might be interested in contributing, or just care about the stability of the platform?

Linux don’t have salaries from Linus at risk when they make poor choices, so public disparagement is one of the few anti-incentives available to discourage poor contributions and keep the development moving as smoothly as possible.

The core kernel development team doesn’t need to be very large, and “inclusiveness” and “sensitivity” are false gods distracting parts of the FOSS community from more important priorities.

I think you were the first to mention inclusiveness and sensitivity so you’ll have to explain why you wrote them in quotes.

I read the rant but it doesn’t seem that abusive to me. Its largely objective comments colored with Linus’s characteristic colorful language. There are no direct personal attacks and Linus’s ire/language is focused on the implementation details. Does it make him seem childish and unprofessional … probably. There is a clear boundary that constitutes hate speech and/or targeted emotional abuse and I don’t see any evidence that he’s crossed it.

Its also worth pointing out that this is not a professional development outfit. Its Linus’s baby and he gets to define the culture. One could make a solid case that it was his force of personality that have pushed it as far as its gone. If the volunteers don’t want to contribute they are free to leave at any time or fork the kernel striking out on there own. They choose to stay.

PS. I found your “if it came from a woman” comment unfounded and unnecessarily incendiary. This is not to detract from the plight of women in tech but in this case it felt like it was added for bonus points. If you truly felt strongly about this you would have elaborated on why you felt that was true. Instead you simply made it an awkward appendage to your post.

Why is it abusive? Because it does attack the person, not just the code. This isn’t rocket science.

Saying the code is “completely unacceptable” is strong, but about the code. And he did explain why, between the attacks. But the rant includes a few spots where “anyone who…” (is).. “incompetent/out to lunch” along with multiple references to “idiotic” and “brain damage”. (which would be referring to the human who wrote it, yes? Code doesn’t actually have a brain.)

If nothing else, one has to keep reading around all the extra words in the rant to ferret out the handful of lines where he explains WHY this is not the way to do it, and what a better solution would be.

I personally feel the rewrite could have done a better job emphasizing the points as to why it’s a bad idea – the idea is to teach and not have people submit other things done this way…

I don’t recall asking “why it was abusive” I made a statement that I didn’t think it was abusive.

>And he did explain why, between the attacks.
You may want to re-read he clearly explains why after every observation. He points out the use of crazy helper functions, reliance on compiler support. He points out the whole reason for all the hoop jumping is moot because the overflow problem is still present. He’s saying something I find myself saying a lot “I see tons of cons and no pros…give me a pro”

>Because it does attack the person

You are reading into the language. Calling someone’s solution idiotic is not the same as calling them an idiot. The nouns his colorful adjectives are describing are all pieces of code or solutions. I’ve read a couple of times but I can’t see anywhere he attacks a person directly.

Sorry a closer read of your comment. I am largely in agreement with you. I think his approach is wasteful and ineffectual.

I still do disagree with you on the notion of personal attack. The links between his harsh words and any specific individual are very tenuous. If an artist produces ten works of art and I say 9 are great and the tenth is a “piece of crap and is representative of everything wrong with art today. And that it was a tragedy that the paint was wasted on the canvas when it could have been used to touch up the outlines of parking spaces at the local megaplex.” My criticisms there are not a reflection of my feelings about the artist, rather they are a harsh critique of a piece of their work. Too often people mistake critiques of their ideas for referendums on them personally.

Freedom of speech is a basic human right in many countries. People have died so Linus could say what he wants. The right to not be offended does not exist anywhere. Grow up.

Where is this an issue of freedom of speech?
Linus was not censored, he can say what he wants.
Just like others can point at his (and your) abusive manners of saying what he wants.
It goes both ways.

Indeed, I am not the government, and while I consider Linus’s text abusive and disgraceful it’s certainly *legal*.

the author talks about abuse and then censors comments. hey author, i hope you can at least see the irony here?

its just like the communists, want everything equal for everyone except for those in power.

You’ve got it utterly backwards.

It would be ironic or hypocritical if I argued that Linus should be allowed to say whatever he wants but deleted abusive comments on my own blog. But I’m doing the opposite: arguing that abusive comments are bad, and then deleting abusive comments. No irony here.

I wrote my own semi-response. We’re mostly in agreement.

But I don’t think calling the rant “epic” is celebrating it, so much as remarking upon its length, or simply standing in awe of the massive overkill it is. Linus’s rants are absolutely fun to read as unhinged overreactions — and also good examples of what not to do, simultaneously.

Also, although I didn’t mention it there, I agree with the commenters who suggest the presumption of unequal treatment in case of different gender is an unfounded leap. That certainty is a bias toward believing the worst (or at least worse) of people, rather than recognizing that flames and rants can be an art form that many people appreciate in a certain abstract sense, and that this applies regardless of gender.

At the core of the issue is cursing, which is communication employing acutely destructive and demeaning imagery. Most people have their limits to the level which they can tolerate, im sure it would be possible to upset linus himself by subjecting him to more intensely dark phrases than he used, im sure.. but it doesnt bear composition :/
We do really take a liberty from people, when we test their tolerance of harsh communication. Alas civilisation remains overloaded with actual destruction and human denigration, so it may not be a bad thing to be reminded of the situation by harsh words in the comfortable places. Those of us who would rather the cursed world were filled with blessings should mind not to be too comfortable.

Cursing at someone isn’t a form of abuse. Insulting someone isn’t a form of abuse. I won’t ever accept that rhetoric, because I’ve seen real abuse, I’ve experienced abuse.

If you can’t take someone telling you what they think of you with some “dirty words”, go live in a cave please, where nobody can bother you and you don’t have to interact with anybody, ever. That way your feelings won’t ever be hurt.

Linus basically acts as a loud barking dog who won’t let you in his house with your dirty boots. You want in? Then clean up your act.

There are standards and if you try to get something without meeting those standards, you get told off. Simple as that. Can’t take that? Tough.

Maybe this is meant to be exclusive (i.e.: non-inclusive)
Linus’ cannot hope to get every substandard code, so he can’t enforce the perfect code standard. But he can make people afraid of submitting substandard code.
In a world with both too many contribuitors and quality requirements, such a policy is defensible (even if, perhaps, not too effective)

On a more broad note: not all places need be welcoming (for whatever your definition of welcoming is). If your preferences are not satisfied, seek a different community, rather than complaining. It is more reasonable and fair to find a community that is ok by you, than to “baby-proof” the whole world
(Though, to be sure, you have a right to complain)

Being abusive will have many effects but improving code quality will not be one of them.

In my experience treating your team well leads to better products.

I would agree but then again you don’t appear to be maintaining a project that is anywhere near the scale/complexity of the kernel. 25 years of successful development begs to differ with your opinion.

Jeff’s comment on his blog about this was spot on: “Linux thrives despite Linus’s behavior, not because of it”.

With the caveat that in this particular instance, Linus appears to be ranting almost entirely about the code rather than the coder, I’d say that his response is still ridiculously overblown for the sake of a single macro definition that he doesn’t like.

Overall, I’d say that it’s not really appropriate behavior for most people, and that it shouldn’t be appropriate for Linus, but given the position he’s put himself it, it may be necessary in some instances (though there’s nothing indicating that this is such a case). As long as the rant maintains its focus on the code, and is not just an excuse to flame someone, it can at least end up being understandable.

The real issue is that it propagates outward. Linus may be forced to do this due to his position (though that’s debatable), where he is the ‘voice’ for what is acceptable and unacceptable in the code base, but there is no excuse for anyone under him (managing individual modules) to behave the same way. The problem is that, because Linus behaves that way, everyone else behaves as if it’s acceptable for them to do the same. That, “because Linus does it” is an excuse for bad behavior within the broader community. You either accept it (either excusing it, or adopting it because you want to be a badass asshole as well), or you decide you don’t want to deal with that crap and go elsewhere. Except, because Linux is such a huge part of the open source community, the attitudes and culture developed in it propagate to all kinds of other projects throughout the world.

Basically, any random guy in some random project acting like this just means he’s an ass. A single incident by a single person is relatively easy to ignore as background noise. Linus is a “role model”, though, and sets the standard for behavior in the “old boy’s club” (to use a Southern metaphor) of the larger community. It builds up over time and creates a toxic environment that drives people off. And then the people that remain in those communities play the “sour grapes” excuse, that they wouldn’t have wanted those people around anyway, to excuse their own behavior, rather than fixing the “bug” that their behavior represents.

When I was trying to read the non-abusive edit, my brain just shuts down. It just sounds boring, pedantic, clerk-like and completely without character. “Yeah, yeah, whatever, no point in paying attention what is written here.”

Mr. Torvalds’s rant is much easier to read and derive lessons for because it’s full of passion and doesn’t come from some soulless drone.

There probably is some middle ground between boring the reader to death and being insulting but it’s yet to be demonstrated.

Comments are closed.