Linus Torvalds Reflects On How He's Been Hostile To Linux Community Members Over the Years, Issues Apology, and Announces He Will Be Taking Some Time Off (kernel.org)
On Sunday, Linus Torvalds spoke about the confusion he had regarding Maintainer's Summit, but more importantly, how this incident gave him a chance to realize "that I really had been ignoring some fairly deep-seated feelings in the community." In an email to the Linux Kernel Mailing List, Torvalds apologized for hurting people with his behavior over the years, and possibly driving some people "away from kernel development entirely." On that end, said Torvalds, "I am going to take time off and get some assistance on how to understand people's emotions and respond appropriately." He wrote: [...] It's one thing when you can ignore these issues. Usually it's just something I didn't want to deal with. This is my reality. I am not an emotionally empathetic kind of person and that probably doesn't come as a big surprise to anybody. Least of all me. The fact that I then misread people and don't realize (for years) how badly I've judged a situation and contributed to an unprofessional environment is not good. This week people in our community confronted me about my lifetime of not understanding emotions. My flippant attacks in emails have been both unprofessional and uncalled for. Especially at times when I made it personal. In my quest for a better patch, this made sense to me. I know now this was not OK and I am truly sorry.
The above is basically a long-winded way to get to the somewhat painful personal admission that hey, I need to change some of my behavior, and I want to apologize to the people that my personal behavior hurt and possibly drove away from kernel development entirely.I am going to take time off and get some assistance on how to understand people's emotions and respond appropriately.
Put another way: When asked at conferences, I occasionally talk about how the pain-points in kernel development have generally not been about the _technical_ issues, but about the inflection points where development flow and behavior changed. These pain points have been about managing the flow of patches, and often been associated with big tooling changes - moving from making releases with "patches and tar-balls" (and the _very_ painful discussions about how "Linus doesn't scale" back 15+ years ago) to using BitKeeper, and then to having to write git in order to get past the point of that no longer working for us. We haven't had that kind of pain-point in about a decade. But this week felt like that kind of pain point to me. To tie this all back to the actual 4.19-rc4 release (no, really, this_is_ related!) I actually think that 4.19 is looking fairly good, things have gotten to the "calm" period of the release cycle, and I've talked to Greg to ask him if he'd mind finishing up 4.19 for me, so that I can take a break, and try to at least fix my own behavior.
This is not some kind of "I'm burnt out, I need to just go away" break. I'm not feeling like I don't want to continue maintaining Linux. Quite the reverse. I very much *do* want to continue to do this project that I've been working on for almost three decades. This is more like the time I got out of kernel development for a while because I needed to write a little tool called "git". I need to take a break to get help on how to behave differently and fix some issues in my tooling and workflow.
And yes, some of it might be "just" tooling. Maybe I can get an email filter in place so at when I send email with curse-words, they just won't go out. Because hey, I'm a big believer in tools, and at least _some_ problems going forward might be improved with simple automation. [...]
The above is basically a long-winded way to get to the somewhat painful personal admission that hey, I need to change some of my behavior, and I want to apologize to the people that my personal behavior hurt and possibly drove away from kernel development entirely.I am going to take time off and get some assistance on how to understand people's emotions and respond appropriately.
Put another way: When asked at conferences, I occasionally talk about how the pain-points in kernel development have generally not been about the _technical_ issues, but about the inflection points where development flow and behavior changed. These pain points have been about managing the flow of patches, and often been associated with big tooling changes - moving from making releases with "patches and tar-balls" (and the _very_ painful discussions about how "Linus doesn't scale" back 15+ years ago) to using BitKeeper, and then to having to write git in order to get past the point of that no longer working for us. We haven't had that kind of pain-point in about a decade. But this week felt like that kind of pain point to me. To tie this all back to the actual 4.19-rc4 release (no, really, this_is_ related!) I actually think that 4.19 is looking fairly good, things have gotten to the "calm" period of the release cycle, and I've talked to Greg to ask him if he'd mind finishing up 4.19 for me, so that I can take a break, and try to at least fix my own behavior.
This is not some kind of "I'm burnt out, I need to just go away" break. I'm not feeling like I don't want to continue maintaining Linux. Quite the reverse. I very much *do* want to continue to do this project that I've been working on for almost three decades. This is more like the time I got out of kernel development for a while because I needed to write a little tool called "git". I need to take a break to get help on how to behave differently and fix some issues in my tooling and workflow.
And yes, some of it might be "just" tooling. Maybe I can get an email filter in place so at when I send email with curse-words, they just won't go out. Because hey, I'm a big believer in tools, and at least _some_ problems going forward might be improved with simple automation. [...]
I agree with the above poster.
There are some developers that need to be called out harshly just to keep them from pushing their agenda. The entitled systemd folks come to mind.
Give 'em hell, Linus!
It seems to odd that Linus would do this out of the blue. Perhaps a formal complaint has been filed against him somewhere and he's trying to get ahead of the story. This is complete speculation on my part btw.
Freddie Mercury never fixed his teeth because they thought it would negatively affect his singing. I'm not a kernel dev but I sure have used, and appreciate (including supporting them monetarily) their efforts over the years. I hope this doesn't dispel the magic.
Look closer:
https://github.com/torvalds/linux/blob/v4.19-rc4/Documentation/process/code-of-conduct.rst
https://github.com/torvalds/linux/commit/8a104f8b5867
Holy crap, it does sound like there's something creeping into the core kernel process here.
I think Linus has been a total dick in the past as well, and I think he could have made his arguments perfectly well with less flowery language. It did make me think twice about going into kernel contribution areas. However this is *not cool* and even hearing the name of Coraline Ada in this story makes me shudder (do your own research on this person, seriously). This sort of quiet addition to a project of a CoC is exactly the sort of thin edge of the wedge that gets projects hijacked.
People need to stand up and say they're strong enough to take being called names, if the technical reasons are justified. It ain't pretty but ultimately we want the code to work, right?
This is exactly it. I've been a subsystem maintainer. It's not really a fun place to be. I have to admit sometimes I was deliberately a jerk to be heard.
There are times where being blunt and even, to an extent, personal can be justified. It certainly often makes what you want to have happen now, happen. But you end up paying the penalty for it later-- when people are worried about embarrassment and don't mention their concerns; when you hear the same attitude in kind; when you lose valued contributors. So IMO better save that "ammo" for the true existential concerns and not make it business as usual for everyone's sake.
It's draining to be on the receiving end of the abrasive behavior, but I came to learn it's draining just to have to exhibit it yourself.
Why do you falsely presume that he'll stop caring solid engineering just because he stops being an assholish aspie? The two are not mutually exclusive in any shape. Instead of being a dick, he can provide constructive criticism and mentoring instead to motivate people to actually want to continue working on the kernel.
Yeah, I agree. I had a point well into my career where I was in a meeting and someone was being an asshole about something, and I realized ... fuck, I've been that exact same asshole. I decided at that point to work on it, and I think I improved. Somewhat. [Having kids helped a ton with training me to pause before speaking my mind.]
I think it's perfectly fine to be an asshole when that is appropriate to the situation. Sometimes you have to use strong language to get a point across. The problem is when you're being an asshole without intending to, which can really screw up the tenor of a project. I don't mean "Oh, boo hoo, someone quit because their feelings", I mean "Yeah, we decided to switch platforms because everytime we logged a valid bug with a repro, they were fucking assholes about it."
And, of course, there's always the problem where you're being an asshole by default, which probably means something is seriously wrong and you need to get some help.
When you worry about the community dynamics more than the code, things go downhill.
"Forget the engineers." -Carly Fiorina, briber of MIT Technology Review.
Great question.
I gather the key thing is if a person realises that their perceptions are constructs, albeit very useful and productive constructs, but constructs nonetheless, and so you start to see the utility and also the problems, created by the constructs/perceptions.
Introspection shows you what you are thinking, whereas construct-awareness shows you that what you are thinking is just a model and you might adopt other models in other situations.
May I remind you that in Bill Gates' time, the Slashdot logo for Microsoft articles was the Universal Soldier Bill, with the cyborg red eye. Slashdot was the Linux lover, Microsoft hater (or similar) user realm. This was before Microsoft's positive media blitz of 10 articles a day about their "innovations" like at some point their "Kinect hack" this and that.
So, to compare Microsoft to Linux is kind of sad and imo misplaced here.
Linux is undisputably, the most important kernel in the world. It is no longer in *startup* phase, and now weirdly part of the establishment. It isn't cool for the establishment to be cruel.
For some people, persecution fantasies are as close as they can get to being important. Be nice to them.
Lacking <sarcasm> tags,
For those of us not familiar with node.js, what happened? I avoided node.js because I didn't want YAPM on my Debian install. Some of the headlines about npm installing malware, breaking half the web and rewriting directory permissions have convinced me that it was a dumpster fire and my reluctance to use it was well advised.
I'm just curious how this relates to the present subject (and nothing I know about it likely matters in this regard.)
I remember an early article with Linus right when Linux was starting to get some stream. I remember one of his quotes "Like everyone else, I was the best programmer in the world" Linus does have a sense of introspection of his personality. However I think being king for too long, he may have let it slip. Which is why I welcome his statements, compared to the recent posts about him going onto some bizarre rants with developers with a different approach to a problem.
As a successful project lead, you need to say No to good ideas. Often because it will not fit into a long term plan, break compatibility, or just reduce the number of people available who can maintain such design. When you are in project management role, it is easy to net see these as good ideas that don't fit. Just as something that doesn't fit, and forget that other people cannot read your mind, and doesn't interpret the same long term goals you are trying to reach. But their ideas are often good ones. That Memory Management system optimized for a Smart Refrigerator may be a great design. But Linux isn't designed for smart Refrigerators, but Smart Refrigerators may be designed to run Linux, and that inefficiency isn't worth the effort in fixing.
If something is so important that you feel the need to post it on the internet... It probably isn't that important.