Hacker News new | ask | show | jobs
by ajoberstar 1549 days ago
Oracle's builds of Java are open source as well. The OpenJDK codebase is shared across all of the vendors that provide builds.
3 comments

"Open Source" but not free to use as you wish. The Oracle builds require a commercial license.
In this case it means GPL+Classpath Exception. The link goes to the Oracle provided OpenJDK builds.

Oracle also has their own build of the JDK which is not GPL. That is free to use in commercial software as well, under their "No-Fee Terms and Conditions"

I think you're correct right now, but Oracle has a tendency to change their minds frequently. Tomorrow you might be migrating or paying.
Maybe I'm wrong, but I don't see that called out anywhere. I don't believe that's true anymore, but correct me if I'm wrong.

For reference I double checked here: https://www.oracle.com/java/technologies/downloads/

There used to be really prominent banners telling you about it. I don't see them now, but I'm also not sure they switched back. Here's an article I found explaining the switch to requiring paid usage.

https://blog.netwrix.com/2021/12/02/oracle-java-license-chan...

I think that’s the switch (somewhat) _away_ from paid usage.

https://itassetalliance.com/blog-posts/what-do-oracles-2021-... says there was a change in 2019 that made critical security updates a paid feature.

The 2021 license change reverted this somewhat, by giving you one year of security fixes for free in the long term support versions (I’m sure I’m missing some detail, if not completely misinterpreting things, here)

They might be built from the same source but they have draconian end user licenses and license changes that can unpredictably expose you to Oracle commercial licensing costs and lawyers chasing after you. See eg https://developer.ibm.com/blogs/java-licensing-is-changing-a... & https://www.theregister.com/2022/03/22/oracle_starts_to_incl...
Thanks! So why would I pick Oracle's implementation?
Mainly if you want long term support from Oracle. Many enterprise systems are very slow to update. So they can't manage to upgrade before the LTS version goes out of support. So instead of paying to developers to continuously update the code base they pay Oracle to keep supporting the "out-of-free-support" versions of the JVM.
If you need to run Oracle apps like EBS. They only work on their release, not openjdk.

Side note: Avoid EBS at all costs if you can, unless you like spending money on consultants and like crappy obfuscated processes.

That wasn't the only reason why I left one job but their Oracle buy-in was a big factor. Things like paying 7 figures a year for support, and then having the Oracle support manager ask if they could redistribute the hot-patch I made to other customers.
Big enterprise vendors are always like that.

My first boss wrote the TCP stack for a long defunct mainframe, which was distributed via a “shared source” program that his employer paid for and eventually was licensed to his employer at significant expense.

Indeed. The primary reason I was so annoyed by that is that this was when (IIRC) IE8 was released, and day one we noticed that their sloppy JavaScript caused an exception which broke the entire UI. That happens but when I contacted enterprise support, I got a surprisingly snotty “we don't beta test Microsoft's software for them” message closing the ticket. They re-opened it when I pointed out that it was the release version and rolling out enterprise-wide to our Windows desktops for security reasons but I was not expecting a fix for a while based on the blow-off (this proved accurate), much less the call from a support manager a couple days later who'd seen in the case notes that I'd mentioned having patched it on our cluster (this was literally one line of code — trivial for any decent web developer).
Early form of PaaS, Plagarism as a Service?
I completely understand, in the same situation myself atm after several years of lean and agile work, somehow ended up having to manage this EBS crap on a new contract (it was only part of the spec). It's a nightmare.
> Avoid EBS at all costs if you can, unless you like spending money on consultants and like crappy obfuscated processes.

* Oracle products in general (in my experience)

Depends. Many companies want to rely on long-term supported versions with security/stability updates directly from the folks that wrote a majority of the code in the JDK itself. Also as noted above, Oracle offers the Oracle JDK under a free-in-production license with overlap with the next LTS giving users time to upgrade.
I personally haven't had a reason to use Oracle's because I like having the latest version and any actively maintained LTS versions available for development and would prefer to use one vendor for all of them. Eclipse Temurin and Azul Zulu are the two I've personally used, but I'm not aware of any technical differences. They should all work the same since they're built from the same code.

Most of the big vendors are running the TCK tests to certify compatibility as well.

Question is why would you pick any vendors implementation?

OpenJDK is reference one build from the source which is then taken by vendors and tweaked and built.

Oracle’s OpenJDK is the only one that is built without supporting Shenandoah GC.
I do not know but apart from just vendor lock in, oracle might provide guarantees (maintenance?) that the other providers cannot.
There is no vendor lock-in, other than perhaps the logo, OpenJDK is the same as OracleJDK, since Oracle develops the former 90+%.
The Oracle JDK ships with capabilities not found in OpenJDK. Oracle ships webkit for instance--to parse/render HTML. OpenJDK does not. There also used to be a JavaScript engine, which I believe was deprecated unfortunately, and does not ship with OpenJDK.
Ignorance of the Supreme Court decision that Java API copyrights are not enforceable.

https://en.wikipedia.org/wiki/Google_LLC_v._Oracle_America,_....

That's a separate issue. There are lots of licensed OpenJDK builds, and even for Android the case is no longer relevant as Google now licenses the API from Oracle.