When people talk about open source, the notion of “forking” often comes up. The idea is that some folks are not happy with the direction in which a project is going, so they take a copy of the source code, come up with a new name, and set up shop elsewhere. This is no guarantee that the newly forked project will be successful, but it functions as an important escape valve for those who have donated time and effort to a community project and want to see the work done in what they believe is the right manner.
You less often hear about what I’ll call a “reverse fork”: people developing largely similar but separate projects who decide that they instead want to work together. They can do this for a variety of reasons but it all comes down to “burying the hatchet” or otherwise resolving their differences for the sake of the project.
With that preamble, IBM and Oracle have announced that they will work together on the newly reinvigorated OpenJDK project. As described on its website, OpenJDK is “The place to collaborate on an open-source implementation of the Java Platform, Standard Edition, and related projects.” IBM will work with Oracle and the Java community to make OpenJDK the primary high performance open source runtime for Java. IBM will be shifting its development effort from the Project Harmony to OpenJDK. For others who wish to do the same, we’ll work together to make the transition as easy as possible. IBM will still be vigorously involved in other Apache projects.
We think this is the pragmatic choice. It became clear to us that first Sun and then Oracle were never planning to make the important test and certification tests for Java, the Java SE TCK, available to Apache. We disagreed with this choice, but it was not ours to make. So rather than continue to drive Harmony as an unofficial and uncertified Java effort, we decided to shift direction and put our efforts into OpenJDK. Our involvement will not be casual as we plan to hold leadership positions and, with the other members of the community, fully expect to have a strong say in how the project is managed and in which technical direction it goes.
We also expect to see some long needed reforms in the JCP, the Java Community Process, to make it more democratic, transparent, and open. IBM and, indeed Oracle, have been lobbying for such transformations for years and we’re pleased to see them happening now. It’s time. Actually, it’s past time.
Ultimately this is about making Java more successful and pervasive than ever before. Java is not about any single company’s technical direction and it helps prevent lock-in. It runs on many, many different operating systems and hardware platforms. As a blatant plug, let me say Java runs exceptionally well on Linux and IBM’s System z, POWER, and Intel-based hardware. Indeed Java is one of the open standards that makes System z the amazingly interoperable platform that it is.
Java is about compatibility and always has been. It’s not been easy to maintain runtime environments that are consistent across platforms while exploiting the underlying features and performance advantages of those platforms. With this newly unified OpenJDK open source project, we can give customers the confidence they need to continue to invest in Java-based solutions knowing that they will get the best technology, the most important innovations, and the tightest collaboration among industry leaders.
We believe that this move to work together on OpenJDK is in the best interests of IBM’s customers and will help protect their investments in Java and IT technology based on it.
So to summarize my opinions on this: OpenJDK represents the best chance to provide a top notch unified open source runtime for Java; customers will benefit by having first class Java open standards developed collaboratively and constructively; and our energy will be focused on working together and optimizing our joint work, rather than wasting time on duplicative projects.