Linus wrote git to be used via email as part of its core design, so that was just the way he rolled back then. GitHub and Gitlab and all the cloud platforms and tooling came afterwards and it took time to reach a critical mass, and even then, some folks stick to what they’re used to.
Looking at Linus’ GitHub profile, looks like not much has changed — 100% commits, 0% everything else.
I like that Linus is so strict on not breaking user space because this obviously aids with compatibility and it’s probably a big part of why rolling releases work.
But I sure hope Linus’ eventual successor won’t be toxic and…cringe. It’s hard to take someone serious when he’s raging this much.
I like that Linus is so strict on not breaking user space because this obviously aids with compatibility and it’s probably a big part of why rolling releases work.
I think kernel still has compatibility with paleolithic glibc enabled by default
Honestly, I maybe get why some people are too sensitive to work in such conditions, but from my professional experience, I’d much rather prefer getting angry mail explaining why my actions are stupid, than everyone being nice to one another but the codebase is utter garbage and everything falls apart, which happens a lot in private companies.
It’s all fun and games till the baby blows up when it really really shouldn’t blow up. And I personally, would rather have people learn that pain an email than learn that a million people are in pain because of their ignorance/bad work.
you seem to have created a false dichotomy where it’s impossible to fix bad code without being abusive. would you like me to call you “dumb motherfucker” or is this explanation enough?
I think you’ve missed what the sin was, as well as the context of the players.
The sin was not the bad code. Let me say it one more time for clarity: the issue was not the code
The issue was that, when presented with the defect (inevitable outcome of any software project: not intrinsically sinful) Mauro started blaming other people on a public mailing list
Mauro, being a maintainer, was in a position of authority. Like a police officer, their bad behaviour reflected poorly on the organization*as a whole.
If a cop was abusing their power (publicly or not), I expect the chief of police to come down on that abuser; to make clear that this abuse is absolutely unacceptable, not only within the accute instance, but within the greater context of the expectation of the behaviour of the whole organization.
Mauro chose the context of his abusive behaviour as the public mailing list.
Him getting slapped down in that same forum is the direct result of his own choices.
In the same way that I would be upset with the chief of police not publicly and harshy denouncing an abusive police officer, so would I be upset with the absence of such a response in this situation
I didn’t miss the sin. The sin isn’t relevant to me. You don’t treat people like that. Whatever you hope to accomplish, you can accomplish without treating people like that. If someone else is being abusive, that’s not license for you to be abusive in response. If a cop was abusing their power would you expect the chief of police to publicly berate and insult him, or would you expect the standards to be enforced without resorting to that?
When you abuse someone for being abusive you don’t make it clear that abuse is unacceptable. In fact, you do the opposite. You establish that abuse is a part of your culture. If I was considering contributing to the kernel and saw this exchange, I’d walk away. I don’t need that shit, not from Mauro, not from Linus, not from the Lord hisownself. It damages the organization long-term.
It was a hash admonishment for the specific choices and actions that the person did that were wrong , and that the person, based on their position of authority should absolutely know to be wrong.
The confluence of factors here are what differentiates this from abuse. By calling this abuse, you’re actually diminishing what actual abuse is.
Or nice in person, then all the toxic bakstabbing behind the scenes.
This reads like the Sh*t My Dad says book. The author said it seemed harsh to some people, but the bonus was there was never any passive agressiveness, and you always knew exactly where you stood.
Yeah, that’s a hard pass on passive aggressiveness, constructive criticism isn’t either of those things nor rude and angry ranting. Love Linus, but he really did need to chill out a bit more with these things. He could have gotten the same point across without coming across as yelling at the guy, just firmly pointing out that it was caused by the patch, the patch did things it shouldn’t ever do, and don’t break userspace or blame userspace programs
Yeah this kind of attitude is never a productive strategy unless you want to surround yourself only with assholes. It also demonstrates a complete lack of ability to manage humans and keep your values straight when you become upset and stressed out, which is a massive red flag to hold up as someone running a project.
In general it seems like a lot of people get into computers because they think it is a magic fantasy land where you don’t have to practice people skills and interact with other humans… when like every other industry after a certain seniority in a project it always, always, always comes down to managing humans and human interaction skills. The idea of the tech wizard programmer who can be an asshole because they are a genius at coding is just so tired at this point.
No, not at all. I appreciate that of her. She doesn’t even look scary when I’m being told off. Which is why I put the word angry in quotation marks. She tries to sound angry and look scary but we kind of brush it off. Not that I didn’t respect her authority.
Exactly. I’ve worked under terrible managers and some great ones. Great ones get pissed off but they never, ever try and let emotions out. They were all to the point and knew what worked for every guy.
I hate passive-aggressiveness, because I want to know what people really think of me. How can you feel secure if you know that somebody might secretly hate you and is just waiting for the right time to put a knife in your back?
Being polite doesn’t mean being passive-aggressive. I can tell you that I completely disagree with your opinion without calling you “a brainless ape that should’ve fucking stayed in school because your dumb ass cannot comprehend the simplest matters”.
You don’t need to tell each other to shut the fuck up in all caps and call each other idiots to get the point across. It’s possible to instruct your peers in a much more professional manner.
I don’t know the full context, but that message doesn’t sound like it was his first reaction to a first patch he got from that guy. I’m not implying anything, but I’m also no stranger to people resilient to reasoning. I’m not a fan of this tone or language, but I don’t think it’s that big of a deal either
I would tell you that you haven’t worked with enough people. I don’t disagree but occasionally you find people that need a really really good reminder that they not only suck but you’ve tried to be nice multiple times and it didn’t penetrate.
I agree that some people need harder tones, but I don’t think anyone needs the abusive language that Linus used. If that feels like the only option, I think it probably means the person has gaps in their social toolbox.
And also if you are a manager and one of the team members perform poorly and you cannot help the person improve, you should rather let that person go before you get to a state, in which you write such mails.
You can be polite or just straightforward and still get your message across.
“We don’t blame bugs on user programs”, “This is not an error code that should be used here”, “Your coding standards may have relaxed over your tenure, be sure to maintain quality code.”, etc. I get the annoyance, but you can be firm without yelling, especially in a professional environment.
Edit: Seeing the full context of Mauro’s message (posted below), I can see why Linus took this tone. Mauro was being pretty condescending to a dev.
Programmers are sensitive enough. All you have to do is raise your voice slightly, and they’ll think you’re yelling. You could probably make one cry just by saying their patch isn’t good, without having to resort to aggressive language.*
I don’t know the whole history, but this seems highly unnecessary, and typical Linus. Didn’t he resolve to be better a few years ago?
The 23rd is the day before Christmas. We celebrate the eve here in the Nordics. The 25th is the relaxing day after Christmas when you eat leftovers and do fuck all all day.
Actually one day before Christmas in Finland and other Nordic countries. I don’t know if Linus still celebrates Christmas like that, having resided in the US for a long time already, but the big celebration is here always the 24th of December, and 25th–26th is mostly just resting after it.
I agree, it’s completely unacceptable to introduce a bug and then to instead of taking responsibility for introducing such a bug, you start pointing fingers at everybody else.
It’s like when a car hits a cyclist following all the rules and then tries to blame the cyclist for not following some made up rules that only exist in the drivers head “Cyclists should be on the SIDEWALK if they don’t wanna get hit!”
Not only were they wrong to hit them, they’re DOUBLE wrong for trying to blame them after the fact.
You’re agreeing with something I didn’t state. I’m not defending the idea of introducing bugs through bad code and then blaming others. I think the way Linus responded to that was the issue.
After I saw the car hit the cyclist, I rushed to his aid.
The driver came out of the car, yelling at the cyclist for being on the street.
“Shut the fuck up. Get back in your car. You are the problem. It was wrong of you to hit him and wrong of you to blame him you fucking idiot. You can help, or you can fuck off, but you’re not going to stand here and blame the man you just injured with your own incompetence”, I screamed at the driver.
I don’t think I am missing the forest. There’s not an issue with the idea of correcting a developer, but there is an issue in the way the correction was carried out. Just because something behaves “better” after punishment doesn’t mean the punishment was good. Ends justifying means and all.
That’s very “ends justify the means” of you. No, that’s not the question here. Linus could have gotten the same results without the yelling and insults. You do not need either of those to be direct, assertive, and clear on what the issue is, something that Linus has since learned
Both Mauro and Linus are human. I trust them to be so. I don’t get the point of endlessly pontificating about human quirks & behavior, we are all not assembled from the same factory. And we all grow and we learn. No one’s perfect.
Plus, your argument fails to address the main issue here, Mauro needing to realize that he needs to improve in order to continue contributing to a project shared among many people and one passionately guarded by Linus as his baby.
Nah it’s completely fine. I vastly prefer an angry-sounding takedown over a passive aggressive takedown and a takedown Mauro definitely deserved because his code was, in fact, utter shite, and that as a maintainer. This isn’t “oh he’s a noob he doesn’t know how the kernel works” type of territory. Also note that this happened after he had been told what’s up in a neutral and factual way: Linus, even in his most management by perkele days, never made those things the first reply to anything. So Mauro got his chance to spot that he fucked up and correct his approach, he didn’t, therefore, it has to be said loudly. Simple as that.
Also, no “you should be aborted retroactively” in sight anywhere. Yeah that stuff wasn’t necessary even though everyone with an ounce of social intelligence should readily spot that those insults were always so over the top as to be obviously humorous.
It’s possible to be assertive and assign responsibility for a screwup without being a dick. “Being a dick” is the nothing else has worked option, not step one.
“being a dick” and “assertive” are weasel terms which do a hell a lot of lifting in your argument there. I have no idea where your line for behaviour to be deemed acceptable actually is.
IMO, no, Linus wasn’t a dick. He called out a specific attitude and behaviour which Mauro is not supposed to show in his role as maintainer. What about Mauro being a dick because he went in all self-righteous like “this is a bug in pulseaudio”?
If you were a restaurant manager, and a server told a customer that he’s not going to serve beer with steak but only wine because “drinking beer with steak is obviously wrong”, what would you do? Chew them out, of course. It’s way out of line. This isn’t Linus exploding over nothing just to bully someone, that’s a thing he has never done.
If you want someone toxic to complain about in the FOSS space pick Lennart Poettering, the kind of guy who replies to “We’d like to be able to disable various features to keep things small” with “why do you hate disabled people they need accessibility”. More generally speaking: Focussing on tone never ends up well. You can be incredibly toxic in the most flowery of idioms.
Your example is from one of this industries notorious for being toxic – that doesn’t make it right.
“Why would you think that’s even remotely acceptable? Now I have to go apologize and possible comp a meal.” Depending on the circumstance: take them off that table, send them home, or fire them. Being in control of themselves is one of the defining aspects of leadership, and being abusive is the sign a “leader” that isn’t.
If they start being a dick: sure, game on – so long as you’re not demeaning yourself doing it. But most people are capable of a degree of self reflection and accountability once you make the situation clear to them, and they deserve that chance. Sometimes people don’t even realize they’re the ones that screwed up, even when it’s obvious to everyone else.
There’s it again. What, precisely, is it that makes Linus’ comment “abusive”? Is he gaslighting? Is he attacking Mauro over what he is? All I see is calling out, harshly, what Mauro did, behaviour that actually occurred and that is not acceptable and that Mauro knows is not acceptable. “We do not break userspace” is the rule #1 of Linux development, Mauro ignored it and was a dick about it.
Or do you disagree with the tone of the whole thing. Things like “Shut up” instead of “This is not up for discussion”. If so, then please for the love of the gods please shut up.
Maybe fair in a typical setting, but getting iffy around programmers, especially kernel maintainers. I’m convinced linux and foss in general would not exist without the autism spectrum, and who knows maybe even borderline personality disorders
One can sternly address serious mistakes by a subordinate without being outright mean about it. Doing so calmly and seriously is usually more effective anyway.
Yeah, maybe left kernal development (like Linus indicated he may have done to various people), maybe that person was traumatized. But alas, there’s no other way to let a human being know they made a mistake without making exaggerated personal attacks.
They are literally interacting with the dudes life work, and apparently shitting on core rules. No surprise he got heated. It’s not just a job to that dude, it’s like he slapped his mother
All attacks were related.to the professional output (the code, and the ability to code)
Nah my man. No excuse to act like an ass like that; life’s work or not. That’s simply a sign of poor emotional maturity, and is (plain and simple) abusive behavior. People make mistakes, regardless of the severity of the mistake. Let’s put it another way: would you be okay with someone talking to a child that way? If not, why is it okay to do so to an adult? Just because we’re older, doesn’t mean we deserve it.
Very good point. Berating someone for making a mistake does not help either party. Even more so, when the one screaming doesn’t actually mention what went wrong, so you can correct it next time
Yeah, it’s kind of invigorating to see somebody speak so plainly. No “There’s a couple issues we should maybe discuss”, no “Let’s loop back on that sometime”, no “Hmm, is that really the best approach? Do you have any documentation?” Just a straightforward “Dude, this is shit! Here’s some reasons why!”"
Having worked for a decade in tech, I would love it of people were this direct.
Well that’s pretty hilariously ironic. I’m nothing like this, I wish I were more comfortable being direct. But meanwhile, you heap abuse on me and threaten to beat me up because I said “boy, it’s nice to see someone speaking directly”. You’re much worse than Torvalds, and I completely agree it would be a terrible idea for us to ever work together. Or for you to work with anyone else, for that matter.
Having worked in tech for two and a half decades, and in places that were this direct - no thanks. There’s a fine line between being clear and direct, and being toxic - what Torvalds did here was toxic, and in many workplaces of today would be classed as bullying. Being subjected to this ‘directness’ for any given amount of time will do a number on most people’s personality and self-esteem. People don’t improve themselves if all you do is shit on them.
Agreed. I think it’s amusing to observe. Being around it yourself is quite difficult. Being the target of it sucks and having your peer go off the deep end and finding a way to reel them in sucks too.
Fair. I’ve worked in tech for just over a decade now, and I’ve only been in the polar opposite environment, and found it sorta suffocating. Everybody knows this guy is pumping out crap, and every bug in the system comes from his part of the code, but well…if anybody says it, or even hints it, they’re being unnecessarily confrontational, and nobody ever gives anything but positive feedback in peer reviews.
I feel, from my limited experience, like the 90s might have been peak machismo rock star hacker work culture, and the pendulum has now swung to the very far side.
It’s perfectly possible to say “this is unacceptable, we never break userspace. Mauro, your change is obviously what is breaking userspace because …” without adding “SHUT THE FUCK UP” or “[all of this is] TOTAL CRAP”, i.e. being direct without being derogatory.
I mean, that’s fair, and as was pointed out elsewhere Linus has sought help for his temper.
On the other hand, for all the talk of how “unprofessional” it was for him to behave this way, he did shepherd an OS kernel from a hobby project to the most popular OS on the planet (with the possible exception of Minix, apparently…)
I agree that polite directness might be better, bu IMHO the more common polite indirectness and avoidance of any hint of conflict is clearly worse.
I read a lot of frustration in that post. I don’t know if that frustration was warranted, but I’ve been in (non-tech) leadership where you almost just have to scream like this to get the point across.
“This is incorrect. Here’s why. 1. 2. 3.” no need to be disrespectful, no need to make it even call it a fuck up. either the individual has the maturity to grow or …not. but then… I certainly understand the frustration. There’s just some people… that definitely struck a nerve of the ‘you don’t get it, do you?’ variety. like the guy who told me (working contract security), that it was illegal for us to make them go outside in winter, because below-freezing is too dangerous. (yeah. We, uh, provided them with some fairly good parkas, and had hats and gloves available. with ‘if you need more’ accommodation already mentioned.)(Oh, and he was only needing to be outside for about ten, or so minutes.)
It’s often clear to see that Linus hasn’t experienced the “and find out” part of what happens when you fuck around. I know that many of us techies aren’t the most confrontational types, but I’m surprised that no one has hit him yet.
I like the discussion this has generated around toxicity and professionalism, but I’m still very amused by the fact that he censored himself in the last line after not doing so for the rest of the message.
Yeah, those mailing lists used to have some quite funny stuff; my favorite so far is smth along the lines of “whoever thought this was a good idea should be retroactively aborted”.
But, on the other hand, damn it’s toxic. Should’ve really sucked to work on the kernel back then.
I was curious as I couldn’t help but laugh, but damn dude. That is rough. Hilarious looking at it now, but I feel bad for whomever was at the receiving end.
Of course, I’d also suggest that whoever was the genius who thought it was a good idea to read things ONE FUCKING BYTE AT A TIME with system calls for each byte should be retroactively aborted. Who the fuck does idiotic things like that? How did they not die as babies, considering that they were likely too stupid to find a tit to suck on?
Someone else pointed out that he actually apologized for being toxic sometimes and took some time off as a kernel maintainer because of that. Nice to see.
You seem eager to pose this “if the product was undamaged” as if you can quantify what might have happened differently, but then in a comment below you ask someone else to prove that maintainers left.
It might shock you to learn that products are developed by people. Actual people stay or leave and work wildly differently based on things like respect, expectations, and being in a hostile environment.
Want proof of that? Go work on an actual project with a team sometime.
edit - And this isn’t even accounting for the ways toxic communication impedes wider adoption of a product
People who could be easily replaced. It’s a non issue.
I do work on software teams, and don’t conduct myself like Linus, because I’m not Linus. That pattern of communication isn’t available to me, an average engineer.
But if someone spoke to me that way (and they have) I took it as a clear signal I need to level up and act right. Not an invitation to feel bad about myself.
Linux has clearly not missed out on wide adoption in any way.
He did hurt the mission. Plenty of kernel maintainers have left, and those were people who had been with the project for years. Losing experienced people to toxicity 1000% harms both the project and the product.
In almost instances of Linus going off on one in public it is because maintainers weren’t doing their jobs (to act as quality gatekeepers), or particular developers thinking they could steam roll road changes through if they kept submitting them, or not listening to what Linus was saying. I remember Linus used to ream out Hans Reiser a lot (the guy who was subsequently imprisoned for murdering his wife) because he constantly tried to get ReiserFS into the kernel despite serious issues Linus had with it.
So generally when you see a rant, there is a history behind it and the rant itself is directed with a point. I also think it’s self evident that the kernel has benefited from this “benevolent dictator” model. I’m sure some people have gotten all precious over their feelings being hurt. The rest raised their game and the result has been a code quality standard you’ll probably never see anywhere else.
I can understand Linus getting frustrated at people who consistently push him (i e. Lennart) and I agree that there’s a reason he’s stayed at the helm of kernel maintenance and development all this time; however, that doesn’t denigrate that this is an unacceptable way to treat someone which Linus himself acknowledges! If this were about ReiserFS going into the kernel, I would understand that. But a poorly made commit should not be met with this vitriol. I’m not saying there shouldn’t be consequences for poor work, but this is not it.
If there’s a surplus of talent (sounds like Mauro was dead weight) then at most he was just rude on Mauro’s way out the door.
I’m not saying it’s cool to be rude, but if it’s Linus’ review then you get what you get. To be butthurt about someone being rude to you should motivate you to learn your code interactions better. (In this case error handling)
You are just going to die on this hill, aren’t you? Even Linus recognized that his attitude was toxic, eventually, and that it was having a negative impact on the kernel development community. Yes, people left. Talented people decided it wasn’t worth the abuse.
No, was the product reduced or damaged, not did people leave. No one cares about individuals, if they can be replaced without blocking the progress of the project.
Those articles are very whiney. They chose to work on that project, with a singular leader. It’s his house, his rules, his standards.
You’re making judgements on people’s utility and ability based on the volatile reactions of man who admits to having issues. That creates toxic environments where people are not encouraged to do better, but any amount of change is due to fear of repercussions. This does not promote growth or new ideas that would genuinely improve something, but rather a fear of failure if they attempt something new. This also isn’t useful programming criticism because the actual useful criticism is buried in an emotional slurry that’s going to make something less receptive to the useful information.
You are a useless peace of dead weight in this community. Your comments suck and you have no idea how people work and how to professionally communicate. I hope you never have a job, let alone one in a management role. You should leave and never come back. Get aborted retroactively! You make the world a worse place by your mere existance!
How do you feel about that? Are you going to change your behavior because of these “stern words”? Or are you going to think “What an idiot” and ignore everything I said?
And we both are just anonymous randos on the internet and while this comment is public, not a lot of people are going to read it and it will have zero impact to either of our lives.
Now imagine I was your boss, both of us are publically known people and I post this on the company social media account together with your full name.
And people still dig this up 10 years later to laugh at it.
You’re making a false equivalency where stern is the same as toxic. There are more professional and clear ways to communicate the issues with code quality. No one is disagreeing that those need to be communicated. The Issue is how.
And because you seem to take stock in what Torvalds says, then consider that if he himself admitted these were harmful and inefficient methods of communication then they probably were. If it was leading to fantastic results in the kernel i don’t see why he would’ve stopped. My guess is that he learned something that it seems you may still have yet to: empathy.
Jesus Christ, telling someone to kill themselves is so beyond just professional considerations – it is basic human decency to refrain from saying such things. I hope he continues to work on his behavior and finds a more productive way to interact with human beings.
Add comment