Microsoft is extending its "Community Promise" patent licensing to C# programs and Common Language Infrastructure (CLI), enabling open source usage of the technologies without fear of any reprisals.
With Community Promise, Microsoft assures it will not assert its "Necessary Claims" against anyone who makes, uses, sells, offers for sale, imports, or distributes any "Covered Implementation" under any development or distribution model, said Peter Galli, Microsoft open source community manager, in a blog post on Monday. This includes open-source licensing models such as the LGPL or GPL, he said.
The company, Galli said, will apply Community Promise to the ECMA 334 and 335 specifications. ECMA 334 specifies the form and establishes the interpretation of programs written in the C# language. ECMA 335 is a standard that defines the CLI, in which applications written in multiple high-level languages can be executed in different system environments without having to rewrite the applications to consider unique characteristics of those environments.
"It is important to note that under the Community Promise anyone can freely implement these specifications with their technology, code, and solutions," Galli said. "You do not need to sign a license agreement or otherwise communicate to Microsoft how you will implement the specifications."
Community Promise applies to developers, distributors, and users of covered implementations without regard to the development model used to create the implementations. The type of copyright license used to distribute software covered by Community Promise also does not matter.
"The Community Promise is an excellent vehicle and, in this situation, ensures the best balance of interoperability and flexibility for developers," said Scott Guthrie, Microsoft corporate vice prresident for the .Net Developer Platform, in a statement included on Galli's blog.
In response to Microsoft's moves, Novell's Miguel de Icaza, who has led development of Mono, an open source version of Microsoft's .Net Framework, said in a blog post that Mono advocates had approached Microsoft with a request to clarify the licensing situation for ECMA standards covering C# and CLI. Mono contains the ECMA C# specification.
"Astute readers will point out that Mono contains much more than the ECMA standards and they will be correct," de Icaza said.
"In the next few months we will be working towards splitting the jumbo Mono source code that includes ECMA plus a lot more into two separate source code distributions. One will be ECMA, the other will contain our implementation of ASP.Net, ADO.Net, Winforms and others," he said.
Some persons commenting on Galli's blog were positive about the move. "This is very good. I know of people who have chosen not to use .Net because they wanted a cross-platform solution, but they were afraid that Mono had patent risks. Java doesn't have this issue," one commenter said. "This is good for Mono, of course, but good for .Net as well."
In a somewhat cryptic explanation of the differences between Open Specification Promise and Community Promise, Microsoft on its Community Promise page said, "The CP (Community Process) requires that implementations conform to all of required parts of the mandatory portions of the specification. Also, in specified cases (such as where the specifications have uses that exceed those needed to achieve the interoperability needs for which the release under the CP is being made), the CP may have special terms concerning what kinds of implementations are covered."