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!
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.
When you worry about the community dynamics more than the code, things go downhill.
"Forget the engineers." -Carly Fiorina, briber of MIT Technology Review.
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,
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.