For some time now, GNU Classpath hackers have been monitoring the progress of their mission — to reimplement the Java class libraries from scratch — with a brilliant little set of tools called japitools. These programs produce an overview of the API-compatibility of Classpath (and other versions of the class library) against the official versions published by Sun. Thus, the more packages that are green on those pages, the closer we are to our goal.
GNU Classpath has been around for more than six years now. The core of the Java 2 Standard Edition, version 1.4, is largely complete. The biggest holes in the library now are Swing (which, as of this writing, is being aggressively worked on by a number of hackers) and a few peripheral packages.
Prompted by Tom Tromey's mailing
list message about the growth of Classpath, I decided to put together some
statistical graphics charting it. The charts below describe the API-completeness
of GNU Classpath against the major revisions of the Java class library, based on
monthly snapshots of the CVS sources. These snapshots were compiled with a gcj-compiled version of the compiler that
comes with Eclipse (I did this because
native ecj is the absolute fastest bytecode compiler; compiling six years' worth
of code — including lots of cvs update pauses — took me
about twenty minutes). Then the jar files produced by this were processed by
japize, then compared with the japi files for Sun's
Java releases. The total good versus bad and missing is charted below.
These graphics were plotted with R.
Copyright © 2004 Casey Marshall
Verbatim copying and distribution of this entire article and its images is permitted worldwide, without royalty, in any medium, provided this notice is preserved.