15 ms·
The future of Java and OpenJDK updates without Oracle support
- kjeetgill 8y agoTL;DR Andrew Haley is stepping up on behalf of RedHat and the greater OpenJDK community to provide leadership for LTS branches of OpenJDK 8 and 11. > The OpenJDK Vulnerability Group, with members from many organizations, collaborates on critical security issues. Huh, I'd never heard of that before. > There is also the question of back-porting important features from later OpenJDK releases ... While new features, particularly performance-related ones, are undoubtedly nice to have, our first priority must be to not break anything: we must remember that we are stewards of a very precious piece of software. ... each proposal will have to be taken on its individual merits, and I don’t think we can have a one-size-fits-all policy for such things. This is so refreshing to hear. Especially after all the turmoil over the Linux CoC, it's nice to just hear: we'll rely on my human judgment and that if my peers. All in all I think this is good news and well needed clarity.
- mabbo 8y agoAt what point do we finally draw the line on Oracle and say enough is enough, we're forking? Oracle clearly seem interested only in trying to exploit Java developer and users. Why are we still stuck to them?
- oblio 8y agoThey own the trademark, they own the TCK and Java itself is a huge amount of tech, not something easy to fork. Plus it would be really hard to get adoption for the fork. The Java brand is huge and many of its users are late adopters or even laggards.
- kjeetgill 8y agoThe TCK was recently open sourced!
- oblio 8y agoOh, interesting. Didn't know that.
- kodablah 8y agoLink? Surely we're talking about the regular TCK to confirm my Java impl is compliant and not EE.
- alanfranzoni 8y agohttps://github.com/eclipse-ee4j/jakartaee-tck/blob/master/README.md https://github.com/eclipse-ee4j/jakartaee-tck/blob/master/RE...
- kodablah 8y agoThat's EE. Not the TCK that people have complained about their subjective licensing of (e.g. Apache Harmony). When they really open the TCK, that would be nice. In the meantime, this is just for EE stuff of which licensing matters little these days.
- kjeetgill 8y agoI get all the hate for Oracle the company, but they've taken the time to systematically open source every closed source thing they've had: JFR, ZGC, GraalVM (partially), and finally the crown jewel the TCK. They've even been involved in getting the open community up and running. I sincerely can't imagine what more you could want from a corporate steward.
- Ygg2 8y ago> I sincerely can't imagine what more you could want from a corporate steward. To generally not try to pull the rug from under you by changing licenses?
- jerven 8y agoThis was not pulling the rug from under you. This was them clearly stating they where going to pull the rug, you ignoring all their shouts, signs and warnings and then blundering. I think the onus is on us for not reading and listening.
- giancarlostoro 8y agoMeanwhile .NET Core is MIT Licensed and the language spec for C# is still standardized and open to re-implement (hence something like Vala is possible). If you didn't want to drink Microsoft's koolaid it's free as in free beer and as in freedom, can't say the same about Oracles.
- solarkraft 8y agoCan you explain how Vala builds on C#?
- giancarlostoro 8y agoIt's mostly inspired by the syntax of C# but the spec of C# is standardized so I could see them or someone else going further with it. The real value in C# is the underlying stack aka the .NET Framework that gives you all the tools and toys to get things done.
- Pyxl101 8y agoThe latest versions of Java will continue to be free. All you need to do to "pay" for that is remain up to date. Only maintenance on older versions of Java will be subscription based. Why is Oracle obliged to provide long-term binary support and updates for old free software? If you want long-term support for old Java versions, then I think it's reasonable to say: pay for a subscription (or don't complain). RedHad uses a similar business model. Or keep using the latest versions which will continue to be free, and stay up to date. It seems like a reasonable proposition to me. I don't see what Oracle has done wrong here.
- danieldk 8y agoThe latest versions of Java will continue to be free. All you need to do to "pay" for that is remain up to date. Only maintenance on older versions of Java will be subscription based. Only free for non-production use. This was on HN yesterday: https://blog.joda.org/2018/09/do-not-fall-into-oracles-java-11-trap.html https://blog.joda.org/2018/09/do-not-fall-into-oracles-java-...
- Pyxl101 8y agoI believe you're mistaken. The article is saying that there are two versions of Java, and one has the license that you mentioned while the other is free and open source. From that article: https://blog.joda.org/2018/09/do-not-fall-into-oracles-java-11-trap.html https://blog.joda.org/2018/09/do-not-fall-into-oracles-java-... > As well as their commercial JDK, Oracle produce an OpenJDK build. It is $free, zero-cost and GPL licensed (with Classpath exception so safe for commercial use). Download $free Java here: https://jdk.java.net/11/ https://jdk.java.net/11/ jdk.java.net/11 in turn says: > This page provides production-ready open-source builds of the Java Development Kit, version 11, an implementation of the Java SE 11 Platform under the GNU General Public License, version 2, with the Classpath Exception.
- smarx007 8y agoExactly! https://www.oracle.com/technetwork/java/javase/downloads/jdk11-downloads-5066655.html https://www.oracle.com/technetwork/java/javase/downloads/jdk... clearly says in a RED box that "With JDK 11 Oracle has updated the license terms on which we offer the Oracle JDK. The new Oracle Technology Network License Agreement for Oracle Java SE is substantially different from the licenses under which previous versions of the JDK were offered. Please review the new terms carefully before downloading and using this product. Oracle also offers this software under the GPL License on jdk.java.net/11"
- MaxBarraclough 8y ago> At what point do we finally draw the line on Oracle and say enough is enough, we're forking? But we already have OpenJDK. What would be gained by completely cutting ties with Oracle?
- skgoa 8y ago> Oracle clearly seem interested only in trying to exploit Java developer and users. Oracle are just not giving users of obsolete, deprecated versions of Java free patches anymore. They want everyone to keep up to date with the current version. The likes of Apple, Microsoft and Google just force push updates to achieve the same goal, but Oracle doesn't have that kind of control. Yet even though Oracle don't want to support old versions anymore, they still offer support contracts for those organizations that truly need it. Which is a completely normal thing in the tech industry. What part of that is exploitation?
- Nursie 8y ago> Oracle are just not giving users ... free patches anymore IIRC they are also making commercial (non-development) use of Oracle JVMs 11+ something that they will charge for. I don't think this was true of earlier versions.
- pjmlp 8y agoIt was, many Oracle JDK features were only freely available for development, like the Flight Control, for example.
- Nursie 8y ago> many Oracle JDK features were only freely available for development, Sure, but you could use the Oracle-branded JVM in production, AFAICT, for free before.
- krzyk 8y agoBut the difference between Oracle branded and OpenJDK is almost non-existent anymore. Do you use Oracle specific features that are not in OpenJDK?
- Nursie 8y agoNo, and we'll be fine moving to an OpenJDK build when we move to Java 11 (from 8) in a month or so. Please don't mistake my comments for complaints - I'm just noting that things have changed in the licensing terms for Oracle-branded JVMs. There is an easy and simple way forward, to use OpenJDK, it's important to note the change and act accordingly. That's all.
- pjmlp 8y agoWhen you get the money to pay the Oracle engineers working on JVM and Graal. Also apparently many have a short memory regarding Sun and IBM's Java business pratices and hating Oracle is fun.
- tajen 8y agoBut not acting could be worse, it could ruin the whole sector of Java, Scala and the JVM, be it discredit or economic irrelevance.
- afroboy 8y agoAnd who is going to pay the great minds behind JVM? you are missing the point that there is great engineers working on Java that need high pay and apparently only Oracle that can do that. see GraalVM as an example of how Java become more good under Oracle yes Oracle is evil but for god sake they are the best thing happened to java (the language and the JVM).
- akerro 8y ago>Why are we still stuck to them? Because even literally the most used Java library - JUnit is struggling financially, because everyone wants to use great technologies for free and donations and open-source contributions are never considered. I worked in huge financial institutions once, they heavily relay on some ant plugin. The plugin had a bug, probably like a day of fixing for me. The company decided to stop using the plugin, rewrite the whole configuration in bash, which took almost 4 weeks of 4 people, than contribute to opensource during working hours and fix the bug for everyone.
- brookhaven_dude 8y agoHow is C++ doing so great then?
- pjmlp 8y agoThanks to the money Apple, Google, IBM, Microsoft, Red-Hat, Intel, Cray, SGI, ARM, HP, Sony, Nintendo, AMD, NVidia, TI,CodePlay... put into ISO work, developer conferences, gcc/clang and their own compilers.
- pron 8y agoNot before someone else is willing to fork over hundreds of millions of dollars to sponsor Java. OpenJDK is Big Open Source. The majority of the hundreds of developers building it[1] do it as their day job, and the vast majority of those are employed by Oracle (and others by Red Hat, IBM, Intel and others). Oracle has sponsored OpenJDK for the last 8-9 years, and has now completed open sourcing all of the previously closed bits of the JDK, some dating back to Sun, and some to BEA's JRockit (JFR, now part of OpenJDK 11), not to mention all the new work on the language and JVM including new GCs like ZGC and the new compiler, Graal (I just hope you don't feel too exploited by all this). Companies like Amazon, Netflix, Google, Twitter, Apple and many, many others (some of them have even forked OpenJDK internally) have not contributed significantly, despite depending so heavily on OpenJDK. So, like it or not, this is the reality of open source. A lot of companies are happy to use it freely but less happy to contribute the significant resources necessary to build it. (I work at Oracle on OpenJDK, but I speak only on behalf of myself) [1]: http://openjdk.java.net/census http://openjdk.java.net/census
- krzyk 8y agoWhy do you need to fork OpenJDK? You can just contribute there. I don't see why the uproar about Oracle branded OpenJDK. We can use normal OpenJDK which is almost the same.
- grigjd3 8y agoHard to ditch Java if you run hdfs and anything built on top of that.
- adrianmonk 8y agoThere is a big trade-off to consider here. Previously, Oracle supplied the engineering resources to develop new features and to maintain old releases. Now, Oracle provides the first but not the second. The community can step in and do the second. If it is forked, then the community needs to step in and do both. So getting free of Oracle has a cost, the cost of losing engineering resources for new features. Whether it's worth it would depend on how much value you place on those two things. Clearly Oracle is trying to steer people toward revenue-generating things. I don't see a problem with that in and of itself, especially if the community can provide a free alternative. It seems like this could push things either direction. On the one hand, many companies may just pay Oracle for support and that may become a common (and expected) practice. So that would shift some control toward Oracle. On the other hand, Oracle is stimulating the community to get involved in maintenance, and that may build some momentum for community contributions, causing the community a larger role in Java development, which would shift some control away from Oracle.
- jokoon 8y agoJava stemming from one company in particular is one big reason I don't like Java, on top of requiring a jvm. At least with C++, there are several companies involved, and its inventor doesn't work for one software platform in particular (herb sutter works at Microsoft, that I will agree). I don't know how 'iso' Java is, but to me c++ is much more adaptable. Java requiring a jvm makes things a little complex. Does the jvm offers guarantees like c++ does? I trust c++ more, because once it's compiled, there are much less uncertainties.
- chrisseaton 8y ago> Does the jvm offers guarantees like c++ does? I trust c++ more, because once it's compiled, there are much less uncertainties. This seems backward to me. C++ has a great deal of undefined behaviour, which you don’t get in Java. And Java has had a memory model for years - until recently nobody could argue their parallel code was correct on C++. If you want guarantees Java seems like the better option.
- jerven 8y agoExactly! also on my current project I have tried out different JVMs and the results where identical. Oracle (HotSpot) GraalVM (also Oracle) Zing OpenJ9 ExcelsiorJET Performance was radically different between them, but the answers where the same (ok equivalent as this a whole lot of parallel code). My co-workers can't even get their C++ compiler to be accepted by two different compilers and it is not just them. Compiler upgrades are feared events where significant effort needs to be put in. While even the hard upgrade to Java9 from 8 was 3 extra commandline switches on startup. For a project with 168 dependencies and more than 1 million lines of code. Done in one afternoon, with the upgrade to Java 11 taking 3 minutes. (needed to add java mail to the WAR/classpath instead of expecting it to be in the JDK) Upgrades from 5->6->7->8 where equivalent or simpler. Eleven years in two bugs due to an upgrade. One a compiler bug in 1.7.45 an other not overriding all the methods from abstract list in a list of string implementation that uppercased on retrieval. Trivial compared to C++ upgrades.
- viswanathk 8y agoLooks like you have not worked much on C++. C++ is literally one of the worst languages for undefined behaviour and when something does go bad, the tooling around the language is so horrendous that it takes days to debug something that can be done within hours in Java. I spent close to a week on data corruption that would have never been possible in Java. C++ is not for the weak of heart. It's like the wild west. I have since moved to the civilisation of Java and quite happy here.
- thefounder 8y agoPeople should use Go and forget all the licensing issues. Bonus: happy developers!
- rezeroed 8y agoJava to Go - two extremes, too bloated to too simplistic - I'd look for something between. If your projects aren't interesting an interesting language can help you endure. If your projects and your language isn't interesting then tedium.
- vorg 8y agoYou needn't worry about Go being too simplistic for much longer. It looks like they're going to add a bloated form of generics soon, with something called "contracts" that's almost the same as "interfaces" but a little different. A few versions back, Go added "aliases" of types, but it was almost aliases of anything -- only intense community pressure prevented that bloat. And having had a special rule in its short-form declarations to make error handling a little terser, Go is looking at bringing another syntactic shortcut called "handle-check" to bring a little more error-handling tersity. Go's simplicity will be gone in a few short years.
- lllr_finger 8y agoIt took 10 years to move the needle on generics and better error handling, and the draft solutions for both still smell of minimum usefulness/minimum complexity in the language. Whether that's a good approach is up to the individual, but I don't see Go 2 ending up as some unwieldy monstrosity. I'm curious how the proposal for generics is "bloated" - especially as compared to something like C# or Rust.
- vorg 8y agoJust because the currently-proposed Go generics is less bloated than those of C# and Rust doesn't mean it isn't "bloated" compared to Go 1.11. And I wouldn't call the description of contracts in the discussion document from last month "minimum complexity".
- kbutler 8y agoThe title on HN is misleading by truncating the word "Support" from the original. Oracle remains the driving organization behind Java and OpenJDK. The change that has everyone up in arms is the cessation of Oracle support for updates to OpenJDK versions 6 months after release (no long-term support/updates of OpenJDK releases)
- sctb 8y agoThanks, we've restored the “support”!
- anta40 8y ago"Oracle recently announced that it would no longer supply free (as in beer) binary downloads for JDK releases after a six-month period, and neither would Oracle engineers write patches for OpenJDK bugs after that period." Where can I found Oracle's official statement about this issue?
- bilbo0s 8y agoIn my own opinion, people are getting a bit upset over nothing. But you can be the judge. Here is a pretty good write up on everything that's happening: https://www.azul.com/eliminating-java-update-confusion/ https://www.azul.com/eliminating-java-update-confusion/ There was enough concern about all the FUD people are throwing around that Oracle took the step of providing a more visual explanation a long time ago. It's here: https://www.youtube.com/watch?v=YauqubC8FKM&feature=youtu.be&t=1049 https://www.youtube.com/watch?v=YauqubC8FKM&feature=youtu.be... I mean, what's wrong with Oracle only supporting every OpenJDK for 6 months? I'm a Unity user, so no dog in that race really. (Well, we make some game server side stuff with java, but our big stuff is Unity). But it seems completely reasonable to me. I'm probably missing something though, since the internet outrage machine is in high gear. In all honesty though, it sounds perfectly reasonable: Oracle is basically telling you, "If you want more than 6 months of support, buy a support contract. If you don't want to buy a support contract, then you'll have to download the newest OpenJDK to get those updates and patches." ??? I'm probably missing something here since I'm not a deep java user, but what's the problem with that release model?
- kbutler 8y agoThe problem has to do with various factors in Java and Oracle history: - Open JDK has not historically been a production-ready deployment. It was a lower-performance, "reference" implementation, explicitly NOT recommended for production deployments. This changed around JDK 9, but see the next point. - in spite of Java's attempts at backwards compatibility, migrating non-trivial projects to new major releases of the JDK has always been painful and slow. Many projects are still on (or recently reached) Java 8. For example, Spring Boot released support for Java 9 just 6 months ago. - many Java applications are large enterprise applications (many dependencies), and enterprises want stability and long-term support of infrastructure components. It's likely that not all dependencies will get migrated to a new JDK within 6 months, even less that the application will be migrated, and that says nothing about rolling it out to production. - and production is when you really want security updates, etc. And Oracle's plan is that the last scheduled security update would be a couple of months before the next OpenJDK release, so you really only have ~4 months of a supported, updated JDK release. - there have been various security problems with Java, even with Oracle's support (particularly client-side, which is becoming less relevant) So Oracle is moving from a slow-moving cost-free model to "hop on a rapid upgrade treadmill on a release we've historically told you not to use". So the simple answer seems to be "pay oracle for support". - Then you get into Oracle's [abusive? domineering?] licensing practices, like requiring licenses for every CPU in a VMware cluster. - Some clients have been told by oracle reps to try enabling feature X, then brought up for license violations because feature X is commercial-only. - Working with Oracle is problematic enough that clients don't even want to enter into a conversation with them about the consequences of the JDK license change for fear of getting on Oracle's radar. The community appears to be stepping up, but there's still a lot of concern about whether they will be able to provide production-ready, secure builds, across the many platforms Java supports. (Notably, Solaris support appears to be lacking...)
- vaer-k 8y ago> Some people might be worried that their chosen distribution will not build, test, and package OpenJDK correctly, but if you don’t trust your distribution to build packages, you shouldn’t be using it at all. Can anyone say which distributions he is alluding to?
- SloopJon 8y agoIt's rhetorical. The point is that if you trust your distro with millions of lines of code from Linux, GCC, and a thousand other packages, then you should be able to trust it with one more package (albeit a big one).