Jump to content

Comparison of the Java and .NET platforms: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
clearify .NET executable environment vs .NET executable format
Meebey (talk | contribs)
updated Debian Mono reference
Line 131: Line 131:
While neither .NET nor Mono are installed with Mac OS X out-of-the-box, the Mono project can be downloaded and installed separately, for free, for any Mac user who wants to build and/or run C# and .NET software.
While neither .NET nor Mono are installed with Mac OS X out-of-the-box, the Mono project can be downloaded and installed separately, for free, for any Mac user who wants to build and/or run C# and .NET software.


C# and the CLI are included and used in a number of Linux and BSD based operating systems by way of including the free software Mono Project.<ref name="fedoramono">[http://news.zdnet.co.uk/software/0,1000000121,39246774,00.htm Fedora embraces Mono - ZDNet UK]</ref><ref name="debianmono">[http://packages.debian.org/unstable/interpreters/mono Debian -- mono]</ref><ref name="ubuntumono">[http://www.osnews.com/story.php?news_id=10714 Wikipedia Uses Mono; Mono Integrated into Ubuntu/Debian - OSNews.com]</ref>
C# and the CLI are included and used in a number of Linux and BSD based operating systems by way of including the free software Mono Project.<ref name="fedoramono">[http://news.zdnet.co.uk/software/0,1000000121,39246774,00.htm Fedora embraces Mono - ZDNet UK]</ref><ref name="debianmono">[http://packages.debian.org/mono Debian Mono Packages]</ref><ref name="ubuntumono">[http://www.osnews.com/story.php?news_id=10714 Wikipedia Uses Mono; Mono Integrated into Ubuntu/Debian - OSNews.com]</ref>


As a result of inclusion of .NET or Mono runtimes in the distributions of Windows and Linux, applications that utilize the programming interfaces that are common to both .NET and Mono can be developed in C# or any other .NET language and then deployed across many operating systems and processor architectures using a runtime environment that is available as a part of the operating system's installation.<ref>[http://www.desktoplinux.com/news/NS2809897659.html Fredora Catches Mono]</ref><ref>[http://www.mono-project.com/news/archive/2006/May-11-1.html SUSE 10.1 released]</ref><ref>[http://www.osnews.com/story.php/10714/Wikipedia-Uses-Mono-Mono-Integrated-into-UbuntuDebian Wikipedia Uses Mono; Mono Integrated into Ubuntu/Debian]</ref> Both Microsoft .NET and the Mono project have complete support for the Ecma- and ISO-standardized C# language and .NET runtime, and many of Microsoft's non-standardized .NET programming interfaces have been implemented or are under development in Mono,[http://www.mono-project.com/Plans] but each environment includes many components that have not been implemented in the other.
As a result of inclusion of .NET or Mono runtimes in the distributions of Windows and Linux, applications that utilize the programming interfaces that are common to both .NET and Mono can be developed in C# or any other .NET language and then deployed across many operating systems and processor architectures using a runtime environment that is available as a part of the operating system's installation.<ref>[http://www.desktoplinux.com/news/NS2809897659.html Fredora Catches Mono]</ref><ref>[http://www.mono-project.com/news/archive/2006/May-11-1.html SUSE 10.1 released]</ref><ref>[http://www.osnews.com/story.php/10714/Wikipedia-Uses-Mono-Mono-Integrated-into-UbuntuDebian Wikipedia Uses Mono; Mono Integrated into Ubuntu/Debian]</ref> Both Microsoft .NET and the Mono project have complete support for the Ecma- and ISO-standardized C# language and .NET runtime, and many of Microsoft's non-standardized .NET programming interfaces have been implemented or are under development in Mono,[http://www.mono-project.com/Plans] but each environment includes many components that have not been implemented in the other.

Revision as of 11:40, 21 November 2007

This is a comparison of the .NET/Mono and Java/Classpath platforms, excluding their associated programming languages, but including such topics as their history, runtime environments (the Java Runtime Environment and Common Language Runtime), community, development process (Ecma and Java Community Process), politics and licensing issues.

Both platforms and their associated programming APIs were designed carefully. If one has a feature another lacks it is most often the result of a conscious design decision. Usually when different means are employed to address the similar problems, each will have advantages and disadvantages. As such, the reader is advised to avoid the temptation to 'keep score', and instead think about why the designers chose to implement their solution in a given way.

Market presence

Java is ubiquitous across many disparate operating systems and environments. Numerous Java Virtual Machine (JVM) implementations exist, from both Sun Microsystems and other vendors such as IBM and Apple. In the mobile and embedded space, many companies such as Nokia and Sony have created Java implementation for products like their cell phone and games console range.

Sun's 2006 decision to open source Java, coupled with the work done on by the GNU Classpath project (with the assistance of companies like IBM) holds promise for free software Java implementations.

Common Language Runtime (CLR) is also a cross-platform standard. The primary platform is Windows, but implementations do exist for other platforms as well, most notably the Mono Project. .NET also has a growing presence in the mobile space thanks to inclusion in Microsoft's mobile editions of Windows. As yet, support outside of devices running a Microsoft OS is somewhat limited.

Standardization

The two platforms, their programming libraries, their binary formats, and their runtime environments have largely been governed by very different means.

The Ecma and the ISO define the .NET executable environment (known as the Common Language Infrastructure, or CLI), .NET executable format (known as Common Intermediate Language, or CIL) and foundation classes (the Base Class Library, or BCL). This very formal committee-based standardisation process is in keeping with the way very popular languages like COBOL, Fortran and C have been standardised in the past. The standards do not include many new libraries that Microsoft has implemented on top of the standard framework, such as those for accessing databases, or building GUI and Web applications, such as Windows Forms, ASP.NET and ADO.NET.

To date, no part of Java has been standardized by Ecma, the ISO, the ANSI, or any other third-party standards organization. While Sun Microsystems has unlimited and exclusive legal rights to modify and license its Java trademarks, source code, and other materials, Sun voluntarily participates in a process called the Java Community Process (JCP) that allows interested parties to propose changes to any of Sun's Java technologies (from language and tools to API) via forums, consultation exercises and expert groups. The JCP requires a membership fee for commercial contributors, while non-commercial contributors and individuals can join for free.

Within the rules of the JCP anyone can bring forward a proposal for a new Platform Edition Specifications or suggest changes to the Java language. All proposals are reviewed and voted on by interested JCP members at various stages throughout their lifecycle, however when it comes to including changes into the standard reference implementations (JavaSE, JavaEE and JavaME) modifications may be subject to rejection by Sun, who retain ultimate power of veto.

Java standards are maintained by a suite of test applications which examine every aspect of a given Java implementation against a rigorous specification. Only if an implementation passes the tens of thousands of individual tests can it use the trademarked name "Java", and associated logos and brands.

License

Java

While "Java" is a Sun trademark, and only Sun can license the name "Java", numerous free software projects exist that are partially compatible with Sun Java. Most notably, GNU Classpath and GCJ provide a free software class library and a compiler that are partially compatible with the current version of Sun Java.[1] Sun announced in November 13, 2006 that all Java source code, excluding closed-source code for which they do not retain rights, will be released under a modified version of the GPL[2], and then already released two fundamental parts of the JRE and JDK: HotSpot and the javac compiler under the GPL[3][4].

Following their promise, Sun released the complete source code of the Class library under GPL on May 8, 2007, except some limited parts that were licensed by Sun from 3rd parties who did not want their code to be released under an open-source license [5] (see also Free Java implementations). Sun's goal is to replace the parts that remain closed with alternative implementations and make the class library completely open.

.NET

Microsoft's .NET CLI executable environment, and much of the corresponding class library, have been standardized and can be freely implemented without a license. Several standards-compliant free software environments have been implemented, such as the Mono Project and DotGNU. The Mono Project has also implemented many of Microsoft's non-standard libraries by examining Microsoft materials, similar to GNU Classpath and Java.

Microsoft is currently distributing a shared source version of its .NET runtime environment for non-profit use.[6]

The Mono project aims to avoid infringing on any patents or copyrights, and to the extent that they are successful, the project can be safely distributed and used under the GPL. On November 2 2006, Microsoft and Novell announced a joint agreement whereby Microsoft promised not to sue Novell or its customers for patent infringement.[7] According to a statement on the blog of Mono project leader Miguel de Icaza, this agreement only extends to Mono for Novell developers and users.

The Microsoft/Novell agreement was criticized by some in the open source community because it violates the principles of giving equal rights to all users of a particular program (see Agreement with Microsoft and Mono and Microsoft’s patents).

In retaliation to the Microsoft/Novell agreement the Free Software Foundation revised its GNU General Public License to close the loophole used by Microsoft and Novell to bypass the GPL's very restrictive provisions on patent deals.[8] The FSF also stated that by selling coupons for Novell's Linux software, the mechanism by which Microsoft circumvented the GNU license, it considers Microsoft to be a Linux vendor, and thereby subject to the full terms and conditions laid out in the GPL.[8] (Microsoft issued the coupons because on the patent deal worked out between the two companies Novell's network patents were considered far more profitable to Microsoft than Microsoft's .NET patents were to Novell.)

On May 14 2007, Microsoft licensing chief Horacio Gutierrez said on Fortune that Linux and associated free software violated 235 patents owned by Microsoft.[9] Some thought that Microsoft wanted by this move to make other open-source software vendors to follow Novell's lead.[10] However, by this move, it has been commented that this "ended any illusion that Microsoft planned to try to build bridges with the open-source community".[11] Also, this virtually threatens people that use the non-core part (the part that is not covered by the ECMA standard, and is patented by Microsoft) of Mono on other Linux platforms than Novell's Suse.[citation needed]

On October 2007, IP Innovation LLC, a company specialized in patent-protection, filed a suit for patent infringement against Red Hat and Novell[12][13][14]. However, IP Innovation LLC is a subsidiary of a company classified by some as a Patent troll[15], and commentators suspect a strong connection between this company and Microsoft[12][13].

Community

In its proprietorship of Java, Sun works with an open culture, allowing multiple parties, from organizations to individuals, to steer the decision making process. Sun retains exclusive and unlimited legal rights to its Java intellectual properties, and the Java community is subject to those rights.

Sun's acceptance of third-party contributions goes to solve the problem of vendor lock-in at the cost of sometimes creating a baffling array of options for beginners wishing to choose a Java-based solution. Java has grown in popularity to become one of the most popular languages of the early 21st century, and the pluralist nature of its development has resulted in many different groups tackling the same (or similar) problems. This issue is particularly acute in the Enterprise space (web/Ajax/Web2.0 applications), where one must not only be familiar with Java, but also the various competing frameworks.

While Microsoft has developed C# and .NET without a formal community contribution system, the language and some parts of the executable format and runtime have been standardized and freely distributed through Ecma and the ISO in an open and vendor-neutral process, rather than a process that retains veto and copy rights for Microsoft. However, the standards do not include many new libraries that Microsoft has implemented on top of the standard framework (see Standardization). Numerous C# and CLI community software projects, help and documentation sites, and discussion forums are under active development and maintenance, including those focusing on Windows development with Microsoft .NET or the Mono project, Free software Operating system development under the Mono project, and mobile development using Microsoft's .NET compact framework..

Microsoft is distributing a shared source release (version 1.0) of the .NET virtual machine that can be compiled and used on Windows, FreeBSD, Mac OS X, and other platforms.[16] An updated version (2.0) is currently available, but the only officially supported platform is Windows.[17] A community port to Linux of the 1.0 shared source .NET virtual machine is also available.[18] In March 2003, O'Reilly Media published a book about Microsoft's shared source .NET runtime.[19]

Traditional computer applications

Desktop applications

Java has sometimes been accused of promising much and delivering little when it comes to desktop applications.[citation needed] Although Java's AWT (Abstract Windowing Toolkit) and Swing libraries are not shy of features, Java has struggled to establish a foothold in the desktop market. Its rigid adherence to the notion of write once, run anywhere makes it difficult to use to the maximum the unique features and modes of working within each individual desktop environment. In the past, desktop applications written in Java have often been accused of looking "alien" on any platform they are run on, although recent versions of Java have started allowing greater use of native widgets.[20] Sun Microsystems has also been slow, in the eyes of some,[citation needed] to promote Java to developers and end users alike in a way which makes it an appealing choice for desktop software. Even technologies such as Java Web Start, which have few parallels within rival languages and platforms, have barely been promoted.

The release of Java version 6.0 in December 11, 2006, saw a renewed focus on the desktop market with an extensive set of new tools for closer integration with the desktop. At the 2007 JavaOne conference Sun made further desktop related announcements, including a new language aimed at taking on Adobe Flash (JavaFX), a new lightweight way of downloading the JRE which sees the initial footprint reduced to under 2Mb, and a renewed focus on multimedia libraries.

An alternative to AWT and Swing is the Standard Widget Toolkit (SWT), which was originally developed by IBM and now maintained by the Eclipse Foundation. It attempts to achieve improved performance and visualization of Java desktop applications by relying on underlying native libraries where possible.

.NET has become increasingly common in open source and free software systems due to its inclusion [21] by the GNOME desktop environment using the Mono framework.

Server applications

This is probably the arena in which the two platforms are closest to being considered rivals. Java, through its Java EE (aka J2EE, Java(2) Enterprise Edition) platform, and .NET through ASP.NET, compete to create web-based dynamic content and applications.

Both platforms are well used and supported in this market, with a bevy of tools and supporting products available for JavaEE and .NET. And both have high profile backers. For example, for Java: Oracle included direct support for Java into its database, while Google has used Java to power tools like Gmail[22].

Some of Sun's current Java-related license agreements for Java EE define aspects of the Java platform as a trade secret,[23] and prohibit the end user from contributing to a third-party Java environment. Specifically, at least one current license for a Sun Java EE development package contains the following terms: "You may make a single archival copy of Software, but otherwise may not copy, modify, or distribute Software." — "Unless enforcement is prohibited by applicable law, you may not decompile, or reverse engineer Software." — "You may not publish or provide the results of any benchmark or comparison tests run on Software to any third party without the prior written consent of Sun." — "Software is confidential and copyrighted."[23] However, while Sun's software is subject to the above license terms, Sun's Java EE API reference has been implemented under an open source license by the JOnAS project.

Microsoft's implementation of ASP.NET is not part of the standardized CLI, and while Microsoft's runtime environment and development tools are not subject to comparable secrecy agreements to Java EE, the official Microsoft tools are not open source or free software, and require Windows servers. However, a cross-platform free software ASP.NET 1.1 implementation is part of the Mono project.[24]

Embedded applications

Mobile applications

Java's JavaME (aka J2ME, Java(2) Micro Edition) has a very large base within the mobile phone and PDA markets, with only the cheapest devices now devoid of a KVM (a cut down Java Virtual Machine for use on devices with limited processing power). Java software, including many games, is commonplace.

While almost every mobile phone includes a JVM, these features are not always heavily used by users (particularly in North America). Initially Java applications on most phones typically consisted of menuing systems, small games, or systems to download ringtones etc. However, more powerful phones are increasingly being sold with simple applications pre-loaded, such as translation dictionaries, world clock displays (darkness/light, timezones, etc.) and calculators. Some of these are written in Java, although how often phone owners actually use them is probably unknown.

In January 2007 Steve Jobs suggested that Apple's iPhone would not support Java [25][26]. Significantly, at that time Java's mobile platform was perceived as nearly ubiquitous across the cell phone market, commonly being used by software companies to write device-neutral mobile applications. Noted commentators argued against Jobs' stand [27], but when the iPhone finally appeared it did indeed lack both Java and Adobe's rival Flash technology, favouring instead simple web applications using the phone's Safari browser.

In May 2007 Sun used the JavaOne conference to announce JavaFX Mobile, as a direct response to Adobe's attempt to introduce Flash onto mobile devices.

In October 2007 Apple bowed to pressure and announced that by early 2008 the iPhone would be opened up to allow development of software other than via the Safari browser. Currently it does not look likely Java or Flash will be directly supported under this plan, although a third party could port JavaME to the iPhone.

Leading edge technologies

Java has found a market in digital television, where it can be used to provide software which sits alongside programming, or extends the capabilities of a given Set Top Box. TiVo, for example, has a facility called "Home Media Engine", which allows JavaTV software to be transmitted to an appropriate TiVo device to complement programming or provide extra functionality (for example, personalised stock tickers on a business news program.)

A variant of Java has been accepted as the official software tool for use on the next generation optical disc technology Blu-ray, via the BD-J interactive platform. This will mean that interactive content, such as menus, games, downloadables, etc. on all Blu-ray optical discs will be created under a variant of the Java platform. Blu-ray equipment first went on sale to the consumer in 2006, and is currently not widely owned. However, the release of the Sony Playstation 3 in late 2006 and early 2007 may give the platform a boost.

Rather than using Java, HD DVD (the high definition successor to DVD) uses a technology jointly developed by Microsoft and Disney called HDi that is based on XML, CSS, JavaScript, and other technologies that are comparable to those used by standard web browsers.

The BD-J platform is more sophisticated than its iHD rival, with an alleged 8,000 methods and interfaces, as opposed to iHD's 400[28]. And while Microsoft is pushing iHD's XML presentation layer by including it with Windows Vista, iHD is still a newcomer in a market sector where Java technologies are already commonplace[29].

Runtime inclusion in operating systems

.NET/Mono

On Windows, Microsoft is promoting .NET as its flagship development platform,[30] by including the .NET runtime in Windows Server 2003 and Windows Vista, and distributing the Visual C# Express development environment at no cost.[31]

While neither .NET nor Mono are installed with Mac OS X out-of-the-box, the Mono project can be downloaded and installed separately, for free, for any Mac user who wants to build and/or run C# and .NET software.

C# and the CLI are included and used in a number of Linux and BSD based operating systems by way of including the free software Mono Project.[32][33][34]

As a result of inclusion of .NET or Mono runtimes in the distributions of Windows and Linux, applications that utilize the programming interfaces that are common to both .NET and Mono can be developed in C# or any other .NET language and then deployed across many operating systems and processor architectures using a runtime environment that is available as a part of the operating system's installation.[35][36][37] Both Microsoft .NET and the Mono project have complete support for the Ecma- and ISO-standardized C# language and .NET runtime, and many of Microsoft's non-standardized .NET programming interfaces have been implemented or are under development in Mono,[1] but each environment includes many components that have not been implemented in the other.

Java

Starting with XP, Windows does not ship with a Java runtime environment. However according to a September 2003 press release some OEMs agreed to pre-install the JRE on their desktop and laptop models. Mentioned were Acer, Dell, Gateway, Hewlett-Packard, and Toshiba.[38]. These companies combined make up a simple majority of consumer PC's sold in the United States of America [2].

Apple's support for Java means it has come pre-installed on all new Apple computers since the launch of MacOS X.

Java comes pre-installed with many commercial Unix flavours, including those from Sun, IBM and Hewlett Packard.

Several Linux maintainers distribute non-free components including Sun Java in official archives that are separated from their main operating system distribution, for example Debian non-free,[39] Ubuntu multiverse,[40] Slackware extra,[41] OpenSuse non-OSS,[42] and Mandriva[43].

The Operating System Distributor License for Java (DLJ)[44] is a Sun initiative to ease distribution issues with operating systems based on OpenSolaris or Linux.

Free software operating systems are currently unable to include any Sun Java Runtime Environment because Sun has not yet released its Java class library under a free software license.[4][45][46] Until either GNU Classpath (the closest-to-compatible free software alternative) implements features of more recent Java version 1.6, or Sun Java completes its free software transition, no fully compatible Java implementation will be available pre-installed on free software platforms. However, the IcedTea project has been started by Red Hat to be able to bundle OpenJDK in Fedora Core and other free Linux distributions, without using any non free code. It is basically an OpenJDK/GNU Classpath hybrid that can be used to bootstrap OpenJDK using only Free Software[47][48]

GNU Classpath is almost 100% compatible with the 1.4 version of Sun Java[49] and as of April 2007 has managed to implement Generics[50], but may be unable to act as a runtime environment for Java programs that utilize features that are new to the current version of Java.[51]

If Java is not installed on a computer by default, it may be downloaded by the user as a web plugin. The web plugin process has been criticised because of the size of the Java plugin. Unlike other plugins (notably Shockwave Flash) the Java download is a full runtime environment, capable of running not just applets, but full applications and dynamic WebStart apps. Because of this the perceived download footprint is larger than some web plugins. However, compared to Java, other popular browser plugins have larger sizes: Java 6 JRE is 13 MB, but Acrobat Reader is 22 MB, QuickTime 19 MB, Windows Media Player 13 MB, and the .NET Framework 2.0 runtime is 22 MB.

At the JavaOne event in May 2007 Sun announced that the deployment issues with Java would be solved in two major updates during the lifespan of Java 6 (the changes will not be held over to Java 7.) These include:

  • the introduction of a new consumer JRE edition, with an initial 2Mb footprint and the ability to download the remaining 9Mb in sections using an on-demand methodology.
  • the development of drop-in cross platform JavaScript code, which can be used from a web page to install the necessary JRE for a given applet or Rich Internet Application to run, if necessary.
  • an improvement in support for automatically downloading updates to the JRE.
  • support for pre-loading of the JRE, so applets and applications written in Java start up almost instantaneously.

See also

References

  1. ^ Results of comparison between jdk15 and classpath
  2. ^ http://www.sun.com/software/opensource/java/project_overview.jsp
  3. ^ Sun openjdk: Home
  4. ^ a b Sun Java 2 Runtime License Agreement Cite error: The named reference "sunj2relicense" was defined multiple times with different content (see the help page).
  5. ^ "Open JDK is here!". Sun Microsystems. 2007-05-08. Retrieved 2007-05-09. {{cite web}}: Check date values in: |date= (help)
  6. ^ Rotor: Shared Source CLI Provides Source Code for a FreeBSD Implementation of .NET
  7. ^ Microsoft and Novell Announce Broad Collaboration on Windows and Linux Interoperability and Support
  8. ^ a b Microsoft takes on the free world.
  9. ^ Microsoft claims software like Linux violates its patents
  10. ^ Microsoft inks more Novell-like patent-infringement deals
  11. ^ GPLv3 the impetus for Microsoft's latest Linux attack campaign
  12. ^ a b Berlind, David (2007-10-11). "First patent suit against Linux has a Kevin Bacon-esque connection to Microsoft". zdnet. Retrieved 2007-10-12. LLC is a subsidiary of Acacia Research Corporation... This past July Acacia hired Jonathan Taub away from his job as Director, Strategic Alliances for the Mobile and Embedded Devices (MED) division at Microsoft and then, just last week, it hired Brad Brunell away from his job at Microsoft where, among other jobs, he served as General Manager, Intellectual Property Licensing. {{cite web}}: Check date values in: |date= (help)
  13. ^ a b "Patent Infringement Lawsuit Filed Against Red Hat & Novell - Just Like Ballmer Predicted". groklaw. 2007-10-11. Retrieved 2007-10-12. {{cite web}}: Check date values in: |date= (help)
  14. ^ The U.S. patent 5,072,412 concerns the desktop User Interface, see here
  15. ^ "A Deeper Look at Acacia". 2007-08-13. Retrieved 2007-10-12. {{cite web}}: Check date values in: |date= (help)
  16. ^ Shared Source Common Language Infrastructure 1.0 Release
  17. ^ Shared Source Common Language Infrastructure 2.0 Release
  18. ^ Rotor Comes to Linux
  19. ^ oreilly.com -- Online Catalog: Shared Source CLI Essentials
  20. ^ Java – What's New in Java SE 6
  21. ^ Mono-Applications-Aplenty!, OSNews
  22. ^ Google Web Toolkit
  23. ^ a b Java EE SDK 5 Update 2 No JDK download page (reference to license agreement)
  24. ^ Mono: ASP.NET
  25. ^ Jobs: No Java for you
  26. ^ Steve Jobs on iPhone: No Java For You
  27. ^ Steve Jobs alert: Killer Java app for iPhone
  28. ^ HD-DVD vs. Blu-Ray, round 2
  29. ^ Format Wars - Blu-ray vs HD DVD
  30. ^ Microsoft article that refers to C# as its "flagship" language.
  31. ^ microsoft.com: Visual C#
  32. ^ Fedora embraces Mono - ZDNet UK
  33. ^ Debian Mono Packages
  34. ^ Wikipedia Uses Mono; Mono Integrated into Ubuntu/Debian - OSNews.com
  35. ^ Fredora Catches Mono
  36. ^ SUSE 10.1 released
  37. ^ Wikipedia Uses Mono; Mono Integrated into Ubuntu/Debian
  38. ^ Sun signs up five more OEMs for Java
  39. ^ Debian Java package
  40. ^ Ubuntu Java package
  41. ^ Slackware Java package
  42. ^ OpenSUSE Java package
  43. ^ Mandriva Java package
  44. ^ Operating System Distributor License for Java (DLJ)
  45. ^ GNU Classpath FAQ: isn't java free already?
  46. ^ GNU Classpath tainted developer description
  47. ^ Andrew, Haley (2007-06-07). "Experimental Build Repository at icedtea.classpath.org". Retrieved 2007-06-09. {{cite web}}: Check date values in: |date= (help)
  48. ^ Mark, Wielaard (2007-06-07). "Experimental Build Repository at icedtea.classpath.org". Retrieved 2007-06-09. {{cite web}}: Check date values in: |date= (help)
  49. ^ Results of comparison between jdk14 and classpath
  50. ^ GNU Classpath 0.95 "Take Five" released
  51. ^ Results of comparison between jdk15 and classpath