CNET también está disponible en español.

Ir a español

Don't show this again


Microsoft once again offering pseudo-open source on CodePlex

Microsoft can't seem to fully embrace open source, even when it tries to do so.

Microsoft has been criticized in the past for how it manages CodePlex, Microsoft's "open source project hosting site" (emphasis mine). This time, as The Register reports, Microsoft is hosting code that can only be run on the Windows platform.

This is not, of course, a violation of open source. Plenty of projects on Sourceforge will run on only Linux, or some other operating system.

No, the problem here is that Microsoft is restricting these projects to Windows by license, and not merely be technical capability.

In at least one instance, that of the Microsoft Extensibility Framework (MEF), Microsoft switched the license from its Windows-only Microsoft Limited Permissive License (Ms-LPL) to the Microsoft Public License (Ms-PL), an Open Source Initiative-certified license, under pressure from Miguel de Icaza and "community feedback." The reason given for putting the code under the MS-LPL in the first place is lame, however:

Several weeks ago, we shipped our first drop of MEF on CodePlex. The source license for that drop was MS-LPL or the Microsoft Limited Permissive License. This license enables the source to be freely used on the Windows Platform. Obviously, we don't ship everything under MS-PL. In the case of MEF, it was our long-term plan because it made sense for us to do so, especially because it had the potential for universal appeal, including for cross-platform use. Shipping MS-LPL was the easiest way for us to quickly get MEF out the door as we worked through some details.

Note to Microsoft: it is just as fast to release code under the Ms-PL as it is Apache 2.0 as it is GPL as it is Ms-LPL. There is no difference in speed. It's just a license.

Rather, the question is why Microsoft would ever restrict an "open" project to the Windows platform. Microsoft notes that the shift to MS-PL means "you can grab MEF's source and use it on whichever platform you like!", and adds the exclamation point presumably to pretend that it had done someone a favor by doing what every other open-source license and project assumes as a given: open platform, open right to fork. That Microsoft has to call this out as a particular benefit suggests that it is still slow to grasp what open source means.

No, Microsoft did not need to release MEF under and open or quasi-open source license at all. But when it calls CodePlex an "open source project hosting site," it has a duty to live up to the "open source" label and ensure that the code it releases on CodePlex is actually open source. If it doesn't want to do this - if it doesn't want to abide by this most basic principle of open source - then call CodePlex something else and we'll all move on.

In the past, when called out on its half-steps toward open source, Microsoft responded quickly and fully. It should do so now. It could start by making the Ms-LPL more easily accessible on its Shared Source Licensing page. Here's where you search for it: go ahead and try clicking on the MS-LPL page. It takes you back to the Shared Source main site, which provides no clear way of finding the MS-LPL. Perhaps Microsoft is as embarrassed by the license as the community is?