It’s also important to recognize that essentially nobody chooses to be incompetent, so upping the “punishment” for incompetence does nothing to incentivize some other choice; rather what you perceive as incompetence is usually the result of either someone not knowing or understanding something you understand, or YOU not knowing or understanding something THEY understand. In the former case, lambasting someone will do nothing to improve their knowledge and help them be a better contributor; in the latter, lambasting someone over your own ignorance merely demonstrates to others what an ass you are.
Nonsense! Sometimes people decide to do just enough to get by in life and otherwise completely check out. Other times, people decide to care about their work. Sometimes, they care so much that they get deeply emotionally invested in it. What people do and do not care about is based on their values, and values are instilled by the culture around them. Part of that culture is maintained by publicly rebuking people for flouting cultural norms.
And--by the way--everyone who has ever criticized Linus for the way he communicates is doing the exact same thing--publicly rebuking people for flouting some cultural norm that they want to normalize.
Now, judging from the results, I would say that for kernel development, "not breaking backwards compatibility or tanking performance" has been an extremely valuable cultural norm to maintain, while "not cursing at people on the mailing list" hasn't been necessary to date.
Now, did the second half of my paragraph above in any way help my point? Are you feeling any more inclined to consider my point of view? Would you enjoy being spoken to that way in your job? Is this exchange of ideas in any way improved by my assuming you’re a fool?
Linus Torvalds is widely accepted as an expert on kernel development (otherwise we wouldn’t be using his kernel and no one would care). Most Linux contributors respect Linus and care about his respect and approval. Conversely, I have no idea who the hell you are and no desire to earn your approval. As far as I know, you have never run any open source project of any real consequence or demonstrated any real responsibility for anything in your entire life. Why should I give a shit what you think of me and my ideas?
The rants that I have seen from Linus were in discussing points that were pretty unassailable and absolute: don’t introduce regressions that break userspace, don’t make a system call to read every single byte, etc. Being “some engineer from IBM or Intel” isn’t an antidote for the natural human impulse to cut corners or do dumb shit. Linus, in my view, never assumed that anyone was a fool: he just told them they were fools after they demonstrated their foolishness to him, most of the time in cases where they either did know better or damned well should have.
And yes, if I fucked up badly enough, I would want to be addressed that way, or at least tolerate it, given that it was from someone I respected and whose opinion mattered to me, or at least given that I was indisputably in the wrong. Working in an environment where no one is ever held accountable for cutting corners and fucking over everyone else is in many ways even more poisonous than the occasional public shaming.
Steve Jobs is famous for being absolutely confident of himself (even for things that he didn't really know about) and for expecting the impossible from his employees (and being verbally abusive about it). This is a recipe for surrounding yourself with yes-men and for making your employees behave defensively when they are around you.
Another thing is that people, like most animals, are better encouraged by positive reinforcement than by punishment.
From my perspective, people react to social condemnation of their actions. When someone does something incompetent, and they are gently corrected, that sends a certain message. When someone does something incompetent and they are lambasted, that sends the message not only that their work was of low quality but also that doing low-quality work is socially unacceptable. Since social acceptance is a much higher driving force for humans than merely being thought of as technically proficient, that would seem to be more effective.