Looks like our friends at Microsoft have come up with a Community Promise governing the core of the C# and CLI architecture.
Here is the text of Microsoft’s announcement:
I have some good news to announce: Microsoft will be applying the Community Promise to the ECMA 334 and ECMA 335 specs.
ECMA 334 specifies the form and establishes the interpretation of programs written in the C# programming language, while the ECMA 335 standard defines the Common Language Infrastructure (CLI) in which applications written in multiple high-level languages can be executed in different system environments without the need to rewrite those applications to take into consideration the unique characteristics of those environments.
“The Community Promise is an excellent vehicle and, in this situation, ensures the best balance of interoperability and flexibility for developers,” Scott Guthrie, the Corporate Vice President for the .Net Developer Platform, told me July 6.
It is important to note that, under the Community Promise, anyone can freely implement these specifications with their technology, code, and solutions.
You do not need to sign a license agreement, or otherwise communicate to Microsoft how you will implement the specifications.
The Promise applies to developers, distributors, and users of Covered Implementations without regard to the development model that created the implementations, the type of copyright licenses under which it is distributed, or the associated business model.
Under the Community Promise, Microsoft provides assurance that it will not assert its Necessary Claims against anyone who makes, uses, sells, offers for sale, imports, or distributes any Covered Implementation under any type of development or distribution model, including open-source licensing models such as the LGPL or GPL.
You can find the terms of the Microsoft Community Promise here.
I told you this was good news!
Of course this isn’t a legal document by any means. But if you take it for what its worth, its a decent step forward. The problem with .Net and this agreement however is that it doesn’t cross over to the vertical components of their runtime, like Windows.Forms and ASP.NET. So I guess you can feel free to write free and open source code while using the Mono libraries which are not re-implementations of the Windows counterparts (like Gtk#)
You can read more about this on Miguel de Icaza’s blog here.
More of the beginning of the end for Java?