Maybe Oracle downloads ought to be blocklisted the same way known malware is.
(Speaking as an ex-Oracle employee) There is no good reason to ever consider buying into Oracle, except when you're already their customer; in which case... Good luck.
If I was a CTO at a mid to large company, that has no business relationship to Oracle, I'd absolutely order the Oracle domains to be blackholed. The liability is simply too high.
One employee downloads something and suddenly you need to license every seat in the Org. That's a crazy risk to take.
I agree there's usually no reason not to download a 3rd party OpenJDK distribution, as it's often easier.
But there are plenty of valid use cases for Oracle GraalVM, and I haven't diff'ed the GFTC and NFTC licenses, but I believe their terms are essentially similar.
The only thing that comes close is .NET, and that's MICROS~1. On the timescales in my business that's not an option, they can't be trusted to not act like Oracle does and they are deeply ingrained into important libraries in that "ecosystem".
Rumour has it that there is some PDF/A capable library for .NET, but I would have to put in quite some time to figure out if it is low level enough for the control I need and whether there are additional libraries suited for layout and typography. Since I might have to ditch it within five years, that's not an option.
Some people claim .NET developer ergonomics on Linux are fine now, but those I know personally that tells me this are using VSCode, which I consider a rather shoddy piece of software. Am I going to take the time and see if it's the case? Fiddle around with IntelliJ plugins and try to setup a LSP for vim and whatnot? Nope, I won't, because there is no revenue in that, and I might suddenly have to do the great rewrite several times at once further down the line.
Maven is a turd, but a very solid one when you've figured out the XML incantation you need. I'm not sure what the alternatives are in .NET-land, or whether I can feel that I trust that they will work fine in ten years, like fifteen year old Maven projects tend to do. GraalVM allows me to output neat executables too.
Java has Wildfly. What's the equivalent in .NET? Running a MICROS~1 Windows Server with IIS? That's not an option.
For developing .Net (Core) on Linux? Rider is your best option from JetBrains. Most development still happens on Windows though because Visual Studio is best option if running Linux Desktop is most important thing for you.
However running it? .Net runs on both Windows and Linux with performance generally being much better on Linux. .Net Team IME also recommends Linux as well unless you are doing some Windows only things.
Web Server? .Net comes with built in cross platform Web Server called Kestrel which is pretty darn performant so most people just run Kestrel and proxy it with something like Nginx/Caddy though it's not required.
After dealing with both companies, if you put a gun to my head and said "Oracle or Microsoft?" Microsoft hands down. Both are licensing nightmares but Microsoft has never come close to hostage taking behavior that Oracle has. Don't even get me started on Oracle Database Core license requirements in virtual environments. MSSQL never went that bad.
Yeah, no one can afford to have me use Visual Studio.
Performance isn't a pain point for me. Currently I'm developing a crude ETL tool that does a lot of string stuff and a typical run produces hundreds of thousands of PDF files, unoptimised it finishes in less than an hour on my late middle age laptop. I might not even spend time chasing cycles because I can keep a rather fast development cadence anyway. For excellent performance in network services I reach for the BEAM.
Wildfly is an application server. Kestrel would, as far as I can tell, be comparable to Tomcat or Jetty.
Having spent some time migrating away from Oracle DB but never having managed to convince an organisation to move off MICROS~1 I'm pretty sure the latter are better at it. If I get to decide neither liability becomes a dependency.
> The only thing that comes close is .NET, and that's MICROS~1. On the timescales in my business that's not an option, they can't be trusted to not act like Oracle does and they are deeply ingrained into important libraries in that "ecosystem".
Many libraries and/or frameworks come from companies you could argue cannot be trusted (Meta, Google...) but do you shy away from anything they produce and stick to something developed independently somehow? In the case of .Net: it has been around for a long time, and it has changed drastically. It was closed source, Windows-only and it wasn't sleek. Then they rebooted the whole thing into .Net Core. Open source, platform independent, much thinner, development in the open.
> Some people claim .NET developer ergonomics on Linux are fine now, but those I know personally that tells me this are using VSCode, which I consider a rather shoddy piece of software.
My personal experiences with VSCode and the recent C# extensions have been fine for small projects, but if that's not your thing, there's also JetBrains' Rider, which I have very good experiences with as well.
> Maven is a turd, but a very solid one when you've figured out the XML incantation you need. I'm not sure what the alternatives are in .NET-land, or whether I can feel that I trust that they will work fine in ten years, like fifteen year old Maven projects tend to do.
The package manager aspect is Nuget in the .Net ecosystem. It's easier than Maven in the sense that you can control it from your IDE or from the command line, instead of having to edit your pom.xml or the .Net equivalent (which has one extra layer when compared to Maven; solutions containing projects).
> Java has Wildfly. What's the equivalent in .NET? Running a MICROS~1 Windows Server with IIS? That's not an option.
The equivalent in .Net is Kestrel, which is part of ASP.Net, and can run on Linux. It's a little less work to setup than Wildfly (which is not a lot of work either) because it's bundled.
> And so on and so on.
It's surely not for everyone but I think Microsoft has taken a great turn with it after the "reset". Is it going to be like this forever? I don't know, but looking at the past, at the direction Microsoft has taken it, I think it's gotten much better.
Of course, I wouldn't advocate rewriting your Java-based softwarescape into .Net (or the other way around) lightly, way too expensive and Java will probably get the job done.
Yeah, I do, unless it's small enough for me to maintain or already mainly maintained by people unaffiliated with those companies. The country they have their headquarters in is quite belligerent and they are habitually criminal, e.g. with regards to data protection rights.
If you want command line incantations you can easily invent your own program to do the edits, simple with sed or awk, more advanced with JAXB. The reason no one does is that XML editors are quite capable and in practice pom-editing isn't particularly annoying.
I agree that MICROS~1 is trying to woo developers, but in every other area I'm looking they're absolute dogshit. They seem to want to turn consumer Windows into a rent a thin client sort of deal, their strategy in acquisition seems entirely driven by the threat of anti-trust legislation when it's not clearly insane, stuff like that. If they reach a degree of developer lock-in they find sufficient I'm sure they're going to do Oracle style squeezes.
This can’t be a sustainable business model - can it? I work at a very large company and all computers are regularly scanned for Oracle components and those are cleared/flagged.
At last two companies, both had this Java Third Party Application that was pretty mission critical. Both of those companies put out support statements that they would only support Oracle JRE and no, they wouldn't be paying for licensing. So my companies ended up shelling out for JRE costs.
One of third party later changed their mind and said they would support Adoptium JRE but you had to be on latest version of software. Generally, upgrades required their consulting people to come in so cha-ching. Last I heard, we were on their calendar to come do the upgrade since upgrade cost was about a year of Oracle licensing fees.
Let me get this straight:
1) Oracle allowed anyone to download Java, seemingly for free
2) Somewhere in the fine print it said you might have to pay Oracle for using Java, but this was not transparent when you visit the download page.
3) Oracle is hunting down everyone who downloaded Oracle.
Is this right?
Yes, this is exactly correct. I was very surprised when I learned that this was possible and legal. It happened to a company I worked for, and cost the company quite a bit of money. Since then I have learned much about how unintuitive and convoluted software licensing can be.
Licensing BS is why Open Source really became a thing, starting back in the bad old 90's when Steve Ballmer could kill with a stare. "Surprise! We're going to start billing you based on how many keyboard keys your business uses." The mortal terror that someone upstream of your business might Alter The Deal (Pray We Don't Alter It Further) is why a lot of people are totally uninterested in any software that isn't MIT/BSD/Apache.
And that's also why if something that was MIT/BSD/Apache changes licenses, some developers will start gnawing off their leg before the trap even springs shut.
(Disclaimer: I work for Microsoft, though not on .NET)
In defense of Java, the canonical JRE/JDK implementation has been OpenJDK for quite some time now, and there are many non-Oracle spins of it.
As for .NET, while it is currently good and I personally enjoy it, I'm a little wary on it too. Unlike with Java, where decision making is distributed in some fashion (as far as I can tell), Microsoft has retained nearly total control of .NET, and key parts of the ecosystem like the debugger are still under non-OSS licensing terms.
Since when? OpenJDK is 100% open-source, with the same license as the Linux kernel. Besides, the standard itself is also open-source and it has multiple, independent implementations.
I think this is the fundamental problem people have with ubiquitous and long license agreements:
Users are in the habit, perhaps pressured, to accept the terms with without due consideration by a qualified lawyer. C.f. the South Park "human centipede" episode.
I suspect that the best solution, society-wise, is to enact stronger consumer protection laws that override these EULAs.
It's been a tongue-in-cheek thing in Java circles for a while. Oracle says "Java runs on billions of devices". Oracle explicitly leaves silent "...and we'll sue/bill them all for it."
Behold, the lawn mower cometh... I believe is the reality.
If this might apply to you/your company and you don't have a lot of time to get into deep research on the topic just go see the Eclipse Temurin[0] project and grab a build or image from them.
If you depend on Java, I'd recommend to spend some time and look into the best distribution for your needs.
There's no need to go into deep research, but take maybe 5 minutes to understand the landscape of OpenJDK distributions. For instance if you run RedHat based linux like many companies, Adoptium brings nothing, there's no reason not to use RedHat's OpenJDK packages.
Fair. My comment was more in the direction of saving others time, as I've personally looked into this previously (granted, some years ago) and found the Temurin packages to be of very high quality while avoiding the legal risk with the Oracle packages.
Just the usual info, because there are so many disinfo spread: Java’s reference implementation is OpenJDK, developed 95% by Oracle. This has the same license as the linux kernel, it’s completely open-source. Similarly to how different distros pre-build the kernel for you, there are OpenJDK “distros”, like OracleJDK, Adoptium, etc. These are, for all practical purposes equivalent code-wise with the upstream project, Oracle has open-sourced almost every enterprise-only feature from the Sun times. So java is and will always be completely free.
There is another dimension: support. Just as Red Hat sells support services to their linux distro, Oracle and other companies also offer such (which certain government companies might legally require, but otherwise you most likely know about it if you need it).
The question of LTS: just as most open-source projects, development happens at master, backporting work to older versions is a significant undertaking. So your best bet at all times is to use the latest version, released every 6 months. Companies having their own builds define LTSs themselves.
If I go to openjdk.org today, the only links I see to download a JDK point to the Oracle site, jdk.java.net. Is that the reference openjdk or the dangerous Oracle version? It's entirely unclear at first glance.
Honestly, why should I as an end user spend the time and effort to figure this out and update every few months to begin with? Why is it not as simple and convenient as the CLR is, with standard major releases annually, minor releases quarterly, and LTS versions every 3 years.
> Download and install the latest open-source JDK. Oracle’s free, GPL-licensed, production-ready OpenJDK JDK 22 binaries for Linux, macOS, and Windows are available at jdk.java.net/22; Oracle’s commercially-licensed JDK 22 binaries, based on the same code, are here.
I pivoted things over to AWS Corretto after they tried something similar a few years ago on the theory that if anything came of it, you can let two 800lbs gorillas fight while you stay out of it.
It was extremely painless (literally xargs to run sed + git commit + git push), has great ARM support, and if you are an AWS customer you can use your existing support contract should the need arise.
https://whichjdk.com/ is an excellent resource that guides users to the various JDK builds from different parties, and which one to pick. Specifically, their recommendations for various Oracle builds are to stay away.
I have to wonder if one of the reasons Google is keeping Dart alive is as a possible last resort if they have to abandon Java completely at some point due to Oracle's aggressive license enforcement.
49 comments
[ 3.9 ms ] story [ 100 ms ] thread(Speaking as an ex-Oracle employee) There is no good reason to ever consider buying into Oracle, except when you're already their customer; in which case... Good luck.
One employee downloads something and suddenly you need to license every seat in the Org. That's a crazy risk to take.
But there are plenty of valid use cases for Oracle GraalVM, and I haven't diff'ed the GFTC and NFTC licenses, but I believe their terms are essentially similar.
Rumour has it that there is some PDF/A capable library for .NET, but I would have to put in quite some time to figure out if it is low level enough for the control I need and whether there are additional libraries suited for layout and typography. Since I might have to ditch it within five years, that's not an option.
Some people claim .NET developer ergonomics on Linux are fine now, but those I know personally that tells me this are using VSCode, which I consider a rather shoddy piece of software. Am I going to take the time and see if it's the case? Fiddle around with IntelliJ plugins and try to setup a LSP for vim and whatnot? Nope, I won't, because there is no revenue in that, and I might suddenly have to do the great rewrite several times at once further down the line.
Maven is a turd, but a very solid one when you've figured out the XML incantation you need. I'm not sure what the alternatives are in .NET-land, or whether I can feel that I trust that they will work fine in ten years, like fifteen year old Maven projects tend to do. GraalVM allows me to output neat executables too.
Java has Wildfly. What's the equivalent in .NET? Running a MICROS~1 Windows Server with IIS? That's not an option.
And so on and so on.
However running it? .Net runs on both Windows and Linux with performance generally being much better on Linux. .Net Team IME also recommends Linux as well unless you are doing some Windows only things.
Web Server? .Net comes with built in cross platform Web Server called Kestrel which is pretty darn performant so most people just run Kestrel and proxy it with something like Nginx/Caddy though it's not required.
After dealing with both companies, if you put a gun to my head and said "Oracle or Microsoft?" Microsoft hands down. Both are licensing nightmares but Microsoft has never come close to hostage taking behavior that Oracle has. Don't even get me started on Oracle Database Core license requirements in virtual environments. MSSQL never went that bad.
Performance isn't a pain point for me. Currently I'm developing a crude ETL tool that does a lot of string stuff and a typical run produces hundreds of thousands of PDF files, unoptimised it finishes in less than an hour on my late middle age laptop. I might not even spend time chasing cycles because I can keep a rather fast development cadence anyway. For excellent performance in network services I reach for the BEAM.
Wildfly is an application server. Kestrel would, as far as I can tell, be comparable to Tomcat or Jetty.
Having spent some time migrating away from Oracle DB but never having managed to convince an organisation to move off MICROS~1 I'm pretty sure the latter are better at it. If I get to decide neither liability becomes a dependency.
Many libraries and/or frameworks come from companies you could argue cannot be trusted (Meta, Google...) but do you shy away from anything they produce and stick to something developed independently somehow? In the case of .Net: it has been around for a long time, and it has changed drastically. It was closed source, Windows-only and it wasn't sleek. Then they rebooted the whole thing into .Net Core. Open source, platform independent, much thinner, development in the open.
> Some people claim .NET developer ergonomics on Linux are fine now, but those I know personally that tells me this are using VSCode, which I consider a rather shoddy piece of software.
My personal experiences with VSCode and the recent C# extensions have been fine for small projects, but if that's not your thing, there's also JetBrains' Rider, which I have very good experiences with as well.
> Maven is a turd, but a very solid one when you've figured out the XML incantation you need. I'm not sure what the alternatives are in .NET-land, or whether I can feel that I trust that they will work fine in ten years, like fifteen year old Maven projects tend to do.
The package manager aspect is Nuget in the .Net ecosystem. It's easier than Maven in the sense that you can control it from your IDE or from the command line, instead of having to edit your pom.xml or the .Net equivalent (which has one extra layer when compared to Maven; solutions containing projects).
> Java has Wildfly. What's the equivalent in .NET? Running a MICROS~1 Windows Server with IIS? That's not an option. The equivalent in .Net is Kestrel, which is part of ASP.Net, and can run on Linux. It's a little less work to setup than Wildfly (which is not a lot of work either) because it's bundled.
> And so on and so on. It's surely not for everyone but I think Microsoft has taken a great turn with it after the "reset". Is it going to be like this forever? I don't know, but looking at the past, at the direction Microsoft has taken it, I think it's gotten much better.
Of course, I wouldn't advocate rewriting your Java-based softwarescape into .Net (or the other way around) lightly, way too expensive and Java will probably get the job done.
If you want command line incantations you can easily invent your own program to do the edits, simple with sed or awk, more advanced with JAXB. The reason no one does is that XML editors are quite capable and in practice pom-editing isn't particularly annoying.
I agree that MICROS~1 is trying to woo developers, but in every other area I'm looking they're absolute dogshit. They seem to want to turn consumer Windows into a rent a thin client sort of deal, their strategy in acquisition seems entirely driven by the threat of anti-trust legislation when it's not clearly insane, stuff like that. If they reach a degree of developer lock-in they find sufficient I'm sure they're going to do Oracle style squeezes.
https://old.reddit.com/r/sysadmin/comments/d1ttzp/oracle_is_...
One of third party later changed their mind and said they would support Adoptium JRE but you had to be on latest version of software. Generally, upgrades required their consulting people to come in so cha-ching. Last I heard, we were on their calendar to come do the upgrade since upgrade cost was about a year of Oracle licensing fees.
https://adoptium.net/en-GB/temurin/releases/
And that's also why if something that was MIT/BSD/Apache changes licenses, some developers will start gnawing off their leg before the trap even springs shut.
In defense of Java, the canonical JRE/JDK implementation has been OpenJDK for quite some time now, and there are many non-Oracle spins of it.
As for .NET, while it is currently good and I personally enjoy it, I'm a little wary on it too. Unlike with Java, where decision making is distributed in some fashion (as far as I can tell), Microsoft has retained nearly total control of .NET, and key parts of the ecosystem like the debugger are still under non-OSS licensing terms.
Users are in the habit, perhaps pressured, to accept the terms with without due consideration by a qualified lawyer. C.f. the South Park "human centipede" episode.
I suspect that the best solution, society-wise, is to enact stronger consumer protection laws that override these EULAs.
Behold, the lawn mower cometh... I believe is the reality.
[0] https://adoptium.net/temurin/releases/
There's no need to go into deep research, but take maybe 5 minutes to understand the landscape of OpenJDK distributions. For instance if you run RedHat based linux like many companies, Adoptium brings nothing, there's no reason not to use RedHat's OpenJDK packages.
Perhaps this is also helpful for others - https://whichjdk.com/
Just the usual info, because there are so many disinfo spread: Java’s reference implementation is OpenJDK, developed 95% by Oracle. This has the same license as the linux kernel, it’s completely open-source. Similarly to how different distros pre-build the kernel for you, there are OpenJDK “distros”, like OracleJDK, Adoptium, etc. These are, for all practical purposes equivalent code-wise with the upstream project, Oracle has open-sourced almost every enterprise-only feature from the Sun times. So java is and will always be completely free.
There is another dimension: support. Just as Red Hat sells support services to their linux distro, Oracle and other companies also offer such (which certain government companies might legally require, but otherwise you most likely know about it if you need it).
The question of LTS: just as most open-source projects, development happens at master, backporting work to older versions is a significant undertaking. So your best bet at all times is to use the latest version, released every 6 months. Companies having their own builds define LTSs themselves.
Honestly, why should I as an end user spend the time and effort to figure this out and update every few months to begin with? Why is it not as simple and convenient as the CLR is, with standard major releases annually, minor releases quarterly, and LTS versions every 3 years.
> Download and install the latest open-source JDK. Oracle’s free, GPL-licensed, production-ready OpenJDK JDK 22 binaries for Linux, macOS, and Windows are available at jdk.java.net/22; Oracle’s commercially-licensed JDK 22 binaries, based on the same code, are here.
It's right on the landing page.
https://aws.amazon.com/corretto/
It was extremely painless (literally xargs to run sed + git commit + git push), has great ARM support, and if you are an AWS customer you can use your existing support contract should the need arise.
I've used SDKMan's list for this purpose, https://sdkman.io/jdks .