As you will have read elsewhere, Microsoft has announced that much of .Net will become open source, hosted at the .Net Foundation. It has also announced it will support both Linux and Mac OS X. Since it is using the old and minimalist MIT license (which has no patent terms included), there is also a patent pledge. In addition, the company is introducing full-featured no-cost versions of its developer tools, though they remain proprietary; the Visual Studio Community license won’t even allow it to be used for enterprise application development.
This is a tremendous development and everyone involved deserves congratulations, not least Miguel De Icaza and Nat Friedman, the founders of Xamarin whose work on Mono provided the essential challenge – and ultimately the business partnership – that made it all happen. Miguel told me that the demos at the announcement were presented using the Mono code his team had developed, rather than Microsoft’s code. He told me, “This was the last piece that was needed. The rest they open-sourced before.”
The patent pledge deserves attention. It grants similar rights to the OpenJDK terms. It only extends patent protection to the code Microsoft allows in to its GitHub repository, not to the .Net specifications. This is much like a modern open source license – for example, the Apache License – but means re-implementations of .Net are not covered.
More concerning, the patent protection is conditional on including the code in a “compliant implementation” of .Net. That’s more restrictive than a modern open source license and gives Microsoft a loophole through which it could take action against partial implementations and competitive activities that incorporate .Net code. However, OpenJDK potentially has better protection due to the implied patent license many experts believe arises from the GPL under which it is licensed.
How does this affect Microsoft’s status in the open source community? The OSI Board (of which I am a member) welcomed Microsoft’s news as as “continued progress toward full embrace of open source” and there’s no doubt this, like the news about Linux support in Azure, signals great progress. We welcome each new initiative, but the rehabilitation process is not completed by any individual act or even by a sequence of them.
To move beyond stage five of the journey to open source, Microsoft needs to take a holistic view and ensure every business unit of its famously divided company treats open source with respect. While Microsoft continues to tolerate sociopathy in the business units not yet embracing open source – such as the patent attacks on Linux community members by its patent portfolio group or the covert politics to undermine Open Document Format – it’s hard to treat the company with the full respect it believes it deserves.
As the inevitability of open source gradually pervades Microsoft like Aslan’s breath, hope increases that the company will choose to act as a full member of the Linux community – for example, by joining OIN as a way to forswear patent attacks on open source community members. I sincerely hope Microsoft completes this journey.