Nothing. The person above does not realize that Linus doesn't yell like this at newbie committers. His rants are directed at people who -should- know better.
I'm not justifying them, but there is quite a difference.
> His frustration appears to stem from (rightful) presumptions that a kernel developer would not make such newbie mistakes.
Everybody makes mistakes including Linus.
His frustration appears to stem from the fact that the developer was blaming the user space program, rather than to immediately recognize the bug as a kernel problem.
But as a team leader you don't start yelling at people like that, this is unacceptable behaviour for someone of Linus' stature. It's immature and damaging to the community in the longer term even if in the shorter term it may have the desired effect.
Imagine you're working somewhere and your boss berates you in front of the whole world for some error.
Linus gives these rants (largely) not to people who make mistakes, or who aren't smart, but people who are thoughtless - people who demonstrate that they don't really care, or just are there to drive-by fix Their Thing without any care about the kernel as a whole or how it will affect other people. That's what makes him Mad more than anything else, and that's definitely not the kind of contributor I'd want to be
The classic Linus tirades I've read are the result of the person he's addressing, who knows less about the project at hand, not accepting his reason for a particular decision he's made and continuing to press the issue.
He is very defensive and dismissive of his own mistakes. Linus suggested the removal of a memory barrier and subsequently broke locking on kernels for most of 2014. The fix did not get into most distributions until 2016, since it was kept quiet and not communicated. The result is that deadlocks seemingly occur at random, causing complaints from users of my libraries. It has wasted many hours of my time, and surely more for others. However the more experience you have, typically the more forgiving you are to mistakes as we all make them. Linus lacks that and acts childish, making it very difficult to respect someone who disrespects everyone else.
No you're not getting it. Linus is not like this often. And he's not like this to people who are innocent bystanders. Linus will only chew you up if you're an engineer he knows personally that should know better.
What you have to understand is that these people are not on Linus' payroll, so he has little direct power over them. Screaming at people is one of only two forms of power that Linux can exert, the other being withholding merging of code, which is even more extreme. And these incidents actually come up rather seldom when you think about how much code is submitted to the Linux kernel, which I think is a testament to how well Linus' management is working.
> Linus goes nuclear. And while his reasoning is sound, his argumentation cycles between threats, bad-faith arguments, and just plain old yelling.
In my opinion, in the software world, there is a large number of people who are very convinced of their own correctness. When they do something wrong or are simply mistaken, a gentle correction doesn't work. Linus is probably used to dealing with these people. I'm not saying the person he was replying to was necessarily doing that, but after a while you have an automatic response.
The beauty and horror of OSS is that anyone can contribute. Having someone scream "WTF are you doing???" every once in a while isn't a bad thing. It's not nice to hear that being directed at you, but sometimes in life it is necessary.
In general, but I also think his tone here specifically is rude. There's some ALL CAPS YELLING, implications the person he's responding to is an idiot, etc. This is par for the Linus course.
>> he thinks it's necessary to swear to get people to listen.
That is correct, but ONLY when people (specifically kernel maintainers) produce much below acceptable standards. In case I am missing smth - can you point to an e-mail where Linus was cursing at a newcomer (i.e. not kernel maintainer)?
Linus is very well known for his rants, but you've definitely mischaracterized them. He's seldom incoherent, and the ones that are vulgar enough to make for juicy sensationalized "news" are only ever directed at contributors who are experienced enough to know better than to break userspace or something badly wrong like that. His more level-headed corrections of well-meaning inexperienced developers don't make the news.
I don’t think that’s really what Linus wants (obviously we’re speculating here). He was trying to make it clear that breaking the first rule of kernel development is not negotiable. Anger and swearing isn’t needed to express that, let me reiterate, this is what does that:
> the threat of rejecting future commits and/or rejecting his opinions was by far the best thing in Linus' response, b/c those cut straight to your potential to contribute to the project.
But, nevertheless, I don't know the full context. Linus might have repeatedly emphasize "We do not break userspace" to the point he is red-faced in this particular incident.
Having a bad commit to a project you are responsible for, with a large number of users, is frustrating. Not to mention that Linux is not just a responsibility, but a life-work. What should he do instead of this? Block bad commit author from contributing to Linux forever?
A programmer blaming the user for the programmer's mistake is not less callous of an action. Probably better or worse, because it is wrapped with courteous words, which imply that the programmer is right. What if this happens on a mission critical machine that deals with life-and-death situation? Whose head is gonna end up in the masses' pitchfork?
I've been in both end, the incompetent contributor and the project owner who feels there is not enough competencies in the room. I'm sure there are many others who still have to deal with this dynamic. "We do not break userspace" may be old story, but the dynamic between is still relevant to this day and there is a lot to learn from the incident.
"When I first looked at Git source code two things struck me as odd:
1. Pure C as opposed to C++. No idea why. Please don't talk about portability, it's BS."
Come on. Dude was picking a fight, and he got it. Maybe there are other examples of Linus being an ass, but I don't see how this qualifies.
A classic Linus rant has all the same basic information ("backwards compatibility is the first rule of kernel maintenance", "you've been a contributor long enough that you should know this", "I'm reverting your changes and no longer accepting pull requests from you"), but it also has the added comic relief of Linus swearing and ranting. Take away the swearing and ranting and this is just uncomfortable to read.
Good point that his style and profanity is intentional. But perhaps he uses the non-civil tone to drive home the point which he makes it clearer in the follow up mail [1]. Especially because the original commit message [2] he is complaining about goes overboard in appealing to the C standards and I think Linus is concerned that other people might think that is the recommended approach when the opposite is true as far as the Linux kernel code is concerned.
I was about to say this same thing; Linus is extremely tame by most people's standards, and when he does get snippy, he tends to reserve vitriol mostly for those who should know better. If he does take the time to criticize a "noob", it's not because they are a beginner, it's because their idea is flat out wrong. Take the whole git/C++ email exchange (http://thread.gmane.org/gmane.comp.version-control.git/57643...) and notice how Linus didn't get flame-y until the OP did. Or the whole Con Kolivas/Ingo Molnar scheduler debacle: there were perfectly good reasons why Torvalds chose Molnar's implementation over Kolivas's.
The truth of the matter is, Linus doesn't really have time to respond to every hare-brained idea that people have for the kernel. Add to that he's been doing this for a while. If you feel maligned, you might want to consider a) Linus is probably right b) if you really want to hack on the kernel, you should know better and c) if you want due consideration from people more busy than you, you should give your idea due consideration yourself.
Edit to followup: until you've lurked on LKML for a while, or heard an interview, or, I dunno, maybe actually had a live conversation with Torvalds, you are probably being lead to believe he's an asshole by people with bones to pick with him (eg, people who should know better who he told off). As someone else pointed out farther down thread, how many times have we seen links to a single email/blog post by Torvalds without the context of the person he is responding to?
> This guy [...] was making fun of my contribution
That isn't entirely correct, because you contributed nothing. He (kind of) made fun of your attempted contribution. What else could he do?
He could tell you in sterile, technical language that zeroing pages is done for security reasons. You'd probably perceive that as condescending. He could instead ignore you. That wouldn't be nice, either.
If you were Linus, how would you handle your not-quite-contribution?
I'm not justifying them, but there is quite a difference.
reply