Linked by Thom Holwerda on Tue 1st May 2012 21:59 UTC
Mono Project Wow. "One crazy idea that the team had at that dinner was to translate Android's source code to C#. Android would benefit from C# performance features like structures, P/Invoke, real generics and our more mature runtime. [...] We decided it was crazy enough to try. So we started a small skunkworks project with the goal of doing a machine translation of Android from Java to C#. We called this project XobotOS." Most of Android's layouts and controls are now in C#. The small benchmark is stunning, but as much as I admire the work, I'm wondering that this like going from bad to worse - from Oracle's Java to Microsoft's C#.
Thread beginning with comment 516599
To read all comments associated with this story, please click here.
Member since:

"....The C# language definition and the CLI are standardized under ISO and Ecma standards that provide reasonable and non-discriminatory licensing protection from patent claims. However, Microsoft uses C# and the CLI in its Base Class Library (BCL) that is the foundation of its proprietary .NET framework, and which provides a variety of non-standardized classes (extended I/O, GUI, Web services, etc.). Some cases where Microsoft patents apply to standards used in the .NET framework are documented by Microsoft and the applicable patents are available on either RAND terms or through Microsoft's Open Specification Promise that releases patent rights to the public,[35] but there is some concern and debate as to whether there are additional aspects patented by Microsoft that are not covered, which may deter independent implementations of the full framework.

Microsoft has agreed not to sue open source developers for violating patents in non-profit projects for the part of the framework that is covered by the OSP.[36] Microsoft has also agreed not to enforce patents relating to Novell products against Novell's paying customers[37] with the exception of a list of products that do not explicitly mention C#, .NET or Novell's implementation of .NET (The Mono Project).[38] However, Novell maintains that Mono does not infringe any Microsoft patents.[39] Microsoft has also made a specific agreement not to enforce patent rights related to the Moonlight browser plugin, which depends on Mono, provided it is obtained through Novell.[40]

In a note posted on the Free Software Foundation's news website in June 2009, Richard Stallman warned that he believes that "Microsoft is probably planning to force all free C# implementations underground some day using software patents", and recommended that developers avoid taking what he described as the "gratuitous risk" associated with "depend[ing] on the free C# implementations".[41] The Free Software Foundation later reiterated its warnings,[42] claiming that the extension of Microsoft Community Promise to the C# and the CLI ECMA specifications[43] would not prevent Microsoft from harming open-source implementations of C#, because many specific Windows libraries included with .NET or Mono were not covered by this promise...""

Note 36

Patent Pledge for Open Source Developers

"Microsoft irrevocably promises not to assert any Microsoft Necessary Claims against you as an open source software developer ("You") for making, using, importing, or distributing any implementation of a Covered Specification ("Covered Implementation"), subject to the following. This is a personal promise directly from Microsoft to You, and You acknowledge it is a condition of benefiting from it that no Microsoft rights are received from suppliers, distributors, or otherwise by any other person in connection with this promise. To benefit from this promise, You must be a natural or legal person participating in the creation of software code for an open source project. An "open source project" is a software development project the resulting source code of which is freely distributed, modified, or copied pursuant to an open source license. If You engage in the commercial distribution or importation of software derived from an open source project or if You make or use such software outside the scope of creating such software code, You do not benefit from this promise for such distribution or for these other activities.

To clarify, "Microsoft Necessary Claims" are those claims of Microsoft-owned or Microsoft-controlled patents that are necessary to implement the Covered Specification. "Covered Specifications" are listed below. Where a software development project has in all other respects the characteristics of an open source project, distribution among the participants of that project of source code developed by natural persons under an employment contract or by natural or legal persons under a contract to develop is not considered to be commercial distribution, and that software development project does not lose its character as an open source project merely because such distribution takes place among participants. Software is deemed to be commercially distributed within the meaning of this promise when the distributor derives revenues in connection with the distribution, such as from subscriptions, updates, or user-based connection fees or from services that are contractually required for a customer to obtain the current version and/or updates of the software product in question.

This promise is not an assurance either (i) that any of the Microsoft-issued patent claims cover a Covered Implementation or are enforceable or (ii) that a Covered Implementation would not infringe on patents or other intellectual property rights of any third party. No other rights except those expressly stated in this promise shall be deemed granted, waived, or received by implication, exhaustion, estoppel, or otherwise.
Covered Specifications (the promise applies individually to each of these specifications):

"Open Protocol Specifications" (as published at or its successor site) for the protocols implemented in the current and future versions of Windows Vista including the .NET Framework, Windows Server 2008, SQL Server 2008, Office 2007, Exchange 2007, and Office SharePoint Server 2007, that are used by any other Microsoft product to connect with these products."

Android derives revenues in terms of adds but only indirectly. Will Android thus qualify?

Edited 2012-05-01 22:31 UTC

Reply Score: 6

schala09 Member since:

I'm not a lawyer, but I think it's very doubtful that you would infringe a Microsoft patent simply by *using* a programming language. That would be the equivalent of saying that every file you save in Emacs, or every program you compile with GCC, has to use the GPL.

Now, if someone (like Google) produced their own for-profit implementation of C#, including the non-standardized parts of the BCL, then I don't know. But that's a risk that anyone takes when trying to duplicate something that isn't standardized. It's unfortunate, but it has nothing to do with C# as a language.

Reply Parent Score: 2

1c3d0g Member since:

I agree. Plus Google could argue that M$ (yes, I did that on purpose!) is already extracting royalties from Android (by proxy, from the cellphone manufacturers), so Google don't have to pay them - again - for just using C#.

Reply Parent Score: 1