This is kind-of a survivorship bias example.
I personally happen to like his approach in general but as I'm sure you are aware: "You can please some of the people most of the time and most of the people some of the time but this aphorism sounds a bit tired these days"
But well that problem belongs to those who work with him, so I don't care. All I wanted to say is that because he gets away with it, it does not mean that us the halflings will too, so that's not a good advice to somebody thinking of participating in the general open source sphere.
Sometimes it's worth being a bit over the top so that the entire community you are working with gets the message loud and clear. Seems like other communities (like bsd, gnome, debian, etc), often have extensive documentation, policies, and best practices... which are often ignored because every developer doesn't keep 100% of the best practices in mind at all times.
I suspect a big part of why user space is broken so rarely in Linux is exactly because Linus has made such a big deal about it in the past.
I do not know him personally, but people who do know him comment that he is a nice, considerate, thoughtful person.
Linus has actually chimed into this metadiscussion in the past, basically saying something along the lines of "the audience is too big and too varied to be subtle. If I am not very explicit, someone will misunderstand this, usually as an invitation to keep wasting my time" (IIRC) -- which, having managed much much smaller projects, I tend to agree with and can only imagine how much more true this is an the Linux Kernel scale.
The Finns I know are all very direct "straight shooters" - I guess that's part of it.
> That he is so is not necessarily the cause of his success, and might even be invisibly detrimental to it.
From three decades in the industry, I would say it's likely contributing to his success (though, it is independent of the cause/origin of his success, which is being smart, diligent, persistent and lucky). The ability to cut down and through bullshit is IMO fundamental, and it seems impossible to do without occasionally being rude.
It is not impossible to narrow down the complaints without being rude. Most people do that just fine, with way larger projects than his kernel.
His behaviour is just unnecessary and distracting. It's almost as if he does it for publicity or shock value. Maybe that contributes to his success, but it shouldn't.
I find it weird that people try to defend him rather than acknowledge it is just one of his character flaws. People aren't perfect, and neither is he. Doesn't take from his achievements but acting like he's in the right to behave this way is just enabling him. If people want to emulate him, they should look at the good and leave the asshole behaviour behind.
What are your examples? Please qualify project size by number of contributors and their organizational and cultural diversity.
According to [0], in 2015-2016 there were over 5,000 contributors sending patches, representing over 500 organizations (and likely, something like 50 countries/cultures/languages). Linus, through the LKML, corresponds with many of them, and has a small number of deputies. He is not paying any of these contributors, so he can't actually fire them, unlike e.g. Zuck, Jobs or Gates which, according to rumour, are/were all much less polite than Linus to their subordinates.
> It's almost as if he does it for publicity or shock value
He most definitely does, and uses it effectively. When he does, he mostly attacks ideas, not people. I've been following the LKML very intermittently, but my impression is that he is mostly kind and thoughtful in his answers while being direct. Those times that get to HN/Slashdot/Reddit/common-knowledge are few and far between, and mostly the 3rd or so response to the same thing (though, it has happened before on a "first offence").
> People aren't perfect, and neither is he. Doesn't take from his achievements but acting like he's in the right to behave this way is just enabling him. If people want to emulate him, they should look at the good and leave the asshole behaviour behind.
No one said he was perfect. Some of us believe that it is effective; call it "necesary evil", but it's one of the very few management tools that he has - basically, refusing a merge, and voicing an opinion.
I eagerly await your examples, as my experience is that people with much more management tools at their disposal are not better in this respect than Linus. Especially those examples (of "most people") that coordinate submission from 5,000 people mostly interacting directly with them.
[0] https://www.linuxfoundation.org/blog/the-top-10-developers-a...
I don't get what is "necessary" with his insults. Would delivering the message calmly not be understood?
There's nothing to make anyone believe it's an "effective" strategy. Some people are deterred from contributing because this guy can't act professionally. The only reason people still want to contribute is because of the importance of the project (aka thousands of projects depend on a good linux kernel).
He can accomplish the same things, without going ballistic, in shorter time and with the respect of others earned. It's still using the same few management tools and he can retain his bad temper for when a situation actually calls for it (which is almost never). Blowing everything out of proportion is crying wolf.
Maybe he is not that bad of a person to work with. Hopefully lower than how bad Gates and Jobs were. But he sure seems to hide it well since that's all I ever hear about him. But I guess bad publicity is still publicity.
Does any of these companies run a team with 5,000 people contributing to the same codebase?
Do you have it on good authority that most of the people in IBM, Google, and Amazon that manage those 5,000 people teams are nice and polite? Because I've heard a lot about Amazon to the contrary. Do consider your selection bias: You know everything Linus tells the world, you only hear about Ballmer's chair throwing, but not any other profanities,
> Would delivering the message calmly not be understood?
Yes, he tries/tried occasionally. The wikipedia entry for LKML has more info.
> He can accomplish the same things, without going ballistic, in shorter time and with the respect of others earned
That goes counter to Linus' experience, and a few other people's.
> It's still using the same few management tools and he can retain his bad temper for when a situation actually calls for it (which is almost never). Blowing everything out of proportion is crying wolf.
Are you on the LKML? He almost never does it. You hear about it when he does. He is not shy with criticism, and he never sugarcoats anything, sure, but he goes ballistic very rarely.
> But he sure seems to hide it well since that's all I ever hear about him. But I guess bad publicity is still publicity.
You admit that you have no idea what happens between the times you hear of him. You implicitly say your model is "IBM, Amazon and Google", in which you hear nothing of how disagreements are handled, and none of which have the scale and diversity of the LKML in a single team.
It is my impression that your beliefs are not grounded in data or even anecdata. It does not make them wrong, and I'm not saying you are wrong. I'm saying you have not made any convincing argument to say you are right.
This is wrong. He has said himself on video multiple times that his correspondents are the subsytem maintainers, which are way fewer in number (a handful of people).
There's a very fine but very clear line in a lot of his rants between very harsh language used against solutions he doesn't like, but without making it personal, like in this case where he's attacking the rationale, and attacking the C standard, but is very explicitly avoiding attacking the people (even taking pains to point out he's not suggesting people on standard bodies in general are incompetent). The closest he comes to attacking people directly here is when he calls people who use -fstrict-aliasing "fcking morons" when* they use -fstrict-aliasing, so even that is conditional on behaviour rather than assigning a trait to the person in general. You'll sometimes see him making wide-ranging accusations about general categories of people (e.g. I remember a rant about people who think it's a good idea to do reads a byte at a time), but rarely about specific people.
On the rare occasions when he attacks people directly, I have yet to seen an example which doesn't fall in the category of either attacking persistent repeat offenders who has refused to listen to more polite rebukes (his attack on Kai Sivers being the most obvious example [1] - notably while very direct and personal, that rant was also comparatively civil in terms of actual language), or attacks that fall in the "I know you know so much better, or you wouldn't be in the trusted position you're in" category (his attack on Mauro Carvalho Chehab for a change that broke userspace [2] falls in that category; Mauro has contributed to the kernel since 2005, and have worked on it as his job for years - in this case Mauro took it on his chin, apologised for the breakage and the discussion remained strictly on topic on the technical issues afterwards).
Frankly if I'd gotten a dressing down by Linus in that category, I'd print it out and frame it, because harsh as they may be, I don't know of any case of people having gotten those without having demonstrated time and time again that they should know better first. You don't see him ranting like that at beginners. You see him ranting like that when he's disappointed because he has high expectations of you. Doesn't mean people can't get upset by them, of course, but it changes the nature of it quite a bit.
Note that I'm not saying that it's a good thing- I'm sure there'd be more civil ways to express that too -, just that I think the importance of these rants is exaggerated.
[1] http://lkml.iu.edu/hypermail/linux/kernel/1404.0/01331.html
Its almost as though he identified a weak point and ameliorated it! That's what an Engineer does.
which are often ignored because every developer doesn't keep 100% of the best practices in mind at all times.
There is no such thing as best practice - that is a nonsensical phrase that I think someone involved with MS created many moons ago and caught on in IT and I absolutely despise. There is good and bad practice but you had better be very, very good at something to tell me that you know best about that something.
FWIW, having not looked at any of his LKML rants for years, he seems to have mellowed out a bit in this one.
He swears a lot. Who the fuck cares? His audience isn't HN or The Register or anyone else not doing kernel development.
The apparent desire for bland, well-scrubbed and boring is not universal. I haven't heard of a sudden increase in demand for talk therapy for kernel devs. Lots of engineers swear a lot, and that's unlikely to change anytime soon.
Now, if you'd like to discuss actual abusive managerial behavior, we could have something to talk about.
"""
When you debug a distributed system or an OS kernel, you do it Texas-style. You gather some mean, stoic people, people who have seen things die, and you get some primitive tools, like a compass and a rucksack and a stick that’s pointed on one end, and you walk into the wilderness and you look for trouble, possibly while using chewing tobacco.
"""
Kernel developers tend to, in my experience, be a specific type of person. They are writing software that will possibly save someone's life today. Billions of dollars changing hands using their code every second.
The average programmer on HN does not write code that will see more than a couple thousand users at once. Even people at google usually don't write code as important as the linux kernel (they write on top of the kernel, usually).
---
There is also some narrativ that Linus is being abusive and I kinda disagree. Linus doesn't take a dump on people who don't know better, he takes a dump on people who should definitely know better and who are long time kernel contributors in important positions. Because these people count. (Plus, he's finnish)
It's easier to discuss his profanity than it is to discuss a technical topic. (I'm not unaware of the irony inherent in this very comment.)
Kernel commits should be to a much higher standard and his way of reminding people is necessary to steer the ship.
[1]https://lkml.org/lkml/2018/6/5/774 [2]https://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux...
Now that optimizers are getting better, these long-standing issues are starting to surface in the real world. This is no different from when programmers do something dumb like
j = i++ * i++;
which works until it doesn't. Or worse, someone runs Stroutroup's book through a static code analyzer and finds a wall of errors so the language is changed [1].Code around it and move on -- as in the patch mentioned.
First, he's binding Linux to gcc forever. I've made that mistake and let me tell you, it's a mistake with surprisingly few benefits. A couple of asms and gccisms? Easily replaced.
Second, it is an error to call gcc's behavior "defined in documentation" as if that means it's okay to use. It's just a flag to support obsolete code. Long-term, the assumption that gcc will retain flags to support antique code is optimistic.
Third, "the standard is not workable in reality" is simply wrong. I work on low-level systems. I somehow manage to work with devices and networks on a day-to-day basis without relying on this.
Ultimately it comes down to this: Linus put his faith in something which was explicitly removed from C 30 years ago. The writing has been on the wall for about 10 years now[1]: Good optimizers are going to do away with this mis-feature. Time to start adapting to reality.
[1] http://blog.qt.io/blog/2011/06/10/type-punning-and-strict-al...
Type punning through a union works on GCC without -fno-strict-aliasing, and is documented in multiple places. Among others, it's suggested as an alternative to fix code broken under strict aliasing here: https://gcc.gnu.org/bugs/#nonbugs.
It's also relatively safe to assume that GCC will continue to be able to compile the Linux kernel for the indefinite future, since it would be very high profile, cause a ton of drama, and result in many people to moving away from GCC (including contributors). It seems very unlikely to be a smart decision.
(That's not to say lower profile projects than the linux kernel should rely on this. Using memcpy/memmove is just as fast and that much more difficult).
In a world in which there are only two people communicating with each other, you're definitely right that the point he is making can be made better. But consider that he just made his point to thousands upon thousands of potential contributors, because the message was shared. This directly addresses two of the things I hear open source maintainers complain about: it discourages the giving of shitty things and it moves away from the poorly scaling one on one communication.
You both seem to be unaware, that emotional responses are not universal. A swear word in a second language and a different less sensitive culture doesn't feel like much to cause anyone to care enough to roll their eyes.
(I am merely trying to illustrate that we are all creatures of habit)
I also feel like we see every single abrasive Linus email hauled out of context to make this point that he's an over-dramatic asshat, and not the mountain of mundane ones where he isn't torching somebody to make a point.
I take it you don't really read a lot of Linus' mail? I find it hard to believe that somebody would think that, unless they only got to see a highly biased selection of his emails.
Also, consider that we would never have had this thread in which several people are learning about gcc's documented behavior on unions if it hadn't been for the somewhat strong language. It serves a genuine purpose.
Which is wrong approach to your figuring out that. Instead, you can have only two approaches:
- learn enough about the topic discussed to have your own opinion
or
- consider how often Linus was wrong in his "expert" opinions (From my point of view, he's almost always right, but you are free to give the example of the opposite if you have them) and use that as a starting point.
Note: both approaches are completely independent of the speech figures of Linus' post, which is how it should be.
I personally, for myself, came to conclusion that most of the time, specifically for the issues I know more than enough to have my own opinion, I can trust that Linus' opinion will match my. And if it doesn't happen, that he will probably still be right and I have to reevaluate my initial opinion.
In this specific case, I would be very glad that people here try to even give some reasonable arguments why he would be wrong. Because "it's in standard" is not a valid argument, as soon as you accept that the standards definitely aren't guaranteed to be without even big errors.
The most problematic attitude I see is exactly like 'ramshorns (parallel post) asking "How can the standard be wrong" (the right question would be "where is the standard wrong"). The answer to the former:
A standard is just a document produced by a group of people trying to specify something. There's nothing that guarantees in any way that the product of any group of people doesn't contain errors.
The answer to the later: In this case, the standard "resolution" of the real need is obviously wrong, because the "resolution" is pretending that the need doesn't exist. And the need not only exists but is fundamentally necessary for the use cases where C is being used: being "low level" enough not to incur unnecessary penalties to implement something that is "natural" on the hardware level. Unions were used for decades to fulfill exactly that specific need that the standard body somehow managed to "ignore" and the compiler implementers looking for a "loophole" to produce unusable code sadly want to use. Such attitudes, both by standard bodies and by such implementers are also wrong.
edit: re tedunangst's "Linus is yelling. Do I care? Should I care? Is there any meaningful signal from the yelling" please read this my post again. I assumed I'm answering exactly this. And my opinion is really: you can assume Linus is right. He was so often right for such technical issues that it's a good start. Then, yes, care. Yes, you should, if the technical topics discussed have connection with what your work is. And if you don't program in C, and don't influence those who do, you can of course ignore the whole thing, but then the question is why are you involved now in the topic's discussion or consideration.
And for those that believe that there is really no correlation between Linus using strong language and him being rightly against some "practice," they should provide some proof that such correlation is negative or doesn't exist, as much as I know, it exists and is actually positive, exactly for some big issues I care about.
Some good reads on this topic:
https://blog.regehr.org/archives/1307
http://www.yodaiken.com/2018/05/20/depressing-and-faintly-te...
https://blog.regehr.org/archives/903 (See the end of Xavier Leroy's comment)
Ideas can be impassioned, wrong, clever, ridiculous, circular, etc. Computation shouldn't be, but often is, because, preference.
It's hard to hold all that stuff in one's head alone, and consistently feel like every time a problem is solved, a new one magically gets created, without having anyone to talk to, that really 'gets it', without that person pushing every single button you have about preference in computation.
Have you factored in the opportunity cost of being an ass for decades?
And then I get back to work using his software which I paid close to zero dollars for.
Is there another gift horse whose mouth is so frequently inspected as Linus?
> the enormous contribution to the world of a master craftsman could have been even more enormous
Hardly, it's about the contributions that don't exist from other people because of the insufferable shit-headedness of working with him. But that doesn't matter to you because we can't criticize him now can we? No, we must bend over because he is so much better than us!
I mean at least when the NetBSD group ego-tripped and removed Theo, he had the decency to work on OpenBSD.
People who really want to contribute will find a way to, always. Unless something else is more important to them than contributing.
I've got to say, I find it really hard to take your outrage at a little mild profanity seriously if you so casually use it yourself during normal conversations. To be frank, I think you're just pretending to be offended Linus using profanity.
It's an idiot way to you because you are too sensitive to it.
I could very well point out how idiotic it is to say a person is an idiot for calling other people idiots, but honestly I'd rather just laugh at the insanity computation tends to bring out in all those that have to work on computers with other people.
Irrelevant to my point.
> If you read the end of his message he's well aware that the reality of minds and ideas are flawed.
And he still doesn't work with in the confines of human social behavior.
> It's an idiot way to you because you are too sensitive to it.
And when it hinders his ability to get things done because other people think he's an asshole, I'm sure you'll still be here saying "hurrrrr durrrrr stop being so sensitive".
> I could very well point out how idiotic it is to say a person is an idiot for calling other people idiots,
If you want to think calling someone an idiot for idiotic behavior is idiotic, then you're pretty sensitive. However since I don't need you to do anything for me, it doesn't hurt me in any way to treat you like an ass.
If the Swedish speaking minority of Finland is speaking anything like the good people of Åland, well, then it could be interpreted as trying to be quite polite. Never met any people who could get more obscenities into the most casual and every-day conversations then they can. It's really quite impressive.
How many email messages does Linus send in a year? How many of those messages contain rants so epic they get posted here? I bet it's less 1% of all messages. Yet everyone remembers those messages and what they say. He might not be polite, but he gets his point across.
I mean, you'd get your comments flagged off HN, but other than that: it could work for you.
Unfortunately, for Torvalds, we're all in on the joke.
The problem is, well, it's just like my bulldog Reinforcements. He doesn't like hats. He sees someone walking down the street wearing a hat, he barks loudly. He barks a lot because of this. When I'm across the house and I hear him bark, I have to try to determine whether something important is happening, or just a hat. It's an impediment to our communication, me and my dog. Same with Torvalds. He sees a lot of hats, is what I'm saying.
Most of us will perk up a lot if Torvalds has something nice to say, even among the barking. Communication is complex.
You could argue that "continuing to try to affect his Andrew Dice Clay of Programming persona" isn't super clear, but it also doesn't fit "soft-pedaled politically-correct," really.
At this point, his flailing supposed anger is really just schtick. He deploys it so casually you just assume it isn't serious. Ironically, he could convey his contempt for standards, or for people who adhere to them slavishly, far more effectively if he simply wrote in a civil tone, rather than continuing to try to affect his Andrew Dice Clay of Programming persona.