Is Java truly free at last? Uwe Schindler weighs in
© Shutterstock / Carden
Java 9 is upon us but users won’t have to wait another few years to try out the next version. As it turns out, the historical feature-driven release model is about to become history. Oracle has proposed to increase the release cadence of Java SE to every six months. Is Java finally going open source? We invited Uwe Schindler to comment on Oracle’s proposal.
Java — Free at last?
A new path awaits. Mark Reinhold, the Chief Architect of the Java Platform Group at Oracle, proposed that the Java SE Platform and the JDK go from “the historical feature-driven release model to a strict, time-based model with a new feature release every six months, update releases every quarter, and a long-term support release every three years.”
Still, this might not even be the most mind-blowing news of the week! One piece of announcement is actually even more interesting than the fact that developers won’t have to wait years before they have the chance to play with new Java versions, namely the plan to ship OpenJDK builds under the GPL. Mike Milinkovich, Executive Director of the Eclipse Foundation, pointed out the historical dimension of this decision in his blog post titled “Java: Free At Last“:
Java will finally be freed of the explicit and implicit field of use restrictions which have dogged it since its invention. Developers will be free to use Java on any device, without requiring any additional licensing or other permission. I believe that this is going to lead to a resurgence of innovation in the Java ecosystem.
A little over a decade ago, Sun Microsystems started the process of open sourcing Java. It seems that Oracle is finally finishing the job. Good for them.
We invited Uwe Schindler, Apache Lucene PMC Member and Contributor of the OpenJDK Project, to weigh in on the proposed changes. What exactly do both the new licensing policy and the new release cycles mean for users?
To what extent is Java truly open source?
JAXenter: Oracle have expressed the desire to release future OpenJDK builds under GPL. They also revealed that there will be no technical differences between OpenJDK builds and Oracle JDK binaries. What does that mean?
Uwe Schindler: The Java Core has been the same for OpenJDK Builds and Oracle Builds since Java 7, so you could easily change between versions starting from Java 7. At least when working in server environments. So yes, one could say “Java is open source” to that. Still, there have been differences concerning the implementation of some components. Foremost that concerned GUI-environments (AWT/Swing) where some parts were omitted in OpenJDK (sound output, options for graphic editing).
OpenJDK builds released with Linux distributions (IcedTea) had patches to compensate for that. However, the number of proprietary internal implementations has significantly declined by time.
There are still some differences between what the two builds included in their shipment setup. The Oracle variety brings some additional tools like Flight Recorder, which will be open sourced now too. On the other hand, lots of those tools have been removed in Java 9 (which is actually just another way of avoiding the open source issue); e.g. jhat and hprof, to name just a few.
JAXenter: Can we say Java is completely open source now, like Apache Lucene for example, based on the GPL licensing and binary-leveling?
Uwe Schindler: Technically speaking, yes, but there still is a different development culture compared to traditional open source project thriving on how everyone can contribute. You might still call that a weak point with Java. The review process is heavily dominated by Oracle and everything you might want to add needs to go through it. That’s different with Apache projects like Lucene: Review-after-Commit is how things work there and everyone can join the conversation, not just selected individuals.
JAXenter: Licensing issues have been a disputed topic around Java in the past: Think about Apache Harmony and Google Android. Are such issues resolved now?
Uwe Schindler: These last changes do nothing to alter the statement given by the Apache Software Foundation. The issues concerned TCK (technology compatibility kit); Oracle did not make a public statement yet on how they will be handling it. Still, things seem to be getting in motion here. Let’s just wait and see!
JAXenter: What is your personal take on Oracle’s decisions?
Uwe Schindler: I hope that the significantly shortened new release cycles will lead to a faster release of new features to users, motivating more developers to contribute to OpenJDK. Current length of release cycles really was discouraging for developers when it came to making suggestions or writing new code/APIs. When you suggested a feature in the past, you might already have been thinking about retirement or at least moved on to a new job when it would finally arrive, so you didn’t need it anymore.
JAXenter: Thank you.