Oracle Java license teams set to begin targeting unknowing Oracle users
theregister.com
theregister.com
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.
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.
(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.
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://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.
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.
I've used SDKMan's list for this purpose, https://sdkman.io/jdks .
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.