Okay, I was skeptical too, but it’s true. They proved it to me.
In one of the comments on this post on Rob Conery’s blog, I saw Sam Ramji, the Director of Platform Technology Strategy at Microsoft, mention that they were interested in sponsoring .NET open-source efforts by donating MSDN licenses. I had just recently released the first beta of Ninject (then called Titan), so I sent Sam an email asking whether Microsoft would be willing to sponsor the project. Sam replied (in a matter of hours, no less) letting me know that they’d be happy to donate a MSDN license to the project, and connected me with Garrett Serack, Microsoft’s Open Source Community Lead to get the details worked out.
A little while later, I received a congratulatory email welcoming me to the MSDN Program. The Ninject project was now the proud new owner of a MSDN Premium subscription, and a MSDN Visual Studio Team Suite license. I never paid Microsoft a cent, or jumped through bureaucratic hoops, or anything. I was using a copy of Visual Studio 2005 Standard Edition that I’d gotten at a launch conference in November of 2005, and I was concerned that my open source efforts wouldn’t be able to keep up once .NET 3.5 and Orcas comes out next January. The MSDN license ensures that I won’t be hindered by financial constraints. (Which is great, since Ninject’s budget is holding steady at $0. :)
I mentioned this to a coworker, and he laughed, saying that Microsoft probably just wanted to see if my source code infringed on any of their patents. I corrected him immediately, and if anyone tries to tell me that Microsoft doesn’t care about open source software in the future, I will be sure to mention their support for Ninject. Microsoft is the world’s largest software company, and with an issue as sensitive as intellectual property and open source, there are bound to be multiple factions within the same company. People who are more in tune with the business of software than the technical underpinnings (like Steve Ballmer) are much more likely to spurn open source, seeing it as synonymous with Linux and therefore a threat to the Windows platform. I’m certain that at least a large subsection of developers within Microsoft believe in open-source software and would choose to contribute to OSS efforts if possible.
Microsoft is changing. The Microsoft Permissive License is a legitimate open source license, basically just BSD plus an extra clause describing patent disputes. New developer efforts like the DLR (and associated languages, IronPython and IronRuby) are being released under the MPL. Microsoft is even accepting community code contributions for IronRuby. How much more open source can you get than that?
Now, does this mean Microsoft will embrace OSS as a business model? No. They’re not releasing the source for Windows or Office anytime soon. However, at least in parts of the company, there’s a growing effort to support and cultivate open source efforts, rather than stomping them out or usurping them. What I really would like to see from Microsoft is company contribution back to existing open source efforts, particularly for developer tools. For example, rather than introduce their own unit testing system, they should just contribute support to nUnit or MBUnit. Until then, this is a good start.