2004-12-01

Scobleizer: Microsoft Geek Blogger

Why is Robert Scoble bitching about Linux users talking about how good they have it? Who the hell knows.

Most Linux distros include their source code on an extra CD or three, making it not only possible but easy to break the Linux kernel in new and interesting ways. Anyone can do it. It's not even a big deal to get the compiler set up. And, naturally, Linux aficionados love this power. But Scoble has to go and have a hissy fit about all the i's that need to be dotted and all the t's that need to be crossed before any kernel change gets the thumbs up. "Wahh!" Scoble cries. "Wahh! I am behaving like a baby because no one is paying attention to the complexity of the Microsoft process."

To this, I can only suggest that Scoble STFU. The Windows kernel demands such an incredibly painful update procedure because there is only one. There's only one kernel and that kernel will have Microsoft's seal of approval (whatever that's good for). Don't get me wrong. I appreciate the thoroughness that Microsoft uses in its development process. I wonder why Scoble didn't bother to mention how recent this attitude is. Nine years ago, Microsoft was happy to sell you a copy of Windows 95 that could barely stay up for a week, and suffered noticeable system performance after about a day and a half of normal use. Are things better now? Sure. You have to convince people that it's not just the same people selling the same snake oil ten years later, Scoble. And whining ain't gonna cut it.

The real problem here isn't that Microsoft has a thorough process and Linux doesn't. The real problem is that if Microsoft had its way, the only way to run code would be theirs and you'd be downright thankful to have to re-purchase your operating system every three years.

Right now, if you want to edit the NT kernel, it costs quite a bit in licensing fees and software, all of which goes straight into Redmond's coffers. And that's not including the non-disclosure agreements you have to sign, basically promising Microsoft your immortal soul should you divulge to anyone that the kernel code contains a "for()" loop and a variable called "char *ch".

Don't fight the wrong battles here, folks. Always remember that Linux isn't about "better". Microsoft will always throw more money at a problem than anyone else ever could. It's about "other". There has to be another way to write kernel code. It's not all going to be golden. Dare I say that most kernel changes that aren't argued to death on lkml are utter garbage. Still, you don't go diamond mining to get tons of gravel. You go diamond mining because of that eternal potential that you'll find something remarkable. The Linux landscape is full of diamonds: low-latency and pre-emptive patches, and Rik van Riel's VM work stand out most clearly. These things wouldn't exist in the NT pay-to-play monoculture.

Right now there are plenty of great kernel developers waiting to be found. They're ten-year-olds and database programmers who run CPU usage graphing software all day long. They are people from around the world who don't know enough to actually get hired writing kernel code yet. Worse yet, they can't afford to take the classes and get the Master's needed to prove to the world that they are the best of the best. Enter Linux: a low-cost way to show anyone who cares to look what kernel code looks like. They are the figurative diamonds in the rough, and though Scoble will oft bemoan how much work goes into the Windows kernel, he will never brag about how cheap it is. It's not.

If you want to use Windows and enjoy having literally tens of thousands of people beta test every last menu for you, go ahead. Good for you. If you want to expand your mind and spare your wallet, download a Red Hat source CD. And as you browse, remember that Bill Gates and Steve Ballmer would rather you just pay them dearly to learn the exact same thing. Remember, it's not about being better, it's about having a choice.

Besides, if you truly wanted both better and cheaper, you'd go with a BSD.

No comments: