At BSDCon in February, Microsoft discussed details of Rotor, a shared source implementation of the ECMA Common Language Infrastructure (CLI). As Microsoft explains on its Partners Web site, "This implementation is intended to meet the needs of academics, researchers, curious tinkerers, and those who wish to build independent versions of the proposed ECMA standards. We intend for it to be a fully functional, illustrative implementation that can be used as a basis for non-commercial experimentation, as courseware, or as a guide for the use of parties working on their own commercial ECMA implementations."
The ECMA CLI is just the latest in a series of shared source releases that represent a big shift in a company thatís used to having complete control over their products (and the code within them).
Microsoft hasn't budged on the GNU General Public License (GPL): they still doesnít like it, and folks who saw the debate on Shared Source vs. Open Source at last year's Open Source Convention know where Redmond stands on that issue.
"We don't believe the GPL is a good license for the industry and the software ecosystem, so we have no plans to work with the GPL," said Jason Matusow, program manager for Microsoft's shared source program.
Surprisingly, Microsoft actually has at least one product supported under the GNU General Public License. A few years back, Microsoft purchased Interix, a developer of Unix-to-Windows code conversion tools. Microsoft continues to sell and upgrade the Interix suite to help move Unix applications to Windows 2000.
Some of the tools in the Interix suite were released under the GNU GPL that Microsoft dislikes so much, and Microsoft continues to release the code under GPL, honoring the previous license.
But shared source is more in line with how Microsoft wants to release code outside its organization, and it has released several shared source products, in addition to the CLI it plans to release.
"It's a big cultural shift for Microsoft to move into a world where it doesn't have absolute control over the process as well as the end result," said Dwight Davis, analyst with Summit Strategies.
Microsoft's foray into opening up its source code has been "pretty tightly controlled" and limited to areas where Microsoft thinks it can gain ground by picking up more developer support, Davis said.
Until the release of Rotor, the shared source program has been targeted to large corporate customers and, increasingly, government, education, and research institutions. A recent release under shared source is Windows CE.NET, an updated version of its handheld operating system that borrows many technologies from Windows XP.
Microsoft is making 1.5 million lines of CE.Net code available (around 50 percent of the total code base), and three times as much as with previous versions of CE. In the first two months of release, more than 45,000 developers downloaded the CE.NET code, and Microsoft is setting up a community on SourceForge for developers working with the code.
The Sourceforge site hasn't been set up yet, but will be announced at the Windows CE.NET site and the shared source site. The shared source site is rather anemic at this stage, but is due for an overhaul, said Matusow.
Microsoft surveyed developers who downloaded the CE.NET source and found that more than half are using it for some kind of internal use, although the survey didn't delve into details of what they are doing. With 50 percent of the code, including most of the underlying .NET architecture, developers can use the CE.NET source to create their own embedded operating system.
Microsoft also makes the Windows 2000/XP/.NET server available, with up to 97 percent of the source (plus service packs and betas), available to shared source licensees. In the past, the company would send its licensees a stack of CDs with source code and they had to do a build on their own.
|Does Microsoft's record and plans for shared source licenses help bridge the gap between Microsoft and the open source community? Share your thoughts with us.|
The 2000/XP source is available to academic and research institutions, with 130 licensees in 25 countries currently working with the code. Microsoft has also approved 1,700 companies for its Enterprise license, but only 50 have signed up. The firms requested that Microsoft put the source in the hands of their systems integrator rather than license it directly to them, said Matusow.
"That's so the people doing implementation and support details have the access to the code," he said. Microsoft has 150 systems integrators, like Compaq and Avanade, signed up for the shared source program. "They can do a better job at support, deployment planning, and application planning for their customers this way."
Now Microsoft has what it calls Code Center Premium, a secure Web site that can only be reached via Smartcard access, that has daily drops of source code and an intelligent search against the codebase. Microsoft is also making its code easier to read through documentation and colored syntax, making it easier to understand what does what.
Microsoft's critics maintain say that shared source is a one-way street, with all of the commercial benefits accruing to Redmond. Michael Tiemann, Red Hatís chief technology officer, who debated Craig Mundie at the Open Source Conference last year, said: "From a PR perspective, I see Microsoft doing a lot more attacking of open source than promoting of shared source. That should tell you something about the relevance of open source in the marketplace."
Under the terms of shared source, modified code cannot be released commercially without a license from Microsoft, and even then, those modifications have to go back to Microsoft. Non-commercial products can be released without providing the modifications to Microsoft.
Microsoft acknowledges it likes having other eyes look at its code, but it says it doesn't expect others to do its job of developing and debugging the code. "We're not seeking for customers to do a lot of work and then we co-opt that work," replies Microsoftís Matusow.
Why is the open source community so adamant that Microsoft open up its code base? Sun's Java Community License (JCL) has gone over just as badly with open source advocates, and the end result is a fairly thorough rejection of Java by the open source community. Java has relatively modest momentum on Linux and BSD platforms, compared to its record on commercial Unixes, or even Windows 2000.
Tiemann says the open source community demands code visibility for the same reason people want Ford and General Motors to build safe cars. "You can't just say get rid of the cars. You want cars to have adequate visibility, reasonable safety for drivers and pedestrians, that sort of thing, and we see open source as the best way to ensure the safety of all computer users."
Analyst Davis agrees: "The most vociferous of the open source people are technology people, and to the degree where they come across Microsoft platforms, I'm sure they'd like access to the platform, to tweak them, optimize them and patch them as needed, and not have Microsoft put it on its fix schedule some time in the next several months," he said.
That's not to say that if Microsoft open sourced Internet Explorer and Internet Information Server (which seem to have new security holes on almost a weekly basis), they would be magically fixed. Tiemann pointed to the Netscape example. When the company first opened up the Mozilla code for what would be Netscape Navigator 5.0, the code -- all 17 million lines of it -- landed with a thud. Programmers tried to digest it and ended up with heartburn.
But it was such a mess of spaghetti code, some of it dating back to the 1.0 release, that Netscape was forced to ditch the whole thing and start from scratch. This led to the creation of Gecko, which became Netscape 6.x, a new-from-the-ground-up browser.
"The beauty of stuff born in open source is that it evolves to be more convenient for the open source community because we've followed its development," said Tiemann. "When you have something built inside a monoculture, it tends to be unusable to the outside world. Open sourcing everything they do is not a quick fix, but it makes possible something which is not possible right now, building an effective bridge between Microsoft and the open source community."
Andy Patrizio is a freelance journalist and a regular contributor to Wired News, Byte.com, Java Pro and Enterprise Systems Journal. He lives in Los Angeles.
Return to the .NET DevCenter.
Copyright © 2009 O'Reilly Media, Inc.