Microsoft Puts C#, CLI Under No-Lawsuit Umbrella
Microsoft stated Tuesday that it will not pursue legal action against open source software developers using C# and CLI programming languages. This will likely make some developers much more confident in using the technologies. However, the promise does not include the non-ECMA parts of Mono. Devs for that project may have to choose between what's safe and what's powerful.
07/08/09 4:00 AM PT
Microsoft made good Tuesday on a promise it made months ago to the open source community that it would not sue software developers who use its EMCA C# programming language and Common Language Infrastructure, or CLI.
This announcement aims to calm growing fears that Microsoft might restrict open source projects by going after program developers for patent or other intellectual property infringements related to to these two standards.
Microsoft made the announcement on its community blog through comments by Peter Galli.
"The announcement is critical to maintaining an open standard, and I'm sure that Microsoft is also doing it to appease government regulators," said Jim McGregor, chief technology strategist for In-Stat.
"Please, note, however, that Microsoft placed some very specific restrictions," he told LinuxInsider. "Solutions must adhere to the specs in order to avoid reprisal."
Under its Community Promise, Microsoft is, in essence, letting all developers freely use the EMCA C# specifications and CLI standards within their own technology, code or solutions, Galli said in his blog post.
"You do not need to sign a license agreement, or otherwise communicate to Microsoft how you will implement the specifications," he wrote.
The Community Promise spells out Microsoft's assurances that it will not file "necessary claims" against anyone using, selling, importing or distributing any covered implementation under distribution models including open source licenses such as the LGPL and the GPL.
"The issue was that ECMA required that the standards be 'reasonable and non-discriminatory,'" de Icaza told LinuxInsider, "but even when Microsoft had been on record saying, 'We will have a royalty free license,' there was a debate about what the license was and what 'reasonable' meant -- 10 cents a copy, $100 a copy?"
In the end, Monday's announcement clarified that the price was zero, he said.
Microsoft's decision is significant because it clarifies what the open source community can expect with future code development.
"There was a concern in open source circles that without a clear statement from Microsoft, the increased used of C# and the CLI in Linux could one day become Linux' Achilles heel," said de Icaza.
The fear was that Microsoft would remain silent -- and in later years, when everyone used C# and the CLI, Microsoft would come after every Linux user, he explained.
"The announcement eliminates this source of fear," he said.
There are still some potential red flags in the announcement to give free access to all developers, however. It may not give clear licensing permissions for other popular Microsoft code currently bundled into the multiplatform Mono Project.
"Mono offers an alternative toolset to those of Microsoft, as well as the ability to run C#-based solutions on other operating systems. So, naturally there is going to be some potential for conflict -- especially [since Mono is] the first one to really offer an alternative solution to Microsoft," In-Stat's McGregor said.
Mono has been the subject of much debate in the open source community over the merits of incorporating any Microsoft-related programming. The Mono project delivers an open source equivalent to Microsoft's .Net architecture.
Mono contains much more than the ECMA standards, de Icaza wrote in his blog on Tuesday, and Microsoft's promise will require splitting Mono into two separate source code distributions.
The Community Promise does not include the non-ECMA parts of Mono. Microsoft made no declaration about ASP.NET, ADO.NET, Winforms or other "up the stack" APIs, de Icaza wrote.
Microsoft declined to offer further explanations beyond what's contained in Galli's blog post. So far, the company has not publicly stated what kind of license or fees will be attached to the non-C#/CLI segment, according to de Icaza.
"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," de Icaza wrote.
Depending on how -- and presumably when -- current developers got Mono, they might already have this split, he noted.
de Icaza views Microsoft's action as eliminating a repetitive debate -- a debate that had been growing louder, ruder and personal as passions inflamed.
Mono is made up of an engine and an assortment of libraries. The libraries fall in three buckets: ECMA libraries, Mono Libraries and Microsoft libraries, de Icaza explained.
"To avoid any concerns that people have that Microsoft will come back one day to haunt them, we will be distributing the Microsoft libraries in a separate package," he said.
The split had already been done at the binary level when users pick a library ready to use. However, the split has not been done at the source code level, which users obtain from the project's Web site.