On user program breakage from Linux kernel changes
article.gmane.org
article.gmane.org
> But since applications *do* care, and since we *do* have
> multiple error values, we stick to the old ones, unless
> there are some *very* good reasons not to.
Perhaps the original email could have been about 10 lines long with the quote above being the main point? My point is: is it worth attempting to convey anger in a text only medium?I can give as good as I get in a good old shouting match f2f. My thing is waving my arms about. Other colleagues find that funny and start laughing. Then I realise, and we all calm down, then we find a way out of the problem. I find it slightly strange trying to do that in a text only medium.
I certainly agree that a company/team/project needs strong leaders but being strong/focused/passionate/ambitious and being a dick to people has nothing to do with each other. At all.
If I'd done something truly stupid and irresponsible at a job, I would expect to get yelled at by my boss, but in private, not in front of the whole company.
Clearly this sort of behavior seems to work for Linus, given that there's no shortage of talented kernel developers flocking to the project, but it still rubs me the wrong way.
The thing is you have to take it context. People that work with Linus know how he acts, and know how to interpret what he does. Linus's tendency to (temporarily) go ballistic very often rubs those unfamiliar with it the wrong way, but you learn after a while that he really isn't some kind of mega-aggressive jerk.
I don't like (and won't stand for) "abusive" control-freak type-A bosses, but Linus isn't one of those.
Points one knows after being on the LKML for a while and seeing a few Linus rants:
(1) He doesn't do this every day, but he does it periodically so it's Not Just You.
(2) He almost always does it For A Good Reason; it's not just because he's in a bad mood, it's really because you did something stupid. If you didn't do something stupid, and he's just confused, see points (4) and (5).
(3) Even if you think he's got the volume up too high, it's generally fairly proportionate to the stupidity of the original act (subtle confusion is less stupid than knowingly breaking huge numbers of apps), and proportionate to the "you should have known better" factor (i.e., his direct lieutenants are held to a much higher standard that Little-Joey-the-first-time-driver-author).
(4) He usually Calms Down Quickly, and gets more technical; really it's not personal. He wants to solve the problem, not argue. However ranty his initial message, it's not just an insult; it says what you did wrong and why.
(5) If you were really right, and he was wrong, he'll quickly admit his error after being presented with a good argument, and will start calling himself an idiot. He doesn't hold grudges. [Judging from the exchanges I've seen, though, he's usually not wrong; he has very, very, good instincts, and I suppose that's one reason why he so confidently goes off ranting...if he's not sure about something he'll ask a question instead.]
Clearly opinions on this vary; I'm just stating mine.
The analogy was not between introducing regressions in open source vs. commercial software, it was between introducing this particular regression, in the way that it happened, and the abstract idea of doing something so severe in an arbitrary abstract company -- not software company -- any company; something so serious that it warrants immediate dismissal. Surely anyone can think of something that satisfies the above criteria in whatever field they are working without having to bound the free variables and twist the analogy in a way that it fails just to complain that it does.
I'm not complaining about your analogy; I'm pointing out that the conclusion is simply incorrect.
The employee would have grounds for disciplinary action against the person making the rant. And if it's a pattern of behaviour the employee could have a case for constructive dismissal.
Sure, and in the above context they are less effective. So why would he care?
> he might calm down a little and learn one or two things about social interaction
Why? What purpose would that serve? The LKML is one of the last few places where politically correct bullshit does not prevail. Communication is efficient and effective. There is no evidence that changing the tone would make it more efficient and more effective, but there's evidence galore that the opposite would happen. Experience has thought me that the only people hurt in the process are technical morons, and such people have no place in a technical discussion.
If someone cares more about the language or social niceties than about the correctitude of technical solutions they have no place in a technical community.
I don't know if you have already accomplished something like that, if you don't go ahead and prove that you can with your political correct methods.
There are a lot of people who are nice and successful software project leaders. Being a dick is not inherent to being successful in the software field.
I do agree that the second post was more effective in explaining Mauro's mistake, and would prefer myself to err on the side of politeness, but I suppose there can be benefits to acting like an asshole from time to time. Some changes are not ok to make, and perhaps it's justifiable to "make an example out of someone" from time to time to ensure that everyone understands why.
What is this evidence? Do you have an example of a project that failed because the tone of its community changed from hostility to politeness?
"Kernel dev. policy is not to break user space. ENOENT is not a valid return from ioctl. Kernel maintainers are expected to know and adhere to this" is the only point that Linus had to make in this discussion.
People just don't understand why he added a bunch of swearing and questioning of the dev's basic intelligence. That's all.
This is absolutely, 100% false. Do you have any sort of data to back this up?
"There is no evidence that changing the tone would make it more efficient and more effective, but there's evidence galore that the opposite would happen."
Again, completely, 100% could not be more incorrect.
Do you really think that just saying "X is true" makes it so?
"If someone cares more about the language or social niceties than about the correctitude of technical solutions they have no place in a technical community."
I'm not really sure its an issue of "more" one versus the other, but why can't you communicate with someone in a correct manner without screaming and swearing at them in all caps? Its not mutually exclusive that one can either talk like my grandmother or be a technical wiz.
This is probably the worst post I've ever seen on HN, and that's saying something. Every single point relies on evidence you seemed to make up in your head?
He's allowed to have a cranky day sometimes, especially when somebody screws up in a way that he has been very specific about in the past.
1. Kernel APIs to userland are always backwards compatible
2. If you break something, you will take responsibility
If maintainer breaks both of those rules, how can you accept patches from him/her ever again? Remember that amount of patches handled by kernel core team is enormous, you have to able to trust subsystem maintainers at least some degree. In corporate world this would have caused immediate "clear your desk" reaction.
Otherwise it will become a "kolkhoz". )
He's right of course... Breaking semantics is bad.