oracle_openJDK

Java experts on OpenJDK vs. Oracle JDK: Part 2

on Mar 14, 19 • by Kara Howson • with No Comments

Experts discuss the pros and cons of OpenJDK vs. Oracle JDK and make recommendations for those that have not yet purchased Oracle subscriptions. ...

Home » Open Source, OSS Export » Java experts on OpenJDK vs. Oracle JDK: Part 2

Welcome to part two of our three-part blog series (read part one), where we feature expert commentary on OpenJDK, Oracle JDK, and more.

In 2018, Oracle announced that after January 2019, businesses will need to purchase a commercial license (i.e., from Oracle) in order to receive software updates. Further details are available at the Oracle Java SE Support Roadmap page. Rogue Wave OpenLogic enterprise architects help companies worldwide make this migration secure, allowing your team to get up and running quickly on a more cost-effective solution.

We reached out to Java experts to get their thoughts. Here’s the questions we posed to each expert:

What would you recommend to companies with production software running on Java SE 8, who have not yet purchased subscriptions? What are the pros and cons of using OpenJDK vs. Oracle JDK?

Read their answers below.

Stephen Colebourne: Creator, Joda projects

Stephen Colebourne (@jodastephen) is the creator of Joda projects.

What would you recommend to companies with production software running on Java SE 8, who have not yet purchased subscriptions?
Choose an OpenJDK build with a GPL+CE license, such as that from your Linux distribution, or from AdoptOpenJDK, Amazon Corretto, or Azul Zulu.

What are the pros and cons of using OpenJDK vs. Oracle JDK?
If you intend to pay Oracle, use Oracle JDK. If you don’t intend to pay Oracle, don’t use Oracle JDK. Since it’s essentially the same codebase, there aren’t really any other pros or cons. Note: Read a related post by Stephen, “Time to look beyond Oracle’s JDK.”

Dr. Heinz M. Kabutz from JavaSpecialists.eu

Dr. Heinz Kabutz (@heinzkabutz) is a Java expert with JavaSpecialists.eu.

What would you recommend to companies with production software running on Java SE 8, who have not yet purchased subscriptions?
I would recommend that they move over to OpenJDK 11 as soon as possible. If they have to stay with Java SE 8, then I would evaluate which company offers the best value for the money.

What are the pros and cons of using OpenJDK vs. Oracle JDK?
We can use OpenJDK 11 in production without a paid license. Not so with Oracle JDK 11. That needs a commercial license if you want to use it in production. It is like running Java SE 8 with -XX:+UnlockCommercialFeatures. Since we’d prefer our development environment to be as similar as the production environment, we’d rather use OpenJDK. At the moment, they are the same, but it is likely that they will diverge over time.

Ken Fogel, Java Champion and CS Teacher

Ken Fogel (@omniprof) is a Java Champion and Computer Science teacher at Dawson College.

What would you recommend to companies with production software running on Java SE 8, who have not yet purchased subscriptions?
I’d recommend to stop using Oracle’s branded Java unless they already have extensive agreements for other Oracle products.

What are the pros and cons of using OpenJDK vs. Oracle JDK?
It’s too early to compare Oracle Java and OpenJDK. Published statements from Oracle have implied that both versions will be identical. The problem is that Oracle has not defined what ‘identical’ will mean in practice. My fear is the discovery of an application that fails or behaves unpredictably on some Java distributions.

Brad Wood, lead architect and developer advocate

Brad Wood (@bdw429s) is Lead Architect and Developer Advocate at Ortus Solutions, Corp.

What would you recommend to companies with production software running on Java SE 8, who have not yet purchased subscriptions?
Either go or get off the pot. Oracle JDK 8 has received what will likely be the last free update and Java 11 was never free so make a plan before you get backed into a corner. OpenJDK is 99% the same code as Oracle JDK (depending on what provider you’re getting it from) so what this really boils down to is support.

If a CVE comes out tomorrow, how soon do you want to be guaranteed a have a patch available? We just saw this play out a couple weeks ago when providers such as AdoptOpenJDK had builds of OpenJDK 8u202 within days of Oracle’s release.

That sort of turnaround is fine for most companies and if you want a warm fuzzy feeling of paying someone to promise they get builds to you quickly, there are companies such as Azul charging a lot less for their OpenJDK support than Oracle is.

Editor’s Note: Rogue Wave Software also provides OpenJDK support via our OpenLogic Open Source Solutions. Learn more in our product sheet, “Make the from Oracle JDK to OpenJDK.”

What are the pros and cons of using OpenJDK vs. Oracle JDK?
The lion’s share of Oracle JDK has been open sourced under OpenJDK so there are very few differences in functionality between OpenJDK and Oracle JDK. There are a lot of providers handing out builds of OpenJDK, some of which offer their own paid support, and they have forks of OpenJDK that most of them have pledged to keep pretty much in sync.

I think most providers will have more/less the same fixes in the same time frames, so it really will come down to support. You’re either paying someone who promises they’ll get you any patches and fixes, or you’re depending on a provider that you trust to get the builds out for free.

Depending on how critical Java security is to your company, you can decide how important paid support is, but the free options so far are looking very responsive, which bodes well. The trend I’ve seen is many small or medium shops have moved over to an OpenJDK provider and very large shops or government who have guidelines about having long term support (LTS) releases in places are paying Oracle or another provider for support. OpenJDK 8 has support pledged up until 2023 already for several OpenJDK providers.

Giorgos Gaganis: software engineer, blogger

Giorgos Gaganis (@ggaganis) is a software engineer and blogger who’s based in Greece.

What would you recommend to companies with production software running on Java SE 8, who have not yet purchased subscriptions?
For companies that are currently evaluating getting subscriptions vs. migrating to newer versions, my recommendation is to also take into account in their analysis the cost of lost opportunity. The more it is postponed, the more difficult it becomes to adopt the latest version. This is important to me because I am seeing a lot of innovation coming. For example, I have been playing with project Loom which would bring huge benefits in terms of scalability for typical server applications.

What are the pros and cons of using OpenJDK vs. Oracle JDK?
With Java 11, Oracle JDK and OpenJDK have become binary compatible or interchangeable. This means that from a technical point of view there is not really a difference. The Oracle JDK is built and distributed by a vendor, which can have legal and regulatory advantages. On the other hand, having an OSS JDK allows greater freedom on how the JDK is distributed. For me, thought the big advantage is that having an OSS Java can lead to a more active and vibrant community, leading to increased innovation. So by using OpenJDK we support this move to a more community-based Java.

Nicolai Parlog: Java developer and author

Nicolai Parlog (@nipafx) is a Java developer, blogger, author, and trainer.

What would you recommend to companies with production software running on Java SE 8, who have not yet purchased subscriptions?
Imagine you already updated your project and it runs perfectly fine on OpenJDK 11. Then ask yourself, in that situation, would you want to get commercial support for Oracle JDK? (See next question.) If you would, then I see no reason not to purchase a subscription now. You can then stay on Java 8 for a few more months or even years before updating to another major release.

If you wouldn’t purchase a subscription for Java 11, then updating to it right away is the obvious choice. If you can do that, everything’s peachy. If you can’t because the migration is too challenging (by the way, I can help), I see two options:

1. Check whether OpenJDK 8 fulfills your needs. Red Hat just took ownership of it and will provide free updates for at least a few years.
2. Pay for an Oracle subscription to stay on Oracle’s JDK 8 until you can make the update.

What are the pros and cons of using OpenJDK vs. Oracle JDK?
On Java 8, there are a few differences between Oracle’s JDK and OpenJDK. The former has, for example, a faster 2D renderer (Ductus instead of Pisces), a few advanced features like Class Data Sharing, and additional tools like Flight Recorder and Mission Control. The latter two were commercial features to begin with (i.e., only paying customers should have used them).

Projects that rely on these features and aren’t ready to update to Java 11 will most likely have to pay for Oracle’s subscription.

On Java 11, things are different. Oracle replaced technologies (e.g., the renderers with the more performant Marlin renderer) or open-sourced them (e.g. Class Data Sharing) to the point where Oracle’s JDK and OpenJDK are technically interchangeable. There are hence no technical reasons to choose one JDK over the other. Here it comes down to support and updates.

Each major release of Oracle’s JDK (e.g. Java 11) will only get free updates for six months. If you don’t want to start paying after that you either update to the next major release or hope for the community to provide free support for selected Java versions. At the moment, it looks like free support for OpenJDK 11 under the leadership of Red Hat is a realistic option. Amazon’s Corretto is also very interesting.

As a developer, I’m happy with those options, but if your company needs stronger guarantees, a contract to point to, or a hotline to call, you need commercial support. Various vendors – among them Oracle, IBM/Red Hat, and Azul – offer that. In this group, Oracle is not special and you should look for the vendor with the best offer for your needs.

Editor’s Note: Rogue Wave Software also provides OpenJDK support via our OpenLogic Open Source Solutions. Learn more in our product sheet, “Make the from Oracle JDK to OpenJDK.”

Justin Reock: Chief Architect at Rogue Wave Software

Justin Reock (@jreock) is a free software evangelist and the Chief Architect for Rogue Wave Software. He resides in Asheville, NC.

What would you recommend to companies with production software running on Java SE 8, who have not yet purchased subscriptions?
Begin planning for a move to a GPL variant of Java *today*. Not just to avoid exorbitant costs from Oracle, but to free yourself from the grip of a software company who is advertising through this change that they can assert real, financial control of your infrastructure. If Oracle is brazen enough to take this step today, what might they believe they can get away with later down the road?

A move to OpenJDK or another variant is in most cases an apples-to-apples migration. If you have modernized your SDLC and established process and infrastructure for effective CI/CD, this really shouldn’t look much different to you than a normal release. Regression testing should be performed, but the migration itself takes only a few steps.

More complex or niche builds may require some code refactor depending on your design principles, but, for the most part the runtime environment is similar enough that you won’t notice a difference. A healthy migration strategy should always start with a thorough inventory and risk analysis, and your upgrade roadmap will become more clear after performing that diligence.

What are the pros and cons of using OpenJDK vs. Oracle JDK?
This really depends on the way that you are using Java. Oracle JDK does ship with some proprietary crypto libraries that you may be taking advantage of — just understand that strong cryptography can also be achieved using non-Oracle-proprietary software. The Oracle JDK ships with some tooling, such as Java Flight Recorder, which many businesses make use of. Of course, there are free alternatives here as well.

Older frameworks such as JNLP have been re-implemented in projects such as IcedTea-Web, but, these projects are more limited in functionality than what ships with the Oracle JDK — although they are also freely modifiable.

On the other hand, OpenJDK is far more accessible than Oracle JDK and therefore as previously mentioned fits naturally into modern environments. It is literally a one-line terminal command to install and configure OpenJDK in a mainstream Linux environment vs. the multiple steps required to install Oracle Java.

An emerging design pattern includes using a framework like SpringBoot to launch serverless Java applications in potentially ephemeral environments. This is going to cause all sorts of licensing headaches when dealing with Oracle’s subscription model — OpenJDK is entirely immune to that problem because there aren’t licensing barriers. You can spin up as much as you want for however long you want, and never tell a soul!

Finally, OpenJDK is modifiable and you can contribute to and improve it. If Oracle continues to isolate itself from open software communities, OpenJDK could fork into a project similar to Kotlin, and we might even see the bulk of the innovative work move into that project and away from Oracle altogether.

Related Posts

Leave a Reply

Your email address will not be published. Required fields are marked *

Scroll to top