That was a couple of years ago. Yet here we are, and I’ve done all of these things. Not only have I learned C++, I’ve actually become *good* at it (there, I said it). Meanwhile, I’m actually contributing to SpiderMonkey in a meaningful way, and the damn thing looks less and less like a black box to me. I’ve come a long way. But I can’t help but wonder. If I hadn’t been this unsure about my own abilities, how much farther could I have been by now? We have people like Tom Schuster (who I greatly admire, by the way) working on SpiderMonkey, and he’s still in high school. I wouldn’t have even dared to touch code like that at that age.
I suspect I’m not alone in this feeling. One of my favorite quotes is that writing code is not engineering, its a craft. That means it has an artistic aspect to it, something that is very personal, and people care deeply about. That’s why so many developers feel like you are attacking them personally when you insult their code. Surely, if my code sucks, that must mean I suck as a developer, right? It’s all to easy to get discouraged when that happens, or to give up on writing code all together.
Which brings me to my main point. Unless I really am the only developer out there who has self-confidence issues (and I really doubt I am), why are we collectively looking up to people like Linus Torvalds? Here is a man that seems to make it a point to be rude and obnoxious to people for no other reason that he can. A few famous examples are the Tanenbaum-Torvalds debate, this rant on C++, and the latest example, this explosion against a Red Hat developer.
Sure, more often than not, Linus has a valid point (I agree with all of his points in the above examples), but he could have made it with non of the obnoxiousness, and still get it across. Being obnoxious does not help to strengthen your argument, it only helps to antagonize people, and damage their self esteem. Being told in public that something you made, and by extension, *you* are moronic, can be extremely humiliating.
Some people learn not to take this kind of criticism personally. Most don’t. Saying that this is just the way the open source community works, so you have to deal with it, shows a complete disregard for the way most people work. We are not machines. We are human beings. We have feelings. To disregard those feelings as irrelevant is callous, and as far as I’m concerned signs of a narrow mind.
Other people accept this tone from Torvalds because he knows them personally, and they know he respects their work. While that may be ok, these interactions happen in public, and other people might not know that these two know each other. It still sends across the message that it is ok for developers to talk to each other like that.
Why do we accept this kind of behavior, even revere it? Is it because Torvalds is so much smarter than us, and we want to be just as smart as him one day? Does the fact that he acts condescending and rude towards other reinforce our view of him as some kind of programmer God? Or is it that by berating others, Torvalds makes us feel better about our own feelings of inadequacy?
No matter what the reason, Torvalds should know better than this. Whether he wants to or not, he is a leading figure in the open source community. Whatever he does is seen as a standard of what is acceptable in the community as a whole. Torvalds either doesn’t recognize this, or doesn’t care. He can be as obnoxious as he likes. He is Benevolent Dictator For Life, after all, and his kernel has become way too important to just ignore him.
Acting like a dick just because you can is not a sign of strong leadership, however. Even being passionate about something you care about (and Torvalds *is* passionate) is no excuse. A true leader doesn’t need to be obnoxious to get his point across. As long as we don’t stop revering people like Torvalds, however, it will be impossible to change that idea.
Linus Torvalds may be a great developer, but he’s a terrible role model for the Open Source community.