Confusing mess
Java is a nice enough language, but the rest of it is a confusing mess. Lack of compatibility between versions, confusing version numbers and alphabet soup mess of products.
Oracle has begun to include Java in its software licensing audits as part of a classic move set to catch customers on the fringes of non-compliance and beyond. Big Red first introduced two new licensing models for its commercial Java platform, Standard Edition (Java SE), in April 2019 when it began charging license fees for …
Absolutely!
20 years ago I was writing Java applets for websites (back when that was an actual thing). Even then I found Java's multiple file I/O handling ridiculously complex compared to plain C. It always seemed that whatever it was that I wanted to do with it was never handled by a single class in a simple manner. I pretty much abandoned the whole mess around 2001. Given the greedy way Oracle acts nowadays I'm glad I have very little to do with anything they make*.
* The one exception is VirtualBox, which I'd been using before even Sun took it over, but I am prepared to lose that should the need arise.
I used VirtualBox until it started breaking sound and microphone support *every* *single* release followed by a point release that fixed it then another point release that broke it again, so I switched to QEMU-KVM and haven't looked back since.
Open source isn't any better with names. OpenJDK became Adoptium then Eclipse Temurin. (whot the f**k is that?)
You're mistaken.
OpenJDK is the open-source project used to develop the Java SE platform.
It never became Adoptium, that was AdoptOpenJDK, which was a distribution of OpenJDK (think Linux and Ubuntu). AdoptOpenJDK was moved to the Eclipse Foundation, where it became Adoptium (it had to because of trademark infringement). That is now the overall project, of which Temurin is the name of the distribution.
Simple!
And that is "entirely as it should be" according to Oracle licensing conditions.
You are not supposed to understand the scheme. You only need to pay the bill as presented by the Oracle auditors including the usual fine because you surely did not pay enough last time.
Some advice: do not use Oracle products if you can prevent it in any way. Oracle has even more lawyers than IBM and you will always lose the argument, even when you are within your rights, by shear cost of defending any claim.
We actively got rid of Oracle everything, including Java, MySQL etc, and a good part of the reason was their extortion. Business software is only of value to a business if it enables more revenue than it costs. Organisations are not operated to feed Larry. We are not using VirtualBox but do miss it and I would love to find an equivalent replacement.
"Lack of compatibility between versions"
That's not true. The only changes to the public API that have been made which aren't backwards compatible are:
- Switching the event model used for GUI programming (back in 1997).
- Removal of the incomplete CORBA classes and interfaces.
The only other changes have been to classes in the sun.com packages, which were not part of the public API. Java provides abstractions that support cross platform coding, but lazy coders don't learn them - so it's hardly Java at fault when coders do crap like assuming a directory called "C:\temp" exists then wondering why their code fails on non-Windows systems.
Before you say I've gone too far, this is a company that enables paid for features out of the box and then expects you to read the manuals to find them and disable them before you get caught. They get one free year of paid up feature usage and then tell you what you accidentally left switched on out of the box.
The manuals, ha!
I remember the MySQL documentation was great before Oracle took over. Search worked reliably and you could relatively quickly find what you wanted.
When Oracle took over the searches were random, usually found the wrong version and the wrong language. Accidental? Not by a long way.
F*cking shysters.
It's a real shame Oracle are doing this, but I do agree with the approach of some companies mentioned in the article. Go get OpenJDK (essentially the same code, just compiled by someone else), or OpenJ9 (open source clean room implementation from IBM) both of which are free of restrictive licencing. Both are TCK certified, which is important to evidence compatibility with Oracle Java (https://en.wikipedia.org/wiki/Technology_Compatibility_Kit#TCK_for_the_Java_platform)
OpenJDK: https://adoptium.net/
OpenJ9: https://www.eclipse.org/openj9/
Or one of the many other builds: https://en.wikipedia.org/wiki/OpenJDK#OpenJDK_builds
You can also more easily download just the runtime, and not the whole development kit from these places as well if you don't need the whole shebang.
Did you read the Oracle license closely? If you use a competitor's Java, you still owe them for the right to use their API so you need a license per seat. If you ever had an Oracle license, you can't move away from them without better lawyers than they have. I give it about a year before they are going to want a seat license for ever android phone used in a company as well.
Java -> OpenJDK
MySQL -> MariaDB
OpenOffce -> LibreOffice
Granted, the last one is still theoretically free-as-in-beer, but only because the code base sucks so much hardly anyone uses it anymore.
Let's have a poll: What will be the next software technology Mr. Ellison purchases, then ruins to the point of losing his customer base?
A shop I do work for uses a Java app on WinDoze clients for thermal printing via a shipping provider's website. Warned the provider a while back now to stop telling people to just "download the latest java, it's free", and when the shop migrated to Win 10 switched to OpenJDK. Took the time to point to their updated license verbiage. It was duly ignored. They actually replied in email claiming Java SE post 8u202 did not need a paid license.
Wonder what Snoracle's audit of this provider - and their customers - would find?