Linus Torvalds is not a bully. He's in charge of one of the biggest and most successful project out there. And this project is open-source, and anyone can contribute to it. Anyone. Even your cat. Imagine the Windows codebase being opened to anyone, with anyone being able to suggest fixes and send patches, or ask questions, or make suggestions.
You do not want any idiot to commit insane things. You need to have some barriers. And these barriers are related to technical skills.
You have to understand that the alternative to "Linus is mean" is "Linus let a fucking patch enter the kernel, and it broke millions of machines around the world, causing millions of dollars worth of damage". Every single line committed in the kernel must be carefully checked, and if you lack the skills, just go away, because it will (1) spoil the precious kernel maintainers time and more importantly (2) do damages to millions of users.
So I am personally very glad Linus is "abrasive", because when someone screw up, he makes it perfectly clear, and this is totally appropriate considering how critical the linux kernel is nowadays.
And yes, if you want to live in a politically correct, nice, cheerful project, this is not the project you need to work for.
[Having said that, I do not think Linus has ever been dishonest (such as refusing a patch only because he did not like its author, unlike some C-library guy), which is precisely the reason why his abrasiveness is perfectly fine to me]
You realise that there are large, commercial projects that are just as high stakes as the Linux kernel or arguably even higher stakes, and they manage to operate with reasonable team dynamics? There is no correlation between "runs an important project" and "must be an asshole" even though certainly everyone has off days from time to time (I've been known to flame people when reaching the end of my tether but usually regretted it later).
I think this notion - which Linus pushes - that the alternative to yelling at people and generally being short tempered is always "political correctness" ... well it's quite harmful. Yes, it CAN get that way, if people interpret criticism of their work as personal criticism and try to shut it down by complaining about it. I've seen that happen before. Some people don't know how to handle someone implying, even if politely, that their work sucks and can't handle it. But that doesn't mean it has to be that way and well functioning teams manage to avoid it.
You realise that there are large, commercial projects that are just as high stakes as the Linux kernel or arguably even higher stakes, and they manage to operate with reasonable team dynamics?
I wonder about those projects sometime. If we took all of the conversations that ever took place at their office and stuck them online and in public. What would that be like? How many journalists and bloggers would find inflammatory quotes that can be published out of context to shame the person who spoke those words? How would Linus stack up next to John Doe of the Foo project?
Or, think about everything you read, said, wrote or heard at work over the last month. Now imagine hand wringing blogposts about all of it. Especially the things that you want to exclude from this thought experiment because they would have never been said if your only communication method was a public mailing list.
I don't understand this perspective. One can be a very effective guardian of quality without being an asshole about it.
For example, this is what Linus wrote:
"Of course, I'd also suggest that whoever was the genius who thought it was a good idea to read things ONE FCKING BYTE AT A TIME with system calls for each byte should be retroactively aborted. Who the fck does idiotic things like that? How did they noty die as babies, considering that they were likely too stupid to find a tit to suck on?
Linus"
Instead, he might have been able to write something like this:
"It is a very bad idea to read one byte at a time with a system call, for a variety of reasons, including and especially performance."
I would love to hear how being an abusive asshole actually does any good? I see it as a way to artificially limit the size and diversity of the potential contributor pool.
Had this been Kay's first mistake of this magnitude, it would indeed have been reasonable to expect Linus to have been more civilised. Anyone who has followed this more closely would know that this was nowhere near the first time Linus had issues with his code. Yet he did not appear to be interested in listening no matter what Linus told him.
The old writers' saw runs "Show, don't tell". It speaks to effective communication. It applies here.
Consider which is more effective in person - the phrase "I am angry" uttered in a calm tone of voice or profanity and insults in an angry tone of voice. One of those states anger. The other communicates anger.
Kalium, you bring up the strongest point in favor of defending and using verbally abusive language.
I've been through military basic training, and such language is routinely used because it is quite effective at communicating error by breaking down mental resistance and barriers to correction.
In that case, the potential for emotional harm is outweighed by the net reduction in the probability for physical harm on the battlefield if such lessons aren't learned absolutely.
Make no mistake: the kind of language Linus (and so many others in our community) uses can and does cause emotional harm, primarily to people who might be called 'thin skinned'. This is discriminatory against some personality types.
In the balance between using verbally abusive language to more effectively communicate error and not doing that, I believe there's no question: verbal abuse is wrong, and should be avoided, and not defended. There are other ways to accomplish the same thing, without all of the toxic side effects.
I agree, there are other methods to accomplish the same thing without the toxic side effects. That is not in question. The question is if those methods produce superior outcomes, as a lack of the side effects in question does not by itself represent a superior outcome.
Remember, the goal of an open source project is useful code. A friendly and emotionally supportive community is only desirable if it aids in achieving that goal.
This is, I think, a variant on the 'ends justify the means' argument. But sure, we can talk about that.
I concur that open source projects' primary and over-arching goal is and should be to produce good code.
When the leader of a project freely (though not so frequently in this case) uses verbally abusive language, that has the strong effect of limiting the diversity of potential contributors to the project.
I'm willing to assume that a more diverse project tends to be a project that will produce better code.
In this particular case, bad code wasn't included in the project. The abusive language did nothing to stop merge of bad code.
So did verbally abusing this developer somehow cause his/her future contributions to be of higher quality? I don't know the answer to that.
Or perhaps did this verbal abuse generally raise everyone else's code quality, because they didn't want to become a victim as well? Perhaps.
One thing I am certain of, though, is that such choices artificially and severely limit the possible side of the contributor pool, and that's bad.
An open, warm, inviting, inclusive, and friendly community that cannot author useful code is of immense social value but very little technical value.
I'm not willing to assume that a more diverse project and larger potential contributor pool will automatically produce better code. Not all contributors are of equal value. Some contributors are of net-negative value, particularly those like Kay who persist in such. It is highly desirable to limit the potential contributor pool to as few of those individuals as possible.
Size is not the sole meaningful measure of a contributor pool. Quality is equally - and often more - important.
When dealing with matters tangential to a core purpose, sometimes the ends do justify the means. When was the last time you thanked an open source developer for stopping development on features you needed (perhaps permanently so) in order to encourage the surrounding community to be nicer to one another?
The diversity that I am talking about has nothing to do with the variability of code quality. Like you, I want to produce and to consume the best possible code.
The diversity I'm talking about is in personality types. There's a lot of people, even on Hacker News, even in this thread, that would be excellent technical contributors to the Linux Kernel, except they have a personality type that requires them to spend more emotional energy dealing with verbal abuse, either directed at them, or just being flung about.
As you say, size isn't the most important measure of a contributor pool.
In my mind, angry, hateful language, especially if it is accepted by the whole, will greatly limit the amount of talent available.
Good development and merge practices has and will continue to keep bad code out.
And note, I have not said anything about being warm, friendly or inviting. I'm not necessarily suggesting those be specific goals.
Finally, nowhere have I suggested that anybody stop working on features, and instead 'encourage the surrounding community to be nicer to one another'.
A diversity of personality types doesn't guarantee better code either. I'm suggesting that there's a tradeoff to be had with the various aspects of open source that require time and energy. Spending an increased amount of time and energy on supporting a personality-diverse community (and less on other things, such as writing code) should not be assumed to automatically equate to better code.
There is a very real possibility that angry language results in an increased ability to ship code by discouraging more net-negative contributions than net-positive ones.
Just curious - have you read some of Linus' posts referenced?
I personally don't think that a reasonable person who is familiar with such emails could honestly say that Linus is not a bully or that such behaviour is ever acceptable.
Being in charge of a very important project doesn't make it OK to tell people that they're so stupid they should have been aborted.
I work on a project which sells millions of units each year. You could also argue that idiots committing code to the code base should be stopped. Yet I am very certain that if my manager started calling anyone an idiot and telling them they should have been aborted, he would very likely end out of work very quickly. Yet somehow it's acceptable of Torvalds? How? Good quality work can be done without telling people they are pieces of shit.
I think another issue here is that those who idealize the Jobs/Torvalds way of doing things automatically assume that they're going to be on the "good side" of things. The same way people who idealize things like eugenics know that their genes will, of course, be allowed to spread.
What they don't seem to realize that its more likely they'll be on the receiving end of the negative traits they applaud. Either by an occasional screw up or because Mr Bossman is having a bad day. To be humiliated in public like this is often very painful, even for the thick-skinned. The day that happens, they're lawyering up and getting HR involved because, how dare someone yell at them. In their minds, the yelling only happens to someone else, the imagined dumb peons they see themselves as being above.
I think way too many techies seem themselves as John Galt-like supermen, and that the negative consequences are for the sub-humans. There's a real dynamic of here of dehumanizing others that's often swept under the carpet. I think this dynamic is sociopathic.
>> You have to understand that the alternative to "Linus is mean" is "Linus let a fucking patch enter the kernel, and it broke millions of machines around the world, causing millions of dollars worth of damage". Every single line committed in the kernel must be carefully checked, and if you lack the skills, just go away, because it will (1) spoil the precious kernel maintainers time and more importantly (2) do damages to millions of users.
This is a false dichotomy. You can tell people to go away or get better without telling them it'd be better if they'd never been born or wishing violence upon them. I honestly don't have a problem with Linus telling somebody their code is terrible. Linus has often taken it to another level in belittling and abusing the people around him.
Linus has a pattern where his first (or second) reaction to an issue is to START SHOUTING AND NAME CALLING in an attempt to shut down discussion. If the issue blows up he comes back and gives a reasonable, considered response. It's a pattern that's not helpful.
He's just one guy. Not an apologist; the guy is straight out not a great communicator and not really expected to be. But somebody has to be gatekeeper. Whoever that is, should do it to the best of their ability. This is likely the best he has to offer.
I disagree. He can produce the same excellent product without his childish name-calling. His ability to read and accept commits does not depend on his menacing replies to bad commits.
Linus Torvalds is not a bully. He's in charge of one of the biggest and most successful project out there. And this project is open-source, and anyone can contribute to it. Anyone. Even your cat. Imagine the Windows codebase being opened to anyone, with anyone being able to suggest fixes and send patches, or ask questions, or make suggestions.
You do not want any idiot to commit insane things. You need to have some barriers. And these barriers are related to technical skills.
You have to understand that the alternative to "Linus is mean" is "Linus let a fucking patch enter the kernel, and it broke millions of machines around the world, causing millions of dollars worth of damage". Every single line committed in the kernel must be carefully checked, and if you lack the skills, just go away, because it will (1) spoil the precious kernel maintainers time and more importantly (2) do damages to millions of users.
So I am personally very glad Linus is "abrasive", because when someone screw up, he makes it perfectly clear, and this is totally appropriate considering how critical the linux kernel is nowadays.
And yes, if you want to live in a politically correct, nice, cheerful project, this is not the project you need to work for.
[Having said that, I do not think Linus has ever been dishonest (such as refusing a patch only because he did not like its author, unlike some C-library guy), which is precisely the reason why his abrasiveness is perfectly fine to me]