My views on open source
I was considering a post on open source for a few days, and then Scoble posted a little snippet which fired me into action...
I think the concept of open source is wonderful. I always see it relating back to encryption technologies - you need to publish the algorithm publicly for scrutiny. I am not a fan of 'security by obscurity' in which if the method used to encrypt (the lock) is exposed, the lock can be picked.
One of the main tenets behind open source that I love is that everyone gets to scrutinize the code for security, performance, stability and other factors. I call this open source testing. This is, however, as far as I can go with the open source movement.
Open source development is a concept where a whole swag of developers get together and maintain a code base. For Linux there are thousands of these contributors. These people can all change the code base. Give the relevant Linux market share, if the same proportion of developers got on board an open source windows, there would be millions.
Scoble makes a good point - who is regression testing all these changes? Who makes sure that the thousands of products made for windows still work? Having holus-bolus changes to the kernel by everyman and his dog is just dumb for these reasons. It is not as bad as it sounds, these changes are generally reviewed by a committee before being accepted for major builds (it doesn't stop someone from modifying their own version though - more compatibility issues). This kind of managed acceptance works well for bug fixes, but what about new development? With all those thousands of developers having their two cents worth and trying to agree on something, you end with a tech version of groupthink which doesn't see much hope of doing anything revolutionary to the way we run our systems.
I like the idea that Microsoft is paying really, really smart people the likes of Don Box to come and create new ways of computing. Companies like Microsoft and IBM are working together to create the next generation of operating systems. Thank god.
Many Linux zealots have the view that that OS is perfect, like some kind of divine creation that cannot be evolved, only refined. Surely in this day and age we can all agree that there is a better way to do everything, and we need to strive to find it.
Ask anyone at Microsoft if they think that the Windows kernel is as good as the Linux kernel, and the will laugh. Of course it isn't. But there's a reason - when my mum installs windows xp, over windows 95, all her programs still work. That's the goal, to protect the people who use the stuff for productivity from drastic changes. That's why the windows still has a hard-coded fix for ARMYMEN.EXE to make sure it runs in the right graphics mode. That's also why MS scrapped WinFS from Longhorn and made sure Avalon and Indigo could run in windows XP. Because they care about their customers and understand that not everyone is a computer geek.
Closed source development is crucial in order for people to be productive in their computing. The only thing that I could ask is that MS makes their codebase public (read-only) to increase security and stability, and relies on their ability to innovate instead of worrying about others stealing their secrets.