What is the future of open source on Windows?
I use the Windows OS right now, and I have for a lot of years. However, there was a time (a couple years around the 1990 timeframe) when I actually succeeded in running my PC with zero Microsoft software.
I ran DR-DOS, Borland Quattro Pro, Lotus Word Pro, and a bunch of other quality (for the time) non-Microsoft software. I was happy about this.
Later, when I studied computer science in college, we used unix at school and it was at this time that I first loaded Linux on my home PC. I again made an effort to see how far away I could get from Microsoft products.
Unfortunately, I found that life without Microsoft was not nearly as productive as life with Microsoft (circa 1997). Getting things done counts for a lot in my life. After I carefully analyzed my individual productivity, I made the decision to use Microsoft products -- strictly for pragmatic reasons. I wouldn’t say I really liked Microsoft products, but I used them because doing so made me more efficient.
Around 2000, I got interested in the .NET Framework, and Microsoft started impressing me with their products for the first time. In the years since then I have often found myself using a PC with nothing but Microsoft products on it. The irony of this didn’t go unnoticed.
But Microsoft seemed to be doing things differently with the shared source and with what I perceived to be better quality products all around. Plus, I was impressed by all the top-notch engineering talent that joined Microsoft. As people like Anders Hejlsberg, Stanley Lippman, and Herb Sutter joined Microsoft, my attitude toward Microsoft became very positive over that timeframe.
And when I recently read eWEEK Labs Bakeoff: Open Source Versus .Net Stacks, I thought the combination of Windows and open source might be the best of both worlds. My rationale was based on several factors:
- In eWeek’s tests, three of the open source systems on Windows were among the leaders in performance and reliability. eWeek actually stated, “For some businesses, this will truly be the best of both worlds”.
- Using Windows still has an efficiency advantage for the average person, in my experience. It is easier to obtain software, to set up new hardware or software, and to just get various stuff done. In fact, Visual Studio is a great productivity tool for developers and it is hard to find a better (or even equal) IDE on other platforms (so I’m told by people who use both).
- The .NET open source community has seemed to have a lot of momentum behind it recently. There are a lot of great projects out there – many of which I have found I would not want to be without.
Just at the point where my optimism about the Windows platform in general, and open source on .NET specifically, was reaching an all-time high, some concerns began to appear. The demise of NDoc was one of those. But Microsoft’s willingness to apply its embrace, extend, exterminate mentality to the .NET open source community is what alarms me the most.
[UPDATED] As a developer on the Microsoft platform, I want and need a rich open source community around me. The .NET open source community benefits developers like me in many ways, some of which include:
- The open source projects fill small (or large) product gaps and feature gaps;
- A diversity of open source projects provide learning opportunities for developers in the community through several avenues, including direct participation or even just passive examination of the source code;
- Free tools provide an entry point into the world of Microsoft technologies for those who otherwise might never consider getting started on this platform;
- The open source projects provide camaraderie - the whole Microsoft community is strengthened through friendships and relationships that grow out of this community. People enjoy working in a community where they know others.
If I am going to devote my career to Microsoft technologies, I would like to have 100% confidence that Microsoft will not act with scorn or derogation toward the .NET open source community. That community, together with the continued shared-sourcing of the CLI, is a valuable and necessary element of my Microsoft-centric developer career. Recent events have made me question whether Microsoft will allow that .NET open source community to thrive the way it has been in the past. (Will Microsoft feel threatened after eWeek's article pointed out that open source .NET IT stacks "will truly be the best of both worlds?")
One of my options is to load up Ubuntu on one of my machines, just to explore the other options available to me.
Another option I have is to speak out and let Microsoft know that it needs to show.NET developers that Microsoft will do more than simply tolerate .NET open source. Microsoft needs to strongly embrace .NET open source. Here is one idea for how Microsoft can show us they are completely over the its embrace, extend, exterminate mentality when it comes to .NET open source.
Here are a couple blog articles on this topic that are worth reading:
• More Tool Stagnation to Come?http://www.developerdotstar.com/community/node/542
• Will Microsoft Subsume Open Source?http://www.sitepoint.com/blogs/2006/07/27/will-microsoft-subsume-open-source/