I left Jason Matusow a comment on his article about the Microsoft Open Specification Promise.
Jason Matusow graciously replied here. Jason, thank you for taking an interest in this topic. I think these issues are important to Microsoft as well as to the community of .NET developers. Jason also replied to my comment on his blog with some good points in a follow up comment.
I guess those exchanges got me warmed up. I have a much more clear picture now of why Microsoft should financially support .NET open source projects and why it bothers me that Microsoft doesn't do this already.
As Jason mentioned, DotNetNuke (DNN) is a good example of a .NET Open Source Project that is very positive for the Microsoft developer community. My current employer uses DNN in its commercial application. I also agree with Jason that DNN is a good example of the type of project Microsoft could and should continue to actively support.
Another great open source project is the Subtext blogging platform which is a fork of .TEXT. (If you clicked on the link to Subtext, the site you saw was hosted in DNN.) I run this blog on Subtext and I have recently gotten to know the Subtext team. Subtext is one of those projects on SourceForge Jason mentions that uses Visual Studio for its development. Subtext also uses log4net, Nant, NUnit and other open source tools that are critical to its survival. I recently contributed a patch to Subtext and I used TortoiseSVN for Subversion along with Visual Studio to do so.
These open source dev tools (NUnit, log4net, TortoiseSVN, NDoc and more), plus SourceForge itself, keep many of these other projects such as Subtext going. In fact, that is also true of commercial (non-open source) projects.
I am a Microsoft-centric developer with an MSDN subscription working in a company that is a 100% Microsoft shop. Yet I depend upon open source tools to supplement my MSDN subscription and my company's subscriptions to commercial tools such as Developer's Express. Without the open source tools, life as a .NET developer would be a couple notches less satisfying and much less productive.
In my company's commercial application we depend upon DotNetNuke, Nant, log4net, NUnit and other open source tools. Those open source projects help support us. (In fact, without DNN, we would probably be out of business because our developments costs would be too high.) In turn, my company helps support Microsoft (because we purchase licenses and MSDN subscriptions). Yet Microsoft does not complete the circle by financially supporting any of those open source projects. NDoc stands out as an example.
Microsoft benefits far more from all these open source projects than people in the company realize. The open source projects fill critical gaps of functionality - but that is obvious. What isn't obvious is how the open source projects benefit Microsoft financially. As I said, my current employer would not be in business without the open source tools. How do I know? Because the company actually told the staff it was going out of business and it started shutting down. At the last minute an outsider stepped in and saved the company. A central part of his turnaround plan was using DotNetNuke to lower development costs. And one of the first uses of funding that came in was to purchase more Microsoft products (and renew existing licenses).
As an insider who has both software development and business experience, watching all this happen demonstrated clearly that DotNetNuke contributed directly to Microsoft revenues. This may be a dramatic (and small scale) example, but the same forces are at work in subtle ways in development shops all around the world.
Open source projects lower the costs for development teams and those lower costs translate into greater ability to afford the prices Microsoft charges. Therefore the existence of .NET open source projects helps support Microsoft's pricing power. Microsoft could help itself and help the community by financially contributing to a lot of those 600+ open source .NET projects Jason Matusow mentions.
The appearance (real or imagined) of Microsoft exterminating an open source project and replacing it by a closed source project doesn't sit well with me or a lot of others. Similarly, passively standing by while any widely used .NET open source project dies (this is certainly not imagined-- see NDoc) from lack of financial support makes Microsoft look bad and it hurts the community.
That lack of action (and financial support) also scares people like me. As I said in one of my blog posts, Microsoft's shared source efforts with .NET and other actions won over my heart and mind and I aligned my career with Microsoft's technologies. But when I saw Microsoft let NDoc die, I surveyed the landscape. What I saw gave me a twinge of fear that I had aligned myself with a company that still had elements of the 'Evil Empire' alive somewhere deep within it. That feeling is what prompted my recent blog post that Jason referred to.
I want to associate myself with the good guys (in my career and otherwise). I would love to see Microsoft unquestionably become known as the good guys. Financially supporting open source would do a lot to help make this happen. If I ever do refocus my development career around Linux development (which is a real possibility), the primary factor driving that change would undoubtedly be related to Microsoft's behavior. The more Microsoft treats others poorly (whether those others be small open source projects or large government entities), the more I want to move to the other side.
Jason, thank you for taking an interest in my comment on your blog and for taking the step of forwarding the link to my blog to a few folks inside MS.
Postscript
As I was finishing this article, I typed in Evil-Empire on Google. Out of 3,230,000 results, Microsoft was mentioned as high as #7. Microsoft also showed up many times in the results, even though the term "Evil Empire" originally had nothing to do with Microsoft. However, as Wikipedia says,
Within hacker culture, the term has come to be used as a reference to Microsoft and its business tactics, often seen as unethical and monopolistic.
As a side note, I have to ask: Does Google somehow tune their search results to return Microsoft when someone searches on Evil-Empire? I saw articles that mentioned Microsoft [anti-trust, etc.] but did not include the words Evil Empire.
Wouldn't it be great for all of us who enjoy developing on the .NET platform to eradicate any association of the term "Evil Empire" with Microsoft? As I said, I want to be associated with the good guys!
Read my follow up thoughts on this subject here.