InfoQ

News

Anybody May Legally Implement the C# and CLI Specifications

Posted by Abel Avram on Jul 07, 2009

Community
.NET
Topics
Legal Matters ,
Open Source
Tags
C# ,
Mono

Microsoft has placed C# and CLI specifications, ECMA 334 and ECMA 335, under the Community Promise which basically protects anybody implementing them in any language and in any way from being sued by Microsoft for infringing corresponding intellectual properties or patents. This is directly related to Mono, the open source .NET implementation, whose legal status was unclear until now.

The Community Promise specifies:

Microsoft irrevocably promises not to assert any Microsoft Necessary Claims against you for making, using, selling, offering for sale, importing or distributing any implementation.

… The CP applies directly to all persons or entities that make, use, sell, offer for sale, imports and/or distributes an implementation of a Covered Specification. It is intended to enable open source implementations.

The Community Promise is less permissive than Open Specification Promise because the CP “requires that implementations conform to all of required parts of the mandatory portions of the specification.” but the developers still do not need to sign any license agreement with Microsoft or inform Microsoft about their work on implementing the C# and CLI specs.

Peter Galli, who made the announcement on Port25, explains the implications:

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.

Richard M. Stallman, the GNU father, warned about including Mono in open source projects only a week ago:

Debian's decision to include Mono in its principal way of installing GNOME, for the sake of Tomboy which is an application written in C#, leads the community in a risky direction. It is dangerous to depend on C#, so we need to discourage its use.

The problem is not unique to Mono; any free implementation of C# would raise the same issue. The danger is that Microsoft is probably planning to force all free C# implementations underground some day using software patents.

… We should systematically arrange to depend on the free C# implementations as little as possible. In other words, we should discourage people from writing programs in C#. Therefore, we should not include C# implementations in the default installation of GNU/Linux distributions or in their principal ways of installing GNOME, and we should distribute and recommend non-C# applications rather than comparable C# applications whenever possible.

Miguel de Icaza reported asking Microsoft to clear up Mono’s licensing issues:

A few months ago we approached Bob Muglia and Brian Goldfarb at Microsoft with a request to clarify the licensing situation for the ECMA standards covering C# and the CLI.

Since Mono is not just the implementation of the two ECMA standards, Icaza considers as necessary that

In the next few months we will be working towards splitting the jumbo Mono source code that includes ECMA + 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.

Depending on how you get Mono today, you might already have the this split in house or not.

Placing C# and CLI under the Community Promise assures open source developers and Linux distributors that Microsoft will not sue them for implementing the specs or for including Mono in their distributions. Until now, only VBA Language specification, HealthVault Service specification, UI Automation 1.0, and XPS specification 1.0 were covered by CP.

conform to all of required parts by Thomas Mueller Posted Jul 7, 2009 6:56 AM
good news by o maigad Posted Jul 7, 2009 12:22 PM
Re: good news by Dustin Whitney Posted Jul 8, 2009 6:55 PM
  1. Back to top

    conform to all of required parts

    Jul 7, 2009 6:56 AM by Thomas Mueller

    It still seems to be quite restrictive.

    One question is: how hard it is to be fully compliant? "requires that implementations conform to all of required parts of the mandatory portions of the specification".

    What happens if the specification changes? How can the specification change, and who can change it?

  2. Back to top

    good news

    Jul 7, 2009 12:22 PM by o maigad

    !

  3. Back to top

    Re: good news

    Jul 8, 2009 6:55 PM by Dustin Whitney

    I agree - this is good news. The future is on both this platform and the JVM, so I'm glad to see that Microsoft is making their licensing less restrictive.

Educational Content

Brian Marick on 4 Challenges and 5 Guiding Values of Agile Software Development

Brian Marick takes us through a quick tour of the most important values and challenges to adopting Agile successfully (they aren't the typical challenges and values we hear in the community).

Are You a Software Architect?

The line between development and architecture is tricky. Does it exist at all? Is an ivory tower actually needed? There's a balance in the middle, but how do you move from developer to architect?

Agile – A Way of Life and Pragmatic Use of Authority

The word 'authority' sometimes produces an allergic response in hard-line agilists. Freedom and authority – both are bad if misused and both are good if used in right spirit for a noble cause.

Getting Started with Grails, Second Edition

"Getting Started with Grails" brings you up to speed on this modern web framework. Companies as varied as LinkedIn, Wired, and Taco Bell are all using Grails. Are you ready to get started as well?

Using ITIL V3 as a Foundation for SOA Governance

Those familiar with only ITIL V2 often scoff at the thought that ITIL could serve as a governance framework for SOA. With ITIL V3, the focus of the framework shifted towards service-orientation.

Adrian Colyer on AspectJ, tc Server and dm Server

SpringSource CTO Adrian Colyer discusses AspectJ, SpringSource's dm Server and tc Server products, OSGi and Scrum.

Adam Wiggins on Heroku

Heroku's Adam Wiggins talks about Rails, Background Jobs, Add-Ons, Ruby, and how Heroku manages to work around Ruby's inefficiencies using Erlang and other languages.

SOA as an Architectural Pattern: Best Practices in Software Architecture

For Grady Booch the foundation of a good architecture is patterns, SOA being just one of many patterns. In this Second Life presentation, Booch attempts to bring more clarity on what architecture is.