Microsoft has cracked open .NET a little further and surrendered some control over its development platform to the open-source community.
The latest code for the company's take on Python and Ruby – fine-tuned for .NET, IronPython, and IronRuby – has been quietly released under the Apache Software Foundation (ASF) license. So it says here.
Also released is Microsoft's Dynamic Language Runtime (DLR), the company's environment built to run common language features to keep the programming light and scripted.
Until now, the languages and DLR had been only available under Microsoft's Permissive Licenses (Ms-PL), the open-source license Microsoft convinced the Open Source Initiative to ratify as officially sanctioned several years back. One wonders why Microsoft bothered or how the OSI allowed itself to be persuaded.
According to the standard Microsoft response upon discovery of the news here, the switch was in response to "customer feedback". ASF 2.0 was becoming the license of choice for those working on IronPython and IronRuby.
This is not Microsoft's first use of the ASF license – notably, earlier this year, Microsoft released the Outlook Personal Folders .PST file format under ASF.
The move, though, does make you question what's really going on. Microsoft didn't announce the news as it has other community moves in the past – this also being the week of the O'Reilly Open Source Convention (OSCON) in Portland, Oregon. Typically, Microsoft likes to hitch such news to passing open source events like OSCON.
It could be that the projects haven't been as successful as hoped. Microsoft's licenses could really be deterring people from contributing, with the official flavors of Python and Ruby the way to go for many. Ruby is under GPL while Python is under its own, GPL-like license.
On the DLR, Microsoft wants dynamic languages to play a part on its Azure cloud.
ASF is also seen as "business friendly" license and will be more recognized by the license police inside adopters and potentially more accepted than a Microsoft license variant. ®