Hacker News new | past | comments | ask | show | jobs | submit login

That's not exactly the same. Oracle is infamous for bait and switch, where it's free at first. With Java, they first snuck in some extra components that triggered license requirements, then later, just changed the whole jdk license.

They are very aware that big companies wouldn't be nimble enough to switch to openjdk in time to avoid the license fees.

Additionally, they know that companies have 3rd party software that bundles what was once "free" oracle jdk. The end user gets to foot the bill for that rather than the 3rd party.




Old JDKs, bundled or not, require an explicit flag (`-XX:+UnlockCommercialFeatures`) to enable commercial features.

As to new JDKs, Oracle has open sourced (or discontinued) all previously commercial features so that now OpenJDK and Oracle JDK are the same software: https://blogs.oracle.com/java-platform-group/oracle-jdk-rele...

Infamous or not, the licensing situation is now clearer and better than ever before: Oracle offers the same software under a commercial license for those who wish to buy support, or under a free license to those who don't. The download pages for either option clearly identify the license, and point the user to the other option, if that's what they want:

* https://www.oracle.com/technetwork/java/javase/downloads/ind...

* https://www.oracle.com/technetwork/java/javase/downloads/jdk...

* https://openjdk.java.net/projects/jdk/11/


The companies that were caught up in this are, for the most part, the ones on Oracle JDK 8, which is substantially different than OpenJDK.

The "UnlockCommercialFeatures" doesn't catch everything either. For example, Oracle once added a clause about "embedded devices" needing a commercial license. With a very broad definition of embedded.

This is pretty clearly a cash grab.

Also, If the bits are truly the same as of version 11... what's the point of making people download a duplicate codebase where the only difference is one text license file?


> For example, Oracle once added a clause about "embedded devices" needing a commercial license. With a very broad definition of embedded.

No, field-of-use restrictions had applied under Sun, too, as licensing Java to mobile/embedded devices was Java's income source. Later, various commercial features were also a source of income. Oracle has now completely opened the JDK (and there are no field-of-use restrictions for the free license), opened all commercial features, and has switched to a support model.

Like all companies providing open source runtimes/languages, Oracle, too, must fund Java somehow (as I explained in another comment https://news.ycombinator.com/item?id=19069655). You're free to think that the funding model now is less preferable to you personally than the previous ones, but I don't think anyone can claim it is any more of a "cash grab" than the previous monetization strategies.

I think that if anyone claims that recent changes to Java's licensing and release models are not for the better, then they are either misled or misleading.


Ahh, yes, you're right. The clause was there. But Sun, in practice, applied it to things that most people would call "embedded". Oracle used a broader definition that included PC hardware in many situations.

Not sure I understand the whole funding argument. Swift, golang, v8, typescript, etc, seem to be fine as open source.


Golang, V8 and TypeScript are tiny projects compared to OpenJDK. Oracle employs hundreds of full-time OpenJDK contributors. Swift is funded through iOS (just as .NET is funded through Windows and Android through, well, Android). I don't know if this is true anymore, but the number of people developing Golang at Google is (or used to be, last I heard) close to the number of people there modifying OpenJDK for their internal use. V8 is also funded through Chrome, BTW.


I'm mystified as to why Java is so much bigger than any pure open source language implementation.

In any case all this jockeying around with the license will certainly reduce the user base. From talking to my peers at other companies, we're all putting together our "get off of java" plans now.


Why? Because the requirements are so much more challenging. OpenJDK has several state-of-the-art GCs (e.g. for software that values throughput, software that values latency, and software that's in between), three state-of-the-art compilers (C1, C2 and Graal) plus the frontend compiler, javac, and an extensive standard library. People rely on Java for projects that are much more demanding than those using, say, Python, Go, Node.JS etc. .NET is of a similar size, because the demands are similarly high.

I can tell you that the amount of software switching from other platforms to Java is significantly higher than that switching away. Those switching away are those with lesser requirements (e.g. in terms of performance, data size, management and tooling), and those switching to Java do that because they want the scalability and tooling. The full open-sourcing of the JDK and the new release cadence are big improvements that make Java even more attractive to those that were on the fence before, and the pipeline of major OpenJDK projects (Valhalla, Amber, Panama, Loom, Metropolis) is deeper than ever in Java's history.


Most of the companies I work with are either Java or .NET shops, moving away from any of those platforms means rebuilding their business, for some of them, even the services that they sell, throw out worldwide trainings moving the whole company into a new stack.

A large majority of corporations aren't that allergic to software licenses, they have other issues on their top list.


It's not the license by itself. It's the relationship with that vendor.


On the enterprise space there are much worse vendors than Oracle, still everyone is buddy with everyone.


>I'm mystified as to why Java is so much bigger than any pure open source language implementation.

Because with Java someone actually pays for its development.


> Swift is funded through iOS

Swift is reasonably independent from Apple these days. It’s stable starting version 5 and most new features are geared towards other applications than Cocoa.


Swift is pretty useless outside Apple platforms.


They didn't change the license of old JDKs AFAIK (correct me if I'm wrong).

So, those big companies would first have to switch to an affected version of the JDK anyway, so they could as well switch to OpenJDK.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: