The OpenJDK is the source code. Like a master branch where commits are made.
That branch is always moving forward. New features added, new bug or security patched, etc.
Now there comes points where you need to package the OpenJDK source code into a binary.
This packaging process is done by multiple different "vendors".
Now Oracle packages for free a release every 6 months. That package is the Oracle OpenJDK. If another vendor did a package it would be Other Vendor OpenJDK.
Now the idea of back-porting is basically a cherry pick package. Instead of packaging the latest commit. You cherry pick only bug and security commits and apply them to say the release 8 commit. That way, you don't introduce new features, only bug fixes. Then you make sure you didn't break anything compatibility wise.
The idea is that those should be easier to migrate to, since by leaving out new features, you limit potential backward breaking changes.
This cherry picking merge, which can be painful to do, because sometimes you may need to address weird merge conflicts, or even make some changes to the fix since you're trying to apply it to a earlier commit then it was built on. This is what Oracle now charges money for.
Other vendors also offer back-ported releases for money. Azul and RedHat for example.
AdoptOpenJdk is a new community initiative trying to do backported releases for free with volunteer work.
And Amazon Coretto is doing it for free, but hoping that by moving to their JDK package, you'd eventually end up using AWS.
The amazon build of OpenJDK 11, Corretto [1], seems to be back porting some version 12 fixes as well. This could be the start of fragmenting the ecosystem all over again.
That seems unwarranted... they’re security / os syscall patches, and they don’t blur the lines between the JDK versions.
Even the article seems a little more FUDdy. As much as I dislike / don’t care for oracle, their JDK versioning approach reasonable. Commercial licensing for the special JDK, expensive support for the old versions, and open support for current openJDK version.
I don’t think even Go or Rails support major version minus 1 or 2.
> This could be the start of fragmenting the ecosystem all over again.
Absolutely not. The OpenJDK is the official reference implementation, and Oracle has open sourced everything important.
The only question is how quickly the various OpenJDK packagers will provide security updates. The Red Hat option looks very practical if you're a Red Hat user.
I just got some of our apps moved to corretto yesterday. Smooth so far on corretto 11, hopefully 8 goes the same way. I think Oracle really shot themselves in the foot with this model, they are going to lose control.
I am deeply confused now by the name "openjdk." I thought openjdk was the open source version, but it seems like it's just an adjective according to this article.
IceTea is one OpenJDK JDK? Azul is another? Does IBM still maintain a JVM and will that be another? What the hell is this thing:
OpenJDK is the name of an open source implementation of Java. It started as an open sourcing of part of the codebase to Sun's JDK, and gradually more parts moved from the closed source portions to the open source ones (i.e. OpenJDK). Sometimes, some closed source, commercial features were added, but as of JDK 11, Oracle completed open sourcing the entire JDK -- that's OpenJDK.
IBM still have their own VM, J9, and while they produces JDK builds that they misleadingly call OpenJDK, they are not. They replace the OpenJDK JVM (HotSpot) with theirs, but keep the standard libraries. So it's not OpenJDK, but it's a JDK that uses most of the OpenJDK standard libraries.
Azul have two JDKs. They have the proprietary Zing, which uses their own VM (which, in turn, is a modification of HotSpot, which they licensed, with their own optimizing compiler and GC) and the OpenJDK libraries, and the open source Zulu, which is an OpenJDK build.
I think IcedTea is also an OpenJDK build.
> What the hell is this thing: https://hub.docker.com/_/openjdk Is that Oracle's OpenJDK release, which is different from Oracle Java? Or is this the IceTea release?
OpenJDK can be an upstream. You can build it as is or create your own derivative version. If someone creates a modified version they put their own name in front to clarify.
OpenJDK seems to effectively be a standard, or set of interfaces/classes that must be provided.
Oracle's OpenJDK build is very similar to Oracle Java but comes without the support contract or the license fee. Amazon are apparently working on one tailored more to AWS, etc.
(edit: didn't realise it was the literal upstream source - probably best to ignore my comment!)
I'm not in the Java world, but is it possible to make Oracle irrelevant? Are there not language specs, IDEs, and JVMs available from non-Oracle sources? And if not, why not?
You can just use the latest OpenJDK. That's the open source version. But the enterprises want to use the Oracle version. Which they can, but they would have to pay for it. So, I assume, most of the hullabaloo is about Oracle charging for their JVM.
Essentially, for whatever reason, there are people who don't like open source. So they don't want to use the open source JVM.
You are. The community asked for those changes, but some don't understand them and are confused because they apply old terms to new concepts.
First, Oracle has completely open sourced the JDK, for the first time ever. Instead of a JDK with a complex license, mixing both free and commercial features and containing field-of-use restrictions, Oracle now provides the JDK under a 100% free and open source license, or under a commercial license for those who wish to purchase a support subscription (and fund the development of OpenJDK).
Second, there are no longer major releases, and the new feature releases are similar to the old six-monthly "limited update". JDK 10, 11 and 12 are roughly the same size as 7u2 and 7u4, which also didn't get free security patches after six months. What's changed is the name given to those releases, and to make the updates cheaper and easier, they have been made more gradual, by allowing spec changes in feature releases. Not only do you get security fixes for free forever, but there are no more major upgrades.
So the main point of confusion is that some confuse the new feature releases with the old major releases, when, in fact, they are much closer to the old "limited update" releases. People see a new version number, see that that number is not freely supported beyond six months and panic, when, in fact, the old releases that were similar to the new feature releases were also not supported beyond six months. They themselves were considered "updates" to some major release, but major releases no longer exist, and the "updates" now get a new version number. See here [1] for a more complete explanation.
In addition, there's another new model, that allows organizations that for some reason need a much less gradual upgrade process than the new one -- and even less gradual than the old one -- and that is something that Oracle charges for. But because the JDK is now completely open source, other OpenJDK members have committed to backporting the fixes to provided a similar step-wise upgrade path for free.
(I work on OpenJDK at Oracle, but speak only for myself)
The goal might be forced evolution. A few years ago no startups wanted to touch Java, and the ecosystem was lagging. The rapid release cycle is bringing much needed improvements
As I understand it, Jython was not affected by Python Global Interpreter Lock (GIL), is the same true for GraalVM Python? If it is than it would be a great way to to speed up python applications.
Saw a presentation from the Azul guys about Zing last year. They have a very impressive product, and the number of ex-Sun engineers is reassuring. They also seem to have a good relationship with Oracle.
Among the repackaged OpenJDK offerings, Zulu is at the top of my list.
[+] [-] gcoleman|7 years ago|reply
https://developers.redhat.com/blog/2018/09/24/the-future-of-...
[+] [-] didibus|7 years ago|reply
That branch is always moving forward. New features added, new bug or security patched, etc.
Now there comes points where you need to package the OpenJDK source code into a binary.
This packaging process is done by multiple different "vendors".
Now Oracle packages for free a release every 6 months. That package is the Oracle OpenJDK. If another vendor did a package it would be Other Vendor OpenJDK.
Now the idea of back-porting is basically a cherry pick package. Instead of packaging the latest commit. You cherry pick only bug and security commits and apply them to say the release 8 commit. That way, you don't introduce new features, only bug fixes. Then you make sure you didn't break anything compatibility wise.
The idea is that those should be easier to migrate to, since by leaving out new features, you limit potential backward breaking changes.
This cherry picking merge, which can be painful to do, because sometimes you may need to address weird merge conflicts, or even make some changes to the fix since you're trying to apply it to a earlier commit then it was built on. This is what Oracle now charges money for.
Other vendors also offer back-ported releases for money. Azul and RedHat for example.
AdoptOpenJdk is a new community initiative trying to do backported releases for free with volunteer work.
And Amazon Coretto is doing it for free, but hoping that by moving to their JDK package, you'd eventually end up using AWS.
[+] [-] jryan49|7 years ago|reply
1: https://docs.aws.amazon.com/corretto/latest/corretto-11-ug/p...
[+] [-] sudhirj|7 years ago|reply
Even the article seems a little more FUDdy. As much as I dislike / don’t care for oracle, their JDK versioning approach reasonable. Commercial licensing for the special JDK, expensive support for the old versions, and open support for current openJDK version.
I don’t think even Go or Rails support major version minus 1 or 2.
[+] [-] Recurecur|7 years ago|reply
Absolutely not. The OpenJDK is the official reference implementation, and Oracle has open sourced everything important.
The only question is how quickly the various OpenJDK packagers will provide security updates. The Red Hat option looks very practical if you're a Red Hat user.
[+] [-] ravedave5|7 years ago|reply
[+] [-] djsumdog|7 years ago|reply
IceTea is one OpenJDK JDK? Azul is another? Does IBM still maintain a JVM and will that be another? What the hell is this thing:
https://hub.docker.com/_/openjdk
Is that Oracle's OpenJDK release, which is different from Oracle Java? Or is this the IceTea release?
[+] [-] pron|7 years ago|reply
IBM still have their own VM, J9, and while they produces JDK builds that they misleadingly call OpenJDK, they are not. They replace the OpenJDK JVM (HotSpot) with theirs, but keep the standard libraries. So it's not OpenJDK, but it's a JDK that uses most of the OpenJDK standard libraries.
Azul have two JDKs. They have the proprietary Zing, which uses their own VM (which, in turn, is a modification of HotSpot, which they licensed, with their own optimizing compiler and GC) and the OpenJDK libraries, and the open source Zulu, which is an OpenJDK build.
I think IcedTea is also an OpenJDK build.
> What the hell is this thing: https://hub.docker.com/_/openjdk Is that Oracle's OpenJDK release, which is different from Oracle Java? Or is this the IceTea release?
Good question.
[+] [-] chrisseaton|7 years ago|reply
[+] [-] Nursie|7 years ago|reply
Oracle's OpenJDK build is very similar to Oracle Java but comes without the support contract or the license fee. Amazon are apparently working on one tailored more to AWS, etc.
(edit: didn't realise it was the literal upstream source - probably best to ignore my comment!)
[+] [-] dreamcompiler|7 years ago|reply
[+] [-] bilbo0s|7 years ago|reply
You can just use the latest OpenJDK. That's the open source version. But the enterprises want to use the Oracle version. Which they can, but they would have to pay for it. So, I assume, most of the hullabaloo is about Oracle charging for their JVM.
Essentially, for whatever reason, there are people who don't like open source. So they don't want to use the open source JVM.
[+] [-] tekkk|7 years ago|reply
[+] [-] pron|7 years ago|reply
First, Oracle has completely open sourced the JDK, for the first time ever. Instead of a JDK with a complex license, mixing both free and commercial features and containing field-of-use restrictions, Oracle now provides the JDK under a 100% free and open source license, or under a commercial license for those who wish to purchase a support subscription (and fund the development of OpenJDK).
Second, there are no longer major releases, and the new feature releases are similar to the old six-monthly "limited update". JDK 10, 11 and 12 are roughly the same size as 7u2 and 7u4, which also didn't get free security patches after six months. What's changed is the name given to those releases, and to make the updates cheaper and easier, they have been made more gradual, by allowing spec changes in feature releases. Not only do you get security fixes for free forever, but there are no more major upgrades.
So the main point of confusion is that some confuse the new feature releases with the old major releases, when, in fact, they are much closer to the old "limited update" releases. People see a new version number, see that that number is not freely supported beyond six months and panic, when, in fact, the old releases that were similar to the new feature releases were also not supported beyond six months. They themselves were considered "updates" to some major release, but major releases no longer exist, and the "updates" now get a new version number. See here [1] for a more complete explanation.
In addition, there's another new model, that allows organizations that for some reason need a much less gradual upgrade process than the new one -- and even less gradual than the old one -- and that is something that Oracle charges for. But because the JDK is now completely open source, other OpenJDK members have committed to backporting the fixes to provided a similar step-wise upgrade path for free.
(I work on OpenJDK at Oracle, but speak only for myself)
[1]: https://www.reddit.com/r/java/comments/bav1sy/winter_is_comi...
[+] [-] lumost|7 years ago|reply
[+] [-] aphexairlines|7 years ago|reply
[+] [-] L0stLink|7 years ago|reply
[+] [-] debug-desperado|7 years ago|reply
Among the repackaged OpenJDK offerings, Zulu is at the top of my list.
[+] [-] moocowtruck|7 years ago|reply