When I read de Icaza’s blog post on not to use Microsoft’s Managed Extension Framework. Two things strike me immediately. One, for which it is essentially me looking through tinted lenses at Novell and Mono by extension, is “Wow, Novell managed to disagree with Microsoft”, and two, here we go again, we are seeing a variant the “embrace, extends and extinguish” strategy Microsoft used very successfully where the word “embrace” is to be replaced with “create” since Microsoft is credited with .NET creation. However, I think the problems is more deeply rooted in the way the Managed Extension Framework is presented.
I am not an open source zealot, so I am not by default allegic to “extends”. I uses Eclipse and I had always viewed Eclipse as big corporation throwing breadcrumbs, i.e., lower tier stuff, to me the small software shop which they find they cannot make money on, and want move competition up the value chain by making it unattractive for others to develope and charge for the lower tier stuff. Big corporations who are Eclipse members still jeolously guard their software stacks that are making them money. In a sense, we see a base product, with vendors “extending” it in proprietary ways.
If this is fine by me, then the fact that Microsoft has an Windows-only extension called “Managed Extension Framework” by definition is fine by me. In fact, one has to asked why it took Microsoft so long to come out with a extension framework.
The problem is that in Eclipse, the proprietary extensions are made clear from day one. As de Icaza’s post makes clear, is Microsoft did not appear to make a clear distinction between its windows-only extensions, and the rest of the .NET platform that when you take Mono into account, is multi-platform. It put the stuff in CodePlex, which is created by Microsoft to be an “open source” repository. It’s windows-only restriction certainly does not qualify it as open source. I know Microsoft seems to have their own definition of “open source”, it can try to impose its definition on the world but we must resist it. Therefore hopefully, it find itself facing the same furory as when it puts SandCastle on CodePlex.
de Icaza is right. Microsoft is free to create exceptions for itself on CodePlex. CodePlex is relatively new with a few years history and not so much activity. Hence, I will like a clarification from Microsoft on what is acceptable and what is not, including an exception fro Microsoft own extensions if it wants.
de Icaza is also right to say that while there is nothing in the T&C to says that the licenses used on CodePlex must be blessed by OSI, the FAQ certainly indicate that you must do so. This is at best misleading.
Microsoft’s action seems to me to be a rerun of Sun-Microsoft litigation over Java which Microsoft loses, i.e., Microsoft created incompatible virtual machines and windows-only extension as a trap for other developers. Microsoft, like every other organization, is at liberty to choose whatever licensing conditions it wants. It is, however, ethically and morally incorrect to try to trick developers into using Microsoft-only technology. If Microsoft is truely changing its way with open source, as it profess to, then it must build a Great Wall between Windows only open source technology and open to all open source technology. This problem is very well known. Therefore, at the very minimum, I expect ALL Microsoft windows only open source technology on CodePlex to be clearly labelled.