Remix.run Logo
Foomf 3 days ago

Oracle makes me too uneasy. Can I use Java without the worry of incurring Oracle's wrath? Maybe, if I make sure I use openjdk/jump through some hoops I'll be fine. Or, I could just use any other language and not have that worry looming over me. C# is right there if I want a java-like experience without the anxiety of Oracle breaking my kneecaps.

I don't know how to use java and not violate one of Oracle's EULAs. I could read about it and figure out how to do it safely, or I could just not use java. Java isn't essential (for greenfield projects). There's lots of good alternatives, so I'd rather do that.

samus 3 days ago | parent | next [-]

Just use OpenJDK (only downside is you have to upgrade every half year) or a distribution of another vendor (most people use Eclipse, or Red Hat if they already are Red Hats customers). It's really not as difficult as it is made out to be.

If you use Oracle's distribution of the JDK then you are an enterprise customer and should have the resources to deal with their license terms.

Foomf 3 days ago | parent | next [-]

"Am I using the correct language runtime distribution (or version thereof) so I don't get into legal trouble?" Is a question none of Java's competitors have to ask.

Even using OpenJDK is a sword of damocles waiting to fall. If I forget to update OpenJDK, Oracle could come after me. It's just risk that I don't have to worry about by choosing not to go with Java. It's probably not a lot of risk, but it's risk nonetheless that doesn't exist with Java's competitors.

Competition is so fierce in the language space and there are so many good options that java can't afford to have any friction points like this.

EDIT: I got oracle openjdk and oracle jdk mixed up. They're different things. It looks like the oracle openjdk does not have its license change, the oracle jdk does. This is a problem/risk I don't have to worry about with any other language, but getting the two mixed up is on me.

cbm-vic-20 3 days ago | parent | next [-]

> If I forget to update OpenJDK, Oracle could come after me

I must have missed that section of the GPLv2.

Oracle does distribute a different (not OpenJDK) Java distribution under a special not-open-source no-cost license, which includes a stipulation that you can't use updates after the next LTS release. This only adds to the confusion: you really only need Oracle's special distribution if you want paid Oracle support for it or their stuff that requires it.

munksbeer 3 days ago | parent | prev | next [-]

>Even using OpenJDK is a sword of damocles waiting to fall.

No, it really isn't. Honestly, people seem to go to great lengths of talking nonsense to discredit Java. There are many reasons to not like a language, and that is absolutely fine. But there is no point talking nonsense about it when you could just... not use it.

Foomf 3 days ago | parent [-]

I was under the impression that openjdk changes licenses once a new version comes out. That's why the parent comment said "the only downside to openjdk is you have to upgrade every half year", right?

vips7L 2 days ago | parent | next [-]

No they said that because builds of the OpenJdk codebase by the OpenJdk team are only supported for 6 months until the next version comes out.

Builds of the OpenJdk codebase by other vendors are supported for other lengths of time.

monkeyelite 2 days ago | parent | prev [-]

I don’t think someone can revoke your gpl licensed software you already have.

voxic11 2 days ago | parent [-]

Check out 17 U.S.C. §203 and §304. I think it's possible to revoke the license after 35 years (at least in the US).

brunoborges 2 days ago | parent | prev | next [-]

> "Am I using the correct language runtime distribution (or version thereof) so I don't get into legal trouble?" Is a question none of Java's competitors have to ask.

I am not sure this is 100% true. I think that if you download a specific binary of Anaconda (for Python), you may get into a situation where you have to pay.

For example, at Anaconda.com, one can download their distribution (their build) but the fine print says: "Use of Anaconda’s offerings at an organization of more than 200 employees/contractors requires a paid business license unless your organization is eligible for discounted or free use."

I think that PSF License is permissive and allows binary versions of Python without the maker having to release the source code.

So, downloading Anaconda as a Python distribution (build) is analogous to downloading Oracle JDK (a commercial build of OpenJDK, from Oracle).

thevillagechief 3 days ago | parent | prev | next [-]

This coming from a big Oracle skeptic. None of this is true. There is no practical friction left if you're using OpenJDK. And from the parent comment, you do not need to upgrade every 6 months. Most people just work with the LTS version.

mike_hearn 2 days ago | parent | prev | next [-]

That's because none of Java's competitors have commercial support offerings to begin with, as far as I know?

It's the same situation as with Linux. Red Hat Enterprise Linux isn't free. But it'd be weird if you said you're afraid of using Linux because the licensing is too complicated.

StopDisinfo910 20 hours ago | parent | next [-]

Cloud providers do if you run your program on their platforms. That’s not exactly what you want but that covers a significant part of the market.

lenkite 2 days ago | parent | prev [-]

Lots of languages like Python, NodeJS, C++, even Perl have commercial support offerings.

mike_hearn a day ago | parent [-]

OK but not from the creators of the languages themselves, I think?

The point remains though that it's the same situation. There's a free open source implementation and some companies that offer paid support.

lenkite 14 hours ago | parent | next [-]

Dotnet has commercial support from Microsoft. They are C# inventors.

(Also to needlessly quibble, technically James Gosling under Sun Micro-systems invented Java)

samus 21 hours ago | parent | prev [-]

Pretty sure you can get support from Microsoft or other vendors for their C++ compilers.

mike_hearn 18 hours ago | parent [-]

Microsoft aren't the creators of C++.

lenkite 2 days ago | parent | prev | next [-]

> "Am I using the correct language runtime distribution (or version thereof) so I don't get into legal trouble?" Is a question none of Java's competitors have to ask.

Umm..sorry, but this is just sheer nonsense. There are many commercial Python distributions like ActiveState ActivePython, Anaconda Enterprise, etc that you need to pay for.

If you download and use their prebuilt ActivePython installer without a proper license in a commercial setting, you’re breaching a contract and will get into legal trouble.

> This is a problem/risk I don't have to worry about with any other language,

No, you most certainly DO have to worry about this in many other languages which offer commercial support offerings. (Python/C++/Perl/NodeJS,etc)

> Even using OpenJDK is a sword of damocles waiting to fall.

Just a plain, bald-faced lie.

Quekid5 3 days ago | parent | prev | next [-]

What, exactly, are the JVM's competitors (not Java, btw)? You can always use Kotlin or Scala if they take your fancy. They both interop fantastically with 20+ years of the Java ecosystem.

EDIT: The only remotely competitive ecosystem is JS/TS (because billions of pre-installs) and C#.

> Even using OpenJDK is a sword of damocles waiting to fall. If I forget to update OpenJDK, Oracle could come after me. It's just risk that I don't have to worry about by choosing not to go with Java. It's probably not a lot of risk, but it's risk nonetheless that doesn't exist with Java's competitors.

This is absurd hyperbole.

lukev 3 days ago | parent | prev [-]

> If I forget to update OpenJDK, Oracle could come after me.

What?

Foomf 3 days ago | parent [-]

Licensing for OpenJDK is non trivial. Look at the large table and various bullet points Oracle had to make to tell you the license. https://www.oracle.com/java/technologies/javase/jdk-faqs.htm... (open the first dropdown on their FAQ page to open up their "licensing matrix")

This is a mess, and is the license going to change again while I'm locked in the java ecosystem?

Edit: It looks like the openjdk is consistently under the gplv2, I don't know why it has so many different entries in their table. I think I probably got opendjk and oracle jdk mixed up. I think the person I was replying to who said openjdk needs to be updated every half year got confused as well. It's so hard to even talk about all the different jdks without getting them mixed up or confused. Again, no other java competitors have this problem.

cbm-vic-20 3 days ago | parent | next [-]

Licensing for OpenJDK is trivial (GPLv2+Classpath). Just like gcc/g++ and its runtime library exception.

Licensing for Oracle JDK is more complicated. This is the one where you can use it for free, but after the next LTS you either have to move to the LTS or pay for updates. There's no reason to use Oracle JDK unless you want to pay for support from Oracle, or if your applications specifically require Oracle JDK. Oracle JDK is built from the same source as OpenJDK.

https://blogs.oracle.com/java/post/free-java-license

extraduder_ire 2 days ago | parent [-]

What is even the benefit to using Oracle JDK at this point? Years ago, I saw that some jetbrains IDEs said to use it instead of openJDK, but I haven't seen anything else like that.

lenkite 2 days ago | parent [-]

Oracle JDK offers LTS support with regular security patches and critical bug fixes, even for older LTS releases. (More than a decade plus, I believe, but need to check)

OpenJDK community builds usually only provide updates until the next release (6 months).

Oracle offers paid commercial support contracts: guaranteed patch timelines, 24/7 enterprise support, performance issue troubleshooting, and compliance assurance.

You can also built features atop the Oracle JDK and still get support. SAPJVM does this for instance - hot debugging as a feature.

lenkite 2 days ago | parent | prev [-]

> Licensing for OpenJDK is non trivial.

?? It is very simple. Please go to the OpenJDK site and read the below:

https://openjdk.org/legal/gplv2+ce.html

signal11 2 days ago | parent | prev | next [-]

> only downside is you have to upgrade every half year

LTS OpenJDK distributions from eg Eclipse (17, 21 etc) stick around for longer[1]. Heck, you can still get updates for JDK 11 and even 8.

You do have to update the runtime for security and other fixes, but that’s true for other languages too.

[1] https://adoptium.net/support

stronglikedan 3 days ago | parent | prev [-]

All that just seems like friction when there are frictionless alternatives available. Life's too short for friction.

Quekid5 3 days ago | parent | next [-]

You usually have to explictly opt-in to installing an Oracle JDK because... you know, they have a license agreement that you must agree to.

So there's no friction, everyone uses the OSS ones unless you have very specific needs.

lenkite 2 days ago | parent | prev | next [-]

Can you explain what the friction is ? If you download and install the ActiveState Python distribution in a commercial setting and accept the license agreement without reading and get sued legally at a later point, will you say Python has too much friction ?

Just go to https://openjdk.org/ and click "Download". Or say `brew install openjdk` (macOS) / `apt install openjdk` (linux).

ZERO friction.

samus 2 days ago | parent | prev [-]

There is no friction. Don't use commercial products if you don't want to pay for them. End of story.

brunoborges 2 days ago | parent | prev | next [-]

> Oracle makes me too uneasy. Can I use Java without the worry of incurring Oracle's wrath?

Hey! I work at Microsoft and helped us launch the Microsoft Build of OpenJDK.

I can categorically say that yes you can use Java without worrying. As long as you don't use a commercial binary from a vendor that has certain licensing restrictions.

Our build of OpenJDK is free for any use, and comes with commercial support (you know, the one you can open a ticket and ask us to look into the issue) at no extra cost for workloads on Azure.

GuB-42 3 days ago | parent | prev | next [-]

> C# is right there if I want a java-like experience without the anxiety of Oracle breaking my kneecaps.

Is Microsoft really better than Oracle in that regard?

mrsmrtss 3 days ago | parent | next [-]

If we look at .NET vs Java, then yes, Microsoft is better. Microsoft may charge for some of its dev tools (Visual Studio etc), but .NET itself is and was always totally free.

mdaniel 2 days ago | parent | next [-]

I don't think "was always" is an accurate statement

However, above and beyond free, it is also a collection of ECMA standards https://learn.microsoft.com/en-us/dotnet/fundamentals/standa...

Now, don't get me wrong: I have grave suspicions there is currently only one actual implementation of them (I don't count hobby, or abandonware, ones) but IMHO "actual standard" combined with "for real reference implementation" is way better than just reference implementation

---

since I'm still within the edit window, the MAUI referenced by the sibling comment is MIT licensed https://github.com/dotnet/maui

https://github.com/dotnet/blazor (Apache 2) is marked an archived, and points to https://github.com/dotnet/aspnetcore (MIT) but command-f blazor on its readme is nothing so :shrug:

NekkoDroid 2 days ago | parent [-]

> I don't think "was always" is an accurate statement

If we want to be really pedantic they said ".NET" and not ".NET Framework" or ".NET Core", so basically that what came with .NET 5 and newer.

mdaniel 2 days ago | parent [-]

The very idea of those 3 things being disjoint is a supremely Microsoftian thing to do and makes discussions horrific

HackerThemAll 2 days ago | parent | prev [-]

And .NET is truly cross-platform for 11 years already (since .NET Core 3.0 was released). No licensing/patent/litigation issues since then.

Great GUI cross-platform GUI toolkit (MAUI), great WASM engine (Blazor).

Upcoming .NET 10 is going to be awesome.

NekkoDroid 2 days ago | parent [-]

Isn't the official MAUI still basically "everything but Linux"? I haven't been keeping up with that the last 2 or so years and I just remember there being an unofficial GTK implementation somewhere in the interwebs, but nothing being officially supported on Linux.

HackerThemAll a day ago | parent [-]

Linux desktop has a tiny market share. No reason to invest significant resources for that. Also, by supporting MAUI on Linux, Microsoft would feed their own competition in desktop area, and it's crucial for them to maintain dominance in that area. I think this is why they did not port the great WPF to Linux as well.

And besides, Linux desktop is a mess. I never learned details on how Wayland / X11 / KDE / Gnome etc. work, which is for what. All I know is that some distros switch from one to another, that one is declared the best, and another the worst, and all of it changes regularly. I'm glad someone in Canonical made the desktop mostly working for me in Ubuntu, although it still lacks a lot compared to Windows.

I think when you need that level of cross platform support to cover Windows, Linux, macOS, maybe mobiles, and you do a serious project, you use Qt.

egorfine 2 days ago | parent | prev [-]

Depends. If you were there during the Steve Ballmer time then you know that Microsoft will absolutely betray you on almost every dev tech they roll out.

Otherwise C# and .NET have had a pretty solid track record.

thfuran 3 days ago | parent | prev | next [-]

You don't have to jump through any hoops. If you don't want to deal with Oracle, don't be an enterprise customer of Oracle and instead just get some openjdk distribution.

brunoborges 2 days ago | parent [-]

> just get some openjdk distribution

From several sources:

- Oracle themselves, at jdk.java.net - Microsoft, at microsoft.com/openjdk - Red Hat ... - Azul Systems ... - Amazon - Bell Soft - Canonical (Ubuntu ships OpenJDK binaries built by them) - build yourself?

lenkite 2 days ago | parent [-]

Just go to https://openjdk.org/ and click on the "download" link.

Or use your OS package manager and <pkgManager> install openjdk. Problem solved.

Just like any other software, you know ?

brunoborges 2 days ago | parent [-]

That download link takes you to jdk.java.net, which hosts OpenJDK builds built by Oracle.

lenkite 14 hours ago | parent | next [-]

I don't get it, what is wrong with that ? Those are OpenJDK binaries and also explicitly named as such not Oracle JDK binaries.

ohdeargodno 2 days ago | parent | prev [-]

[dead]

andrewl-hn 3 days ago | parent | prev [-]

My semi-conspiracy theory is that the success of Rust is partially due to BigTech companies searching for a "legally-safe" alternative to Java.

The multi-year Google vs Oracle lawsuit put the likes of Amazon and Facebook to unease. And meanwhile there was this safe and performant language with no strings attached under a nice Apache license. They quickly made a Foundation around it as a 501(c)(6) - trade association, and not a "public good"-kind of a non-profit. This essentially means that as long as you're a member and pay the fees you won't be sued - exactly what all these companies wanted. So now they all keep up the funding and employ some of the compiler developers to keep the lights on for next 20 years or longer.

The fact that the language itself is really good for what they need it for is obviously the major reason why they support it, but the legal side of things definitely helped with adoption.

nirvdrum 2 days ago | parent | next [-]

I'm not sure where things fall on your timeline, but in case you missed it, Amazon has their own Java distribution called Corretto. It was first publicly released in 2018:

https://downloads.corretto.aws/#/overview

HackerThemAll 2 days ago | parent | prev [-]

This conspiracy theory would explain not only success of Rust, but also Go language and C#/.NET, and any other Java competitor.

I'd say it's 90% because of Oracle and its lawyer-driven business, and 10% because the language is just ugly, and existing libraries are super-ugly and unreadable, with all these Factories and AbstractFactories, and all design patterns forced like a religion whether they're useful or not in a specific context.