(I mean, to be clear: what the fuck do I know? I've never been in the position Linus is in.)
(I mean, to be clear: what the fuck do I know? I've never been in the position Linus is in.)
Recently I worked at a school whose critiques were set up explicitly not to replicate this harshness. I discussed this with a few friends from grad school, and we were mystified: "How can anyone produce good quality work unless they are constantly being torn apart?" "Is there another way to learn besides being humiliated?" Which led us to look at each other and think, well, we certainly don't choose to live that way otherwise.
And that is the question -- and maybe we'll discover on lkml: is there a better way to create something remarkable. And to replicate that behavior in whatever projects we take on.
If your aim is to make yourself feel better by putting someone down, then sure, I guess the person is responsible for the code, go nuts.
The aim of any adult should be to get a contribution without the flaws. If that's your aim, then telling someone they are stupid or whatever, at best, does nothing. At worst, they never contribute again.
Hurt feelings?
"Going personal", as the grandparent pointed out, doesn't help anyone improve themselves. You can point out issues with someone's contribution without attacking them, and that's all they need to improve.
If someone is incapable or refuses to learn from that, then you can say that they need to before you can accept contributions from them, but attacking them personally is just unacceptable.
If student is lazy or didn't think his work through - is it personal to call student on that - call him/her lazy? Tell him/her "you're not thinking!"?
Surprisingly - some people take personally critique of their work.
If the work is wrong or bad, explain why. Insulting someone doesn't help them improve.
If you argument is people won't change unless they are made to feel bad, people said the same thing about physical pain - banning corporal punishment would mean no child would learn again. That was nonsense, and so is the idea that making people feel bad is necessary for them to improve.
For what it's worth, he doesn't even avoid breaking userland. Off the top of my head, we had a problem at work a few months back where kernel 4.3 and below rounded up listen(fd, 0) to something nonzero, kernel 4.4 didn't, and a piece of commercial software was (inexplicably) using listen(fd, 0). https://ldpreload.com/blog/git-bisect-run is a post I wrote about tracking that down. (We're slow enough at kernel upgrades at work that it didn't seem worth reporting the regression upstream several releases later.) Also last summer Linus himself merged a commit that very intentionally broke a userspace feature that he didn't like but that Julia and rr both depended on, and got a very polite email (https://lkml.org/lkml/2017/5/29/541) requesting that the behavior be reverted, to which he replied:
Oh, we'll just re-instate the kernel behavior, it was more an
optimistic "maybe nobody will notice" thing, and apparently people did
notice.
which sounds like planning to break userspace to me.I think that saying he could still be stubborn without being rude is doing everyone a disservice. It's clear that "do not break userspace" isn't actually a rule, and while it's a lot better than cursing out people in public, saying a fake rule very nicely is still going to hurt people, drive away contributors, and fail to attract enough eyeballs to make a high-quality product.
As an addendum in writing this comment, I became aware that my patch to fix FOLL_FORCE with thp actually re-introduced a version of the original DirtyCoW exploit apparently known as HugeDirtyCoW (CVE-2017–1000405) [2] - or rather my patch interacted badly with a pre-existing mistake in the thp code and caused this. Oops.
[1] https://github.com/torvalds/linux/commit/19be0eaff [2] https://medium.com/bindecy/huge-dirty-cow-cve-2017-1000405-1...
That quote is more accurately read as, "we change things all the time, including user-visible features, and very occasionally, even in breaking ways -- but only because it's impossible to know every single consumer of every single quirk in behavior, and as soon as we learn that one of our changes did in fact break userspace, then we'll change it back".
It's how the kernel community attempts to continue cleaning up decades of tech debt while maintaining the contract with userspace. Honestly, sometimes you just don't know until you try.
It's an inefficient process, but it does sound like the right outcome occurred in this case.
signed, a former kernel developer
In this case however you are arguing that when he said, "we don't break userland, period" he instead meant the opposite? There was no asterix on his statement saying to read the fine print.
The "first rule of kernel maintenance":
If a change results in user programs breaking, it's a bug in the
kernel. We never EVER blame the user programs.
Then later, to drive home the point: WE DO NOT BREAK USERSPACE!
So, sure, "there was no asterix on his statement saying to read the fine print"--he did better than an asterisk and fine print, he made it part of the main content.You seem to understand it as "do not make a change that could hypothetically break userspace." I understand it as "do not make a change that is known to break userspace."
There are hundreds, if not thousands, of little behaviors that a userspace program could hypothetically depend on. In many cases, it would be impossible to change things without breaking observed behavior.
A great many changes fall in to the bucket "visibly changes behavior, but it is unlikely that anything depends on that specific behavior." When the assumption that no userspace program is broken turns out to be false, the correct response is to revert that change, and avoid breaking the userspace (hopefully this happens in an RC, before a stable release). What's incorrect, is to insist that the userspace program shouldn't have relied on that behavior.
In the referenced rant ("Mauro, SHUT THE FUCK UP!"), the problem wasn't so much that Mauro had changed the errno used (though Linus did take issue with the new errno); the big issue was that when Mauro learned that the change broke pulseaudio, Mauro tried to argue that it was a bug in pulseaudio for relying on what the errno was.
I think he has known about his behavior for a long time, and someone with influence has explained the impact.
I changed my HN handle from Mz to this one after more than 8 years and only after hitting the leaderboard. I appear to be the only woman to have ever spent time on the leaderboard. It genuinely took me that long to conclude that my handle was a real problem in part because I was so dramatically outperforming other women in terms of being accepted here that, for the longest time, it honestly wasn't clear to me that it particularly mattered.
Changing my handle was so very well received that I'm sure I did the right thing. But, no, I honestly didn't see it as a big issue until after I hit the leaderboard. A few weeks later, I changed it.
Linus is a man with no real peers and there are few people who are anything close to a peer. It is hardly surprising to me that he lacks perspective on some details. It would be quite shocking if he didn't lack perspective about some things, given the path he has walked.
With regards to not having perspective, because he's so unique (or doing something unique), you may be right. I wonder if in fact he has been enabled for many years by his closest collaborators. People who should have said, "Hey Linus don't be a dick".
There's a debate going on in Australia, about whether it's ok to bully a bit, in parliament, because it's that sort of place. It's also a workplace and bullying is illegal in a workplace.
It's ok to be a dick if your a successful, influencial genius, not ok if your not successful, not influencial or not a genius. Maybe. He's a member of a broader community, where norms exist, and courtesy costs very little.
https://news.ycombinator.com/leaders
Other lists:
Leading people?
Fair enough, he ceated something remarkable, but at the end of the day people have been leading others for literally millennia. So I'm not willing to cut him slack on that account.
(Having said that, I'm deeply impressed by the step he took in that email, and did it publicly)
When most CEOs have a cow, a few people witness it and then they sanitize the message before releasing a PR statement of what the CEO would like to see happen. When Linus has a cow, it can end up on the front page of Hacker News with everyone talking trash about him.
As far as I know, he actually handles that piece of it remarkably well. Most people would not cope too well with such a situation. I have never heard of him then going on a screed about "assholes on Hacker News" or whatever. Instead, what I have seen is "polite" and "well behaved" people nastily referring to it as "the peanut gallery," which is incredibly insulting and dismissive. I have yet to personally see Linus do such a thing.
Given how much people here like to talk trash about him, I infer this suggests it is something he doesn't do.
It wouldn't be in my personality (I think) to lash out at people publicly like that, precisely because it's a public channel. It is in his personality, however, and I think it's fair to observe the negative aspects of this behaviour, and call him out on it.
And I particularly dislike the "if you can't stand the heat, get out of the kitchen" apologist crowd (which you are not part of, I know). Not sure if I'm blowing this out of proportion, but to my ears it sounds not very different from "if you don't want to be sexually assaulted, you shouldn't have dressed like that".
Having said all that: I'm actually really impressed by Linus' email. Proud of him, even. Like all of us he has his vices, but he has become aware of them and tries to improve. What more can you ask.
To me, this has pretty much taken all of the negativity out of future blowups he might (will, probably) have: because he's now on record for not intending to be this way, I personally could overlook any personal attacks and filter them as unintentional, reacting only to the factual content.
Let me just discuss the argument about being this way in public vs. in private. IMO even traditional CEOs shouldn't be that way, whether it becomes public or not. For one thing because it's "not nice" (which they might not care about), but for another because it might foster a climate that is detrimental to the company.
A good example might be VW, whose exhaust cheating fiasco seems to have come about in part because engineers didn't dare push back against impossible demands from top management.
When you live in a fish bowl, it gets much harder to figure out where to draw that line. Big celebrities can't take a piss so to speak without the rumor mill going crazy. They do not have the kind of privacy ordinary people take for granted. If they eat dinner with someone, all the gossip rags explode with speculation that there is a business deal in the making or this is their new love interest.
If everyone talks smack about you for taking a piss, "just hold it" isn't actually a solution. You will eventually explode.
I suggested elsewhere in this discussion that he would probably benefit from a creative outlet. I'm very sincere about that and I have good reason to think it would actually help him.
But, hey, my name is mud and I'm a big fat nobody. So I won't be wasting my time or his by trying to track down his email address and shoot him an email.
Enjoy your day.
Commenters here and elsewhere frequently compare his interaction with maintainers to a code review, or similar, and proceed to excoriate him on that assumption. Rather, he’s managing a team of managers whom are all (successfully) guiding the resources of dozen(s?) of (more or less) competitors, none with a strong natural interest in giving away software, and each using and contributing to the kernel only insofar as it benefits themselves toward a common mutually- and societally-beneficial end. That doesn’t justify his rhetoric, but it may have made it an effective communication strategy
(that said, what do I know either)
Think back to the arguments between Torvalds and Tannenbaum. Linus earned his place through a combination of technical prowess and forceful personality.
Consider that Linus can now afford to transition to the role of the wise elder. That role traditionally adopts a more considered and politic view when resolving conflict.