I woke up to some interesting news from Microsoft’s Build Conference. Microsoft is creating a community called the .Net Foundation with the aim of open sourcing key components of the .Net framework. As part of it, they also announced an open source C# compiler called Roslyn. It seems that their goals are even broader; rumor has it that they might open source the .Net Framework itself and actively support Mono on non-Windows platforms.
It’s too little, too late, however.
The problem with C# is .Net. The problem with .Net is Windows.
For programmers who have used Linux or a Mac for a while, the lack of a good command shell in Windows is a big handicap. Even worse, the GUI and the command shell seems utterly tasteless. People genuinely interested in programming are unlikely to choose Windows over more flexible alternatives.
And that happens to be .Net’s biggest problem. .Net smells of Windows, which is not an accident. It was conceived at a time when Windows ruled the roost, and was meant to be a platform-dependent version of Java. Mono would challenge this later, but that’s another story.
The best thing about Open Source is that communities have great leaders. If Windows cannot attract the best programmers in the world, Microsoft’s communities are going to be left headless.
Why should we work with Microsoft?
In June 2001, Steve Ballmer called Open Source and Linux “a cancer”. Since then Microsoft has used monopolistic practices and patent threats to stop the wider adoption of Open Source software. The mistrust in the open source community is deep; it stems from actions over more than twenty years.
Open source is a belief, an attitude and a set of values. It cannot be killed. Nothing captures this story better than Redhat’s prophetic 2006 video titled ‘Truth Happens’ which quotes Mahatma Gandhi.
First they ignore you. Then they laugh at you. Then they fight you. Then you win.
It ends cryptically with a reference to where we are. In the post-PC era Microsoft has a tiny market share in mobile devices. Linux is winning the battle for server rooms. Microsoft is no longer the force it was; it is desperately trying to adapt to survive.
Across the internet, anything coming from Microsoft is greeted with immediate skepticism and an automatic dismissal.
So, what can be done? Here is my wishlist.
- Buy Xamarin. Not just for Mono, but also for Miguel de Icaza and Nat Friedman. Give them a free hand in how to deal with Open Source.
- Stop using patents offensively
- Windows doesn’t have a very bright future, everybody knows this. Make it a compatibility layer over Linux.
- Abandon Internet Explorer and support Firefox. IE team can make huge contributions to Firefox.
- Go further than Google in embracing Open Source. Don’t just open up code, but data as well. Such as Bing’s indexes.
- Announce the new direction. There is no better time than right now.
See what Google does. Android is based on Linux. Chrome is built on Webkit. Go is open source, and so is Dart.
I am hopeful; this seems like a different Microsoft. If Microsoft swims with the community we all win.