Open Source Java: Interview with an Apache Harmony Project Founder - page 2
The Origins of Harmony
LinuxPlanet: Why do you think it's important to have an open source Java implementation?
Topic: After ten years, Java has become one of the most popular programming languages. There is a wealth of free software written in the Java programming language. We've now got several full free software J2EE stacks that run on top of free software support libraries, and on free software operating systems. There is only one remaining proprietary wedge in those stacks, and that's the Java implementation. I believe that one should not be forced to use proprietary software in order to use and share free software with other people.
Unfortunately, up to a few years ago, before the GNU Classpath project led by Mark Wielaard started really taking off, most of that software would require a proprietary Java implementation to run. Having free software that's so intimately tied to proprietary code made the free software written in Java less useful to users and developers than it could have been. For example, on those platforms where no company felt a business need to pay for a port of a proprietary implementation, no software written in Java could run. That included GNU/Linux, when the Kaffe project was founded in 1996.
Today, the free runtimes in the GNU Classpath runtime family are increasingly capable of running the latest free software written in Java, be it Eclipse, Azureus, or JOnAS. We're working together with distributors to make sure that the free software written in Java can be packaged, i.e., is building and working, with the free runtimes. Distributions like Ubuntu, Fedora, Debian, and others are shipping Eclipse and OpenOffice.org working on top of gcj and GNU Classpath today, which translates to millions of lines of code no longer forcing proprietary virtual machines down the throats of free software users and developers.
In addition, the free software runtimes around GNU Classpath are leading to some innovations in the Java space: IKVM allows Java code to run unmodified on top of .NET, JCVM, and gcj allow Java bytecode to be pre-translated ahead of time into fast native code, while projects like JNode are working on making the idea of a native Java operating system come true.
LinuxPlanet: What is the current status of Harmony within the Apache Software Foundation?
Topic: The Apache Harmony project has received several generous contributions. Archie Cobbs and Dan Lyddick have both contributed runtime engines, and IBM and Intel have contributed class library source code. Currently Archie and other Apache Harmony developers are working on publishing a first snapshot of the work that went in over the past nine months.
LinuxPlanet: If Sun releases Java as open source, or allows distribution on Linux, how would that affect Harmony's future?
Topic: It would be nice if Sun one day suddendly decided to release the source code for their J2SE implementation under an OSI-certified open source software license. I think Harmony, just like other free runtimes projects, would take a sharp look at the code and decide what they could reuse. I'd hope that Sun would work with the Apache Harmony project and other projects if they decided to go the open route.
Unfortunately, for a lot of business reasons at Sun, I don't see it happening in the near term future, although I know that it's a somewhat popular speculation.
I believe that Sun has missed that boat a few years ago, when a lot of people finally decided that they had enough of waiting for them to do the right thing and join us, and started routing around the problem, by working hard to make sure that the best implementation of the platform in the future will be free software.
A different proprietary license for Sun's proprietary software would not change anything. Developers and users increasingly do not want to spend their time and energy dealing with the bizarre whims of proprietary software publishers, if the free software alternatives work equally well or even better. I'd expect the free software runtimes in the GNU Classpath family, like Kaffe, gcj or Cacao to become seamless drop-in replacements for proprietary implementations in the next three years, removing the need for people to bother with the proprietary implementations when they want to use free software.
LinuxPlanet: What is the relationship between IBM and Harmony?
Topic: IBM is the employer of one full-time developer on Apache Harmony. They have contributed the implementation for a part of the core class library.
LinuxPlanet: Which version of Java are you targeting?
Topic: Apache Harmony is targeting J2SE 1.5.
LinuxPlanet: What can we expect in the future from Harmony?
Topic: I would expect Apache Harmony to spend this year in a reasearch and integration phase, where different components from different sources are still being made to fit well together. I'd love to see Apache Harmony run Eclipse next year, and I assume the project will apply for a TCK scholarship once it has reached such a milestone, to be able to run the compatibility test suites and keep improving the compliance with the specifications.
I would expect Apache Harmony to become useful in the next three to five years, depending on how many companies it can attract to contribute components to it. Since Apache Harmony is deliberately not using GNU Classpath, it will have to write all the class libraries. As that took GNU Classpath around 10 years, I'd expect Harmony to at best compress that to 5 years, assuming everything works out optimally.
Apache Harmony has already succeeded in one major thing: making free software Java runtimes something that most Java developers are no longer afraid of.
LinuxPlanet: Thanks very much for speaking with us about the Harmony project.
As an open source strategy consultant, Maria Winslow assists clients in understanding the technical and budgetary impact open source software will have on their computing environments. Her current book, The Practical Manager's Guide to Open Source, guides IT directors and system administrators through the process of finding practical uses for open source that will integrate seamlessly into existing infrastructures, as well as understanding the costs and savings.