don-vip speaking, originally from JOSM Twitter account:
I read many incorrect statements about the new Java license from Oracle on the
German OSM forum mentioned in
weeklyOSM 458. Let’s see in detail what all is this about.
First of all, a little bit of history/terminology. Java was created in 1995
by Sun. We call “Java” both the programming language and the platform that
runs JOSM (JRE = Java Runtime Environment). Several platforms, from
multiple vendors, exist.
The JDK (Java Development Kit) contains the JRE but also developer tools
(mainly, the java compiler). In 2006, around the release of Java 6, Sun
announced its intention to open-source Java in a new project: OpenJDK.
OpenJDK is badly named, like OpenStreetMap. We don’t only map streets…
Well OpenJDK project does not only concern the JDK but the whole Java
platform (language, spec, tools, APIs, etc.). @speakjava explains it nicely.
Sun open sourced many things from Java into the OpenJDK project, but not
all things. In particular, Windows/Mac installers and deployment
technologies like WebStart were not open sourced (we don’t know why).
It means OpenJDK is only a “source code” project. Building it is very
complex, and nobody took the pain to distribute free binaries for Windows &
Mac. Only Red Hat did it for Linux in the IcedTea project. If you have 100%
free Java on Linux, it’s thank to them.
In 2009 Oracle bought Sun. They didn’t change things radically until
recently. So even today most of Windows and Mac users are still using
proprietary JRE binaries from Oracle, that are built upon open source
project OpenJDK.
Oracle made a very good job in releasing Java 8 in 2014, then Java 9 in
2017. We even collaborated with them in mutual good faith. Then, all hell
broke loose.
They changed the Java release cycle to to a fixed 6 months schedule (2
versions per year). We are now at Java 12 (which is by the way the most
unimpressive version of Java: nothing new in it).
They changed the licence of the Oracle JDK: basically if you are an
enterprise and want to use Oracle binaries, you have to pay.
They introduced the notion of Long Term Support versions (LTS). Java 8 is
an LTS, Java 11 too. For more details about “release train” and licencing,
see the excellent blog post by @hendrikEbbers.
And concerning the Java 8 binaries that almost everyone uses on Windows and
Mac, they changed the licence to a free for personal desktop use, through
at least the end of 2020.
These changes came from nowhere and the Java community was not prepared for
it. So it required some time until we can get to a free replacement to the
Oracle binaries on Windows and Mac, and that’s why we didn’t advise anyone
to switch to something else yet.
But we’re almost there thanks to @adoptopenjdk! This community-based
project offers free downloads of OpenJDK on all platforms!
We’re just waiting for the availability of a few enhancements of the
AdoptOpenJDK installer before advising everyone to switch.
1) The inclusion of JavaFX (another technology abandoned by Oracle and now
maintained by @GluonHQ), which is used by JOSM to play MP3 files, and by
some plugins like Microsoft StreetSide.
2) The inclusion of IcedTea-Web (the free implementation of Java WebStart
which has also been abandoned by Oracle).
We can thank
Red Hat (again) for this project, plus also @karakun and AdoptOpenJDK for
their work.
3) An auto-update feature to make sure everyone can automatically get
security updates.
Once all these issues are resolved (hopefully long before end of 2020)
we’ll ask everyone to switch to AdoptOpenJDK. Until now, even if we despise
Oracle for all of this, we still advise to keep the current Oracle JRE, at
least for the automatic security updates.
This is also why we still target Java 8 as a minimum. Once everyone is able
to run JOSM using AdopOpenJDK binaries, we’ll likely switch to Java 11!
Which is by the way now maintained by Red Hat and not by Oracle :)