Linus Torvalds Rants
reddit.com
reddit.com
On Thu, Feb 23, 2017 at 05:44:04PM -0800, Linus Torvalds wrote: > [snip]
Don't shit on (new) contributors like this. Noralf has done good work (go look), Kconfig is an impossible combinatorial maze, and I'd be rather annoyed if you managed to drive away Noralf (and other contributors) with your mail.
I know that you need to rage every once in a while, but at least only send those mails to Dave (and me) in private. On dri-devel here, this isn't accepted.
The tinydrm code seems like absolute pure shit that has never seen a compiler.
I'm upset, because I expect better quality control. In fact, I expect some qualitty control, and this piece-of-shit driver has clearly seen none at all.
And those patches were apparently committed yesterday.
WHAT THE ACTUAL FUCK?
I get tons and tons of lines of warnings:
drivers/gpu/drm/tinydrm/mipi-dbi.c: In function ‘mipi_dbi_typec1_command’:
drivers/gpu/drm/tinydrm/mipi-dbi.c:65:20: warning: field width
specifier ‘’ expects argument of type ‘int’, but argument 5 has type
‘size_t {aka long unsigned int}’ [-Wformat=]
DRM_DEBUG_DRIVER("cmd=%02x, par=%ph\n", cmd, len, data); \with nasty chains of nested defines, but then I also get actual compile failures
drivers/gpu/drm/tinydrm/core/tinydrm-helpers.c:198:26: error:
redefinition of ‘tinydrm_of_find_backlight’
struct backlight_device tinydrm_of_find_backlight(struct device dev)
^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from drivers/gpu/drm/tinydrm/core/tinydrm-helpers.c:11:0:
./include/drm/tinydrm/tinydrm-helpers.h:53:1: note: previous
definition of ‘tinydrm_of_find_backlight’ was here
tinydrm_of_find_backlight(struct device dev)
^~~~~~~~~~~~~~~~~~~~~~~~~(with similar stuff for tinydrm_disable_backlight()).
It looks like it might compile if CONFIG_BACKLIGHT_CLASS_DEVICE was enabled rather than being a module.
Doing this:
-#ifdef CONFIG_BACKLIGHT_CLASS_DEVICE
+#if IS_ENABLED(CONFIG_BACKLIGHT_CLASS_DEVICE)
in tinydrm-helpers.h gets rid of the complete build failure, and only
leaves the tens of lines of warnings.How the hell did this get to the point where crap like this is even sent to me? Nobody tested anything*?
AND WHY THE HELL WAS THIS UTTER SHITE SENT TO ME IF IT WAS COMMITTED YESTERDAY?
> Derision and general point
> Insult
> Derision and minor point
> Actual, concrete, well reasoned point
> Derision
He usually has very good points, but people tend to focus on the derision and insults. That means people aren't seeing the points he's making. That's not entirely their fault. Communication is a two way street, and he's making his own communication actively worse.
His infamous C++ rant (http://harmful.cat-v.org/software/c++/linus) is the one I always go back to. It makes perfect sense when you realize he's talking about coding for the kernel or otherwise coding for something that can only really be understood as a series of bytes. It's complete nonsense if you're talking about, say, business software, where all that abstraction makes the software comprehensible. He also does things in that rant like essentially champion reinventing the wheel, though, too.
People always defend him by saying:
* "Passive aggressive corporate culture is toxic!"
* "It works so it's not toxic/who cares if it's toxic!"
* "They don't have to contribute if they don't want to!"
And I just don't buy any of those arguments as a defense for bad behavior.
And where exactly is there an insult, though?
You seem to confuse he calling CODE shit with he calling PEOPLE shit.
People very well can see the points even though there is strong language. There is a small amount of people that ONLY look at the strong language and make a point out of it.
> And I just don't buy any of those arguments as a defense for bad behavior.
You define bad behavior as using strong language (swear words basically) and then accept nothing as a defense. But no-one really cares about what you buy.
"I'm upset, because I expect better quality control. In fact, I expect some qualitty [sic.] control, and this piece-of-shit driver has clearly seen none at all."
Then he goes to describe the details to prove his point.
He is _upset_. That's a feeling, you know. Then he calls the patch shit. So there is a guy who gets pissed off and calls code shit once in a while. Maybe he has Tourette's, we don't know. Why do you actually care? Why are you so sensitive exactly?
Oh yeah, and I think he has been wrong in my opinion on many topics. I don't think he's god. But LET HIM BE HUMAN!
Yes? No?
In this case, I think using "of" instead of "to" would be clearer:
"There is nowadays some constructive criticism of Linus's outbursts"
I know people find it uncomfortable or rude, but I think its a necessary feature of a great leader when dealing with an unruly mass of, generally speaking, mostly arrogant, mostly privileged individuals.
Such as defending the bundling of modified libs, thus making it hard (if not impossible) to package for various distros.
And rather than noticing this as being very similar to what he has ranted about others doing in the past in userspace, he joins in attacking said distros...
Edit (because apparently i am "posting too fast"): https://en.wikipedia.org/wiki/Subsurface_(software)
See the last few parts, and citenotes 9 and 10.
I've started distributing an exact version of boost and gmp with my programs and refusing to accept bug reports generated from using other versions. Life is too short (when unpaid) for the pain caused by exactly the problems Linus is describing.
What he's talking about is on the video above and it's a very reasonable point. I just released a game with Linux support and most of the bug reports I got were from people running the game on different distributions and random libraries not being the version you would expect it to be. This is not to mention that I got way more bug reports from Linux users than Windows users, despite Linux users making up 2%-3% of the playerbase. His point is absolutely valid and not at all a "serious idiocy".
I am asking this because just yesterday, I tried to run the steam streaming client and it kept crashing. As far as I can tell, because it must have been compiled with a different compiler or glibc than the rest of my system.
In fact, with closed source software I see a lot of problems in the Linux space which could be solved by recompiling, but that simply isn't possible. The reason behind all this is probably that Linux systems are just not build for closed source software as the devs keep changing things which would be required for that (e.g. stable ABIs).
Btw. does anybody know if there are tools out there to obfuscate code for games, so that they could release their code in a form which some distribution could compile, but which is too obfuscated for someone else to make use of it (e.g. steal the game)?
Microsoft is backwards compatible to an insane degree. Which gives you stability but not consistency.
OSX is consistent but Apple throws out backwards compatible features every other year, so not really stable.
But for users, it doesn't help if you bought a tool last year and it gets non functional because Apple removed or tightened down a function in their OS.
You can only hope than that the developers are still around and update it if that's even possible.
I think its significantly holding back desktop and laptop adoption. Besides all the distros and multiple desktop environments, all these permutations seems like its holding back applications. I use a cluster compute environment but my client is a mac. If apple can make a "unix" that runs applications well, why can't linux. (I can't code it but I would buy it)
I don't want a separate vm or container for each app I run.
As far as I'm concerned, choosing AppImage is just more evidence that Linus is a smart and practical dude who makes reasonable decisions.
Incorrect. AppImage is used to distribute Linus's Subsurface in distro-agnostic manner, by packaging all needed libraries with the binary.
Even Linus gives his endorsement, "This is just very cool." so that means a lot.
The thing is Linus speaks volumes to people like Linus. And it just so happens that people like Linus are really good at writing the kind of software that goes in an operating system. Most of the criticism either comes from outside or from the type of people who feel they need to protect others from things that they themselves are able to handle. The latter is basically where ideas about censorship come from (I'm going to read this first to decide whether it's suitable for you to read).
Perhaps because so much of the world do not learn how to read French...
Or to put it another way, “it doesn’t really matter what you call a flower, it still smells just as good”
I think I saw a quote from Linus that this is a good filter for non-serious contributors, but it is an additional barrier for anyone who might want to get involved.
So I imagine its extremely unlikely that any early contributer could be turned off by a linus rant targeting them. They contributor loss would have to be based on the fact that the rants exist at all.
My suspicion is that very few qualified contributors are scared off by the existence of Linus's rants. Maybe if it targetted them, repeatedly, but otherwise its difficult to imagine this is a significant source of loss.
I understand that the current trend is to suppress all your emotions, and then quietly read self-help books and seek therapy, but it's not at all obvious to me that venting does more bad than good.
To me, I get a kick out of reading Linus' rants, I find them highly amusing. I can understand that the few people they're directed towards, would feel mildly abused, to which I say welp, it's a small price to pay.
There needs to be an acceptance that dealing with other people is oftentimes frustrating, and that there need to be avenues to release that. Business people have booze, drugs, strippers and hookers. Linus is a good boy, he has offensive language and all caps.
I consider him a saint, compared to the alternatives someone a little more gregarious would've taken.
This one is kind of fun. Probably Linus' greatest quality is his fearlessness. He did something publicly for the world, that the majority of experts were saying was a bad idea. Specifically, he made a monolithic kernel.
To that end. Yes, he can rant a bit. The question is if his rants reduce the conversations? It is as possible he shuts down thread that would have been more harmful. Indeed, most people he rants against are pushing from positions of power. And he rarely goes personal. (Ever?)
We see the same thing with decisions on what kind of movies to make. A handful of high budget movies are made every year, and when its time to decide which movies to fund studios extrapolate from past successes and failures. This includes wrong ideas like "no movies centred around female superheroes because Catwoman, Elektra etc" or "international audiences only connect with white leads, not with black ones". It goes the other way too, Black Panther's success suddenly means that international audiences love black actors.
Me personally, I don't think either of the conclusions wrt black actors is correct - there's insufficient data to support either hypothesis. But people make do with the data they have, which is the same thing with Linux. "Linux is wildly successful - what do they do differently? Hmm, must be Linus' management style"
Just few examples from the top of my head:
* Bill Gates was aggressive office bully and has admitted this himself.
* Steve Jobs was known to be nasty and unreasonable.
* RMS is notoriously difficult person.
* Theo de Raadt is really something (OpenBSD, OpenSSH, NetBSD)
* Ulrich Drepper (glibc, ...)
Above examples are outspoken SOB's. There is another case of engineering leaders who use passive aggression and 'niceness' to rule in a way that can become very unwelcoming.
People have to lead with the personality they have. Management can be leaned and management style can be changed. Leadership skills are tied to personality.
In particular, most business people I've worked for have been, well, let's say 'ruthless', even with their own employees. If I'm going to work at a company, I don't feel I have a lot of choice here. Most open-source maintainers are nice and reasonable (perhaps out of necessity), so if I'm donating open-source patches, I do have a choice there.
I'm not a fan of confrontation, and in the past have allowed features to get added to my projects that I didn't think was right. I regret it. Had I been willing to have some uncomfortable conversations, the project would have been better.
If you are starting on your own, you have to be all three.
Students occupied large parts of the campus and started to work out their demands. They decided to try and go by a grassroots democracy. Everything was discussed and reconciled with polls in the biggest lecture hall. The whole thing made big news, was on all TV channels, the nation waited for the students' demands, and they kept arguing, and discussing, and the nation kept waiting, and then they argued about the order of phrases, single words, as long as a single person had a complaint, and finally after half of the students involved gave up and no TV channel reported on the topic anymore, some final document was handed over that nobody remembers, just as nobody remembers the response to it.
This is a pretty stark counter example, but to me it was a huge revelation to actually be part of this experience and see it fall into pieces. It shows that you simply can't always be nice to everyone and make it right for every single individual. Sometimes you have to be that asshole that leads the way and steps onto other people's feet, because a suboptimal decision made in time is often better than discussing every detail to death. A rough tone is simply (and unfortunately) an effective way to assert your position. Call it alpha male 2.0 or whatever. This realization also helped me dealing with that kind of person, not taking it too personal.
As for Linus, I feel like these kind of rants are really an exception, he's either in normal/neutral mode, or goes all apeshit, which I think makes it rather easy to deal with him (never did so far though). In comparison, the passive arrogance that a certain developer of some init system sometimes shows seems much more annoying to deal with (also never had an interaction though).
I've seen many others attempt this transformation. Some are naturals. Some learn fast. Most fail (like me).
My point: The audience demands politicians play the role of politician. Over time, the person becomes the role (because how we talk changes how we think).
I don't think the person Linus could be successful playing the role of Linus Master of the Kernel without adopting that persona. So if he wasn't that way beforehand, he adapted.
I'm not excusing bad behavior.
I think most organizations suffer from this problem, not just governments.
For example, there are megachurches[0] that have gained huge followings only to collapse due to leaders with this personality and the will to hold onto power.
[0]: https://en.wikipedia.org/wiki/Mars_Hill_Church#Church_reorga...
--
Though I suspected, I didn't fully realize how much "playing the part" mattered until I participated in the endorsement process before, during and after my own candidacy.
I used to care about a candidate's policies, platform, positions. Now I only care about a candidate's ability to get elected.
Before, I didn't understand the "realpolitick" viewpoint, and actively criticized it. Imagine my chagrin after I flipped my worldview.
To get a glimpse of what I'm talking about, watch a bunch of endorsement interviews. Many jurisdictions post a video voter's guide. Some orgs and publications will post their interviews. Better is to show up and watch. As in join your local party (whatever flavor). Best would be to run for office and see it from the other side.
I know that a huge under appreciated aspect is learning that successful candidates are not like normal people. Going to all the same events, even carpooling with your opponents, you see what it takes to win. Politicians are super human. And have to love it. Doubly so for electeds.
--
As for the Mars Hill guy... That's a story as old as religion.
We now know that some percentage of people are predisposed to authoritarianism. Let's say 15%. If it wasn't Mark Driscoll (?), they'd follow some other charismatic leader.
Well, 15% is a lot. If you have 100, or even 1,000, devoted followers, you have the start of a movement. I've I read up on Mars Hill (and others). Their origins stories are all kinda the same. They sell a great story. Everyone believes their part of something bigger than themselves.
I still don't know what to make of all this.
Linus toxic != Linux toxic
* Chris Lattner was already mentioned in this thread.
* Larry Wall (perl, patch, rn) was unfailingly kind.
* Yukihiro Matsumoto a.k.a. Matz (ruby) is so proverbially nice that people coined MINASWAN (Matz is nice and so we are nice).
And even at pretty high level of Linux, there are people like Alan Cox who do not, to my knowledge, manage by temper tantrum.
Who says this? Just because he is harsh, abrupt and straightforward doesn't necessarily mean he is toxic. And even if he was, nobody is forcing anyone to work with "toxic" linus. If you think Linus is toxic then don't use his kernel, don't use his software and don't read his rants.
Everything is toxic nowadays. Everyone cries about everything being toxic. If you don't praise every mediocrity or give a trophy to everyone who didn't win, you are toxic.
If only we had more "toxic" people like linus instead of people who whine about toxicity imagine what the world would be like.
If you haven't met Chris in person, by the way, you really should if you get the chance. He's as affable in person as he is online.
It an open source project where the goal is to promote quality work, I can see this being a valuable attribute.
All of the other software I've liked in recent years (like Redis or SQLite or Postgres) has maintainers who seem rather easy-going.
You will see Linus rant about what he considers bad code practices, and will castigate people rather brutally for this [1], but he always provides a cogent, often informative explanation. A more mild-mannered lead would not make a scene, and I don't see the point of his expletive-laden gruffness -- it would have been just as effective without the acidity. I guess if you want the Linus who defends code quality from big contributors, you will also have to accept the Linus who verbally destroys individuals.
This justification (i.e., that Linux has to be this way, because it's in a unique position) sounds strange to me. If we're claiming that the relevant sample size is N=1, isn't that equivalent to saying that it's impossible to study whether this management style is necessary or not?
In fact, this argument seems almost backwards to me. Linux can be run this way because it is successful. Nvidia isn't trying to mess up NetBSD's architecture, precisely because NetBSD is not as popular with users.
There's definitely sometimes strains showing. Corporations have often interest in getting specific features in, but don't care that much about maintaining the codebase and/or maintainability.
Definitely causes some strife. I think we most of the time keep it civil enough.
There's plenty of snarky, bad behavior sure. I get that a lot of people don't like it, but none of them bother to understand that these people work together daily and in the most open environment possible. Nobody considers the fact that, in the most infamous example, Mauro has been a contributor since 2006. (I don't know either, not anyone that's a major Linux contributor.) That's right, I wrote 'has' not 'had' because he still contributes to this day. That's not too excuse a behavior, but as a knock against the characterization of a "toxic environment". Maybe for some, but obviously not for others.
I for one, am glad that most of my cringiest, offensive comments were in person and that I was able to walk then back. And, of the stupifying comments that I made in an email, I'm incredibly thankful that they were private.
I.e. "this is a stupid thing to do", not "you are stupid".
> There's something odd about drm people. [2]
> aarch64 is just another druggie name that the ARM people came up with after drinking too much of the spiked water in cambridge. [3]
> YOU are full of bullshit. [4]
> I've come to the conclusion that any programmer that would prefer the project to be in C++ over C is likely a programmer that I really would prefer to piss off [4]
> Mauro, SHUT THE FUCK UP! It's a bug alright - in the kernel. How long have you been a maintainer? And you still haven't learnt the first rule of kernel maintenance? [5]
1: http://lkml.iu.edu/hypermail/linux/kernel/1711.2/01701.html
2: https://www.spinics.net/lists/dri-devel/msg157415.html
3: https://lkml.org/lkml/2012/7/15/133