JavaOne Spotlight: OpenJDK
Sun officially launched OpenJDK, the open sourcing of the Java platform, on May 8 at Sun's JavaOne conference in San Francisco. According to Rich Sands, Sun's OpenJDK community marketing manager, you can now download just about everything related to Java in source form. A few small items, for which Sun does not own source rights, are being released in binary-only form.
In order to continue promoting Sun's goal of cross-platform capability for Java ("write once, read many"), the Java Community Process will be promoting an optional certification scheme. Certification will be based on a standard that the JCP derives. Sun will license Java SE Technology Compatibility Kits (TCKs). These toolkits will provide tools, tests, and documentation to help you determine whether or not your Java implementations meet compliance.
Ever want to understand garbage collection? How to build a virtual machine (VM)? Often, there's no better way to learn than to look at source code. Better, you can change it and help shape the future of Java. Sands is openly soliciting your contributions.
You can find Sun's open source site, including the source for the JDK, at http://www.sun.com/software/opensource/java/. Source is downloadable via Subversion, or you can browse source at the site.
There are two primary downloads: one is the source for the Java compiler; the other is the source for the JDK, including source for the VM. You'll find Java, C++, and even C code among the source languages used.
You can find the OpenJDK community site at http://community.java.net/openjdk/. You can also join one of the mailing lists, each centered on a different API or topic pertinent to open Java. You can find available email lists at http://mail.openjdk.java.net/mailman/listinfo, and you can even chat about it on IRC. The general Java forum contains a JDK Open Source forum (see http://forums.java.net/jive/category.jspa?categoryID=33); it's been hot with postings for some time.
The site also contains the home pages for various OpenJDK projects. For example, the Design by Contract (DbC) project is designed to add contract features to the language. The kahve project is intended as a purely educational project: its goal is to show how to implement a Java virtual machine--in Java! Project Looking Glass is another project to bring three-dimensional windowing and visualization capabilities to Java.Note that each of these projects is free to choose it's own licensing scheme (such as GPL or BSD).
Technically, OpenJDK is part of the "Free Software" movement, which carries certain political overtones. It's important to note that the OpenJDK project is itself licensed as GPLv2, and companies ultimately looking to distribute products directly based on the OpenJDK should understand the legal ramifications of such decisions.
Fortunately, the "classpath exception" afforded by the GPL allows you to use an altered OpenJDK VM to run a product, without expressly making that product GPL. The Free and Open Source FAQ contains a considerable amount of further information on licensing ramifications.
I suspect everyone who has ever worked with Java in depth wishes they could change something about the language, or wanted the platform to do something it couldn't. My personal wish list includes reworking the Java API so that it more readily supports unit testing and extension. The open version of Java presents some great opportunities. Maybe we can all find the time! Check back to find articles on OpenJDK soon.