Comparing Java to .Net and C-sharp
For both languages, there is only one patent holder which asserts that it has patents on the language and is willing to take developers to court. For C#, that's Microsoft, and for Java, that's Oracle.
What forms of aggression have the patent holders shown?
Microsoft has long history of aggressive use of their patents against software projects such as their use of their FAT patents (against TomTom and against and unknown defendant in Germany), and their litigation against Salesforce. Microsoft executives have also made repeated comments about free software such as GNU/Linux infringing their patents and have knelt on various free software distributors to obtain royalties for the distribution of GNU/Linux.
What reassurances have the patent holders offered?
- Oracle (holder of all the worrying patents) has distributed a version of Java, called OpenJDK, under the terms of the GPLv2. In doing so, it has given an implicit grant to everyone that distributes and develops software based on that code, including modified versions, subsets, and supersets.
- Oracle is a licensee of Open Invention Network, which means it has promised not to enforce its patents against the list of free software packages.
- Of least importance, Oracle makes a patent grant in the Java Language Specification, but this is of low importance because it only applies to Java implementations that are 100% compliant, no subsets, no supersets.
.Net and C#
Microsoft irrevocably promises not to assert any Microsoft Necessary Claims against you for making, using, selling, offering for sale, importing or distributing any implementation, to the extent it conforms to one of the Covered Specifications, and is compliant with all of the required parts of the mandatory provisions of that specification ("Covered Implementation"), subject to the following: [...]
each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software.
MS-PL is incompatible with GPL, and it only applies to parts that are under MS-PL.
If another part of Mono, which is not distributed by Microsoft under MS-PL, infringes the same patent, the MS-PL parts are irrelevant.
Related pages on ESP Wiki
- .Net On Android Is Safe, Says Microsoft, 27 Aug 2010, Slashdot
- Initial Thoughts on Oracle vs Google Patent Lawsuit, 13 Aug 2010, Miguel de Icaza
- Java Language Specification
- Mono and Microsoft’s patents, Wikipedia