Microsoft open sources .NET Micro Framework
Back in July, Microsoft announced it was making .NET available under its Community Promise, which in theory allowed free software developers to use the technology without fear of patent lawsuits. Unsurprisingly, many free software geeks were unconvinced by the promise (after all, what's a promise compared to an actual open licence?), but now Microsoft has taken things to the next level by releasing the .NET Micro Framework under the Apache licence. Yes, you read that correctly: a sizeable chunk of .NET is about to go open source.
For the uninitiated, we need to make it clear that .NET comes in three major flavours:
- The full .NET Framework is what Mono aims to replicate. It has all the functionality Microsoft offers, and is thus around 200MB.
- The .NET Compact Framework is a cut-down version of the full-fat framework, stripping out many things that aren't used in small environments. Windows Mobile devices commonly ship with Compact .NET, as does the Xbox 360.
- The .NET Micro Framework has the smallest footprint of all, and is designed for devices with very limited resources.
It's that latter part that Microsoft is releasing: it runs in about 300KB of memory, works on multiple CPUs (most notably ARM chips), has a simplified version of garbage collection, plus implements only a small number of the .NET classes - Wikipedia estimates about 70.
What's more, Microsoft isn't opening up the whole stack: the TCP/IP parts are missing because another company wrote that code, and the cryptography libraries are missing because "they are used outside of the scope of the .NET Micro Framework" - which presumably means that the code is being used elsewhere in Microsoft and they'd rather not give it away.
Even so, this is another example of Microsoft doing what would have been unthinkable just a few years ago: giving away source code (and, let's face it, .NET is the crown jewels of their development stack) under an open source licence that is compatible with GPLv3. We should also say that the licence they chose - Apache 2.0 - comes with a "perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable" patent grant.
So: this is by no means enough to make Mono safe to the nay-sayers (although increasingly we're of the belief that Microsoft could release all the .NET code and patents into the public domain and some people still wouldn't trust it), it's another surprising step in the right direction, and adds more fuel to the discussion of whether we should trust Microsoft's open source contributions.
What do you think, folks?