« HD is King | Main | Apple Solves the iPod Dilemma »

Apache Harmony

In the middle of 2005, the Apache Harmony project was started in the Apache Incubator, amidst a flurry of discussion and speculation.

Simply put, Harmony wants to build a Java JVM, a faster and more modular drop in replacement for the existing JVM's released by Sun, IBM and BEA.

Following the announcement of the project's beginnings, what followed was one of the most intense discussions on any open source project ever, and questions were raised as to whether it was all just talk, and no actual code. Slowly the noise died down, and Harmony plodded on.

Earlier today, I attended a talk by Geir Magnussen at ApacheCon 2006 where a summary was given of the project so far, and to be honest I am blown away.

Since the official launch in May of 2005, major sections of the JVM are nearing completion, in some cases with more than a single modular implementation of a component. Donations of both code and test cases from IBM and Intel, as well as contributions from many individuals has seen progress jump in leaps and bounds. The commit list sees almost 2000 commits per month.

Harmony runs Apache Tomcat and Eclipse, no mean feat.

The most impressive is the JAPI class libraries completeness test hosted here, which shows at this writing that 94% of the class libraries are complete.

The importance of the Harmony project and its place in the Java universe is probably under appreciated by most people in it. For the first time, a JVM will exist that can be ported to any platform, including embedded or future platforms, without the buyin of a major (and possibly competing) vendor. And in addition, Java can become as ubiquitous on platforms like Linux and FreeBSD as perl is today, without the need to navigate the legal minefield of the distribution licenses of the existing JVMs.

Despite the fact that Harmony has yet to graduate from the incubator, Harmony looks to be well on its way to becoming one of the ASF's key projects.


TrackBack URL for this entry:


With the announcement yesterday that Sun is going to release Java under the GPL license. I have to be suddenly pessimistic about this.

The problem is, now that the original is going to be free as in speech, a project that is almost completely unheard of, is going to struggle to take a foothold. People trust the Sun JVM, people have built their software on it. For developers and, more importantly, decision makers, to decide to switch to something completely new is going to take some above-and-beyond performance from Harmony.

Here's hoping...

This question has come up on mailing lists in a number of places, however the key difference lies in the licensing.

The ASF license allows companies to make closed source derivative works, while the GPL does not. There are a significant amount of stakeholders out there where licensing matters enough to them to make pursuing Harmony worthwhile. It is projects like GNU Classpath that are more directly affected by Sun's move than the Harmony project, either way the developers on Harmony don't care just as yet.

I as a consumer of Java welcome both the existence of Harmony and the open sourcing of the Sun JVM, as it allows me choice as to what I may consider a better JDK.

Fair enough. For a moment there I thought that there may be something to be said for cross-pollination between these two projects. But I realise that the licensing would restrict that. Am I correct in saying that the ASF license would allow code to be taken into the Sun JVM, but not the other way around?

Post a comment

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)