Thursday, September 27, 2018

Java 11 trap

As you know we use Java (R and python).  Version 11 is a major release because it has long-term support (LTS). But it comes with some traps. Here below, please find  "verbatim" a post from Stephen Colebourne's blog which inform about some problems that Oracles's new licensing strategy can cause. (From the same blog, also interesting the suggestions on how to move from Java 8 to Java 11).

" ... It is a But Oracle have also set it up to be a trap (either deliberately or accidentally).

The trap

For 23 years, developers have downloaded the JDK from Oracle and used it for $free. Type "JDK" into your favourite search engine, and the top link will be to an Oracle Java SE download page (I'm deliberately not providing a link). But that search and that link is now a trap.
Oracle JDK, the one all web searches take you to, is now commercial not $free.
The key part of the terms is as follows:

You may not: use the Programs for any data processing or any commercial, production, or internal business purposes other than developing, testing, prototyping, and demonstrating your Application;

The trap is as follows:
  • Download Oracle JDK (because that is what you've always done, and it is what the web-search tells you). 
  • Use it in production (because you didn't realise the license changed)
  • Get a nasty phone call from Oracle's license enforcement teams demanding lots of money
In other words, Oracle can rely on inertia from Java developers to cause them to download the wrong (commercial) release of Java. Unless you read the text/warnings/legalese very carefully you might not even realise Oracle JDK is now commercial, and that you are therefore liable to pay Oracle for Java.
Is this trap malicious behaviour on the part of Oracle? Readers will have their own opinions. I do suggest bearing in mind that Oracle invests huge amounts in developing Java, so it is reasonable to have a commercial plan available for those that want it. And they do provide a $free alternative...
The solution

The solution is simple!

Use an OpenJDK build.
As well as their commercial JDK, Oracle produce an OpenJDK build. It is free, zero-cot and GPL licensed (with Classpath exception, so safe for commercial use).

Download $free Java here.

Right now, the OpenJDK build from Oracle is the only one available. But more will be available soon such as from AdoptOpenJDK (probably later this week). And the OpenJDK build from groups other than Oracle will the the ones to use for Java 11 longer-term support. See Couleborne's post on zero-cost Java and the wide variety of OpenJDK builds for more details.


Summary

Do NOT download or use the Oracle JDK unless you intend to pay for it.
For Java 11, download and use an OpenJDK build, currently from here. (No comments on this post. There are plenty of other places to express opinions.)"

No comments:

Post a Comment