Oh my god. The amount of FUD concerning the JDK licensing for JDK 11 is just amazing.
So, unless I’ve missed something, Oracle does the following:
- Contributes pretty much all of the closed source technologies (or what was originally to become closed source) of the Oracle JDK to OpenJDK, for example giving the community:
- JDK Flight Recorder
- JDK Mission Control
- …and probably more stuff I can’t think of right now
And how does the community react, you wonder? Yep, that’s right. “Oracle is the Devil”, “This is a bait and switch operation” etc. Ad nauseum.
So, this is my personal take on open source: if I like a certain open source technology, and it helps me in my work, I support it. Either by contributing, or by paying (gasp) money for it. Especially if I would like the technology to thrive in the future. Technologies that are not supported, tend to die and be forgotten. I have personally, for a very long time, paid a yearly contribution of 35$ to Eclipse. And that is even though my team, and countless of other teams at Oracle, have contributed to various Eclipse projects over the years. And, no, Eclipse does not provide me support for it.
Oracle gives away countless of highly regarded technologies and starts releasing free OpenJDK builds. Parts of the Java community throws a fit.
Lets be fair, Oracle did well by contributing several features/technologies to OpenJDK. And that is great, it puts OpenJDK on par with what developers have come to expect from the free side of the past OracleJDK. But, it is the way they made notice of the change that is a little slimy. In that bright yellow box they could have easily said that “OracleJDK was no longer free for production use; Please review terms for details” and give a link to OpenJDK for those that really don’t want to pay Oracle for production use.
The problem isn’t that Oracle is now charging for use in production, it is that the notification isn’t clear _enough_ and the fear is that some devops team that isn’t aware of the change will download and install the new JDK in production environments as part of a routine test/upgrade plan; and subsequently Oracle, with a team of well funded lawyers, will suddenly pop up with a demand for payment which can not be avoided by simply rolling back to the previous JDK because there is no leeway given in the terms. And the terms seem precisely written for this sort of surprise tactic.
Well, personally I think the bright yellow box is rather clear. If Oracle worded it differently, I think more people would have (sometimes deliberately) misunderstood it as “Oracle is now charging for Java”, rather than “Oracle is now providing a totally free Java”. Which seems to be happening anyways, so I don’t know. Also, Oracle, like all large companies, is a pretty thankful target. If Oracle doesn’t use precise language (lawyerese), it usually ends badly.
Knowing some of the people behind making all of this goodness happening, I am 100% sure there is no sneaky intent behind it.
“pretty much all of the closed source”: so why didn’t they open sourced WebStart too?
I would guess because it was already removed in the release where all this work was targeted. I would also guess that there is little interest for Oracle to pay the cost for maintaining WebStart and keeping it secure; I’d imagine many of the security bugs end up being related to that functionality. Nowadays, with the ability to jlink together, and embed, your own custom runtimes, I would imagine the interest has decreased even more. Applets aren’t that hot either these days. 😉 And since everyone wants Java for free, I can’t imagine the resources available growing anytime soon. That said, this is all pure speculation from my point, and the answer is that I really don’t know.
Everything sound good for now, but what how will it look by version 15 or 20? Who is going to keep up with who? Is oracle going to implement everything new in OpenJDK? Is OpenJDK going to implement everything new in Oracle Java? If there is not just one in control, things is going to diverge eventually.
To be fair, most things have already been developed in the Open JDK repos up until now. And from now on pretty much everything is. So, even less risk for divergence…
I suggest you never open an Oracle account with your work email.
Or, you know, use Oracle’s OpenJDK builds if you don’t want any support or don’t want to support the evolution of Java, or use the Oracle JDK builds if you do.
Hi! Nice article from a different point of view. In the comments section you mentioned “the ability to jlink together, and embed, your own custom runtimes” as an alternative to WebStart, removed from Java 11. However, IMHO there is a big difference. WebStart let you distribute your application, and just your application, relying on the users to have a JRE. They may use such a JRE for running your application, or just for personal purposes. In contrast, the jlink tool and other packaging options make you embed some parts of the JRE in the artifact you distribute. The focus has clearly moved from the consumer to the producer, making it easier for Oracle to deal with licensing and charging. In the end, the feeling is that it all boils down to a matter of money (which is quite fair, as you pointed). A very controversial topic.
Java + Spring looks sexy and tempting.
Then you have to deal with oracle and the licensing.
In 2018/2019, I’m starting a new project for a company.
The last two API’s I build were using Node+Typescript.
Next project starts next week and will probably be Node+Typescript.
Not quite sure how to respond to this. Use the tools you feel comfortable with. But licensing is not really an issue anymore. There is an Oracle built _free_ version of Java available now. Licensed under GPL + CPE. And even better, there are plenty of other vendors building the same thing, so if you don’t want to support the Java development, just pick one you’re comfortable with. And even better, most of the commercial features have been added to the open source, which makes OpenJDK and Oracle JDK pretty much the same, aside from the license. Personally I find nodejs to be severely limiting, and many shops with performance and serviceability needs eventually become Java-shops. That said, if your code doesn’t actually need to do anything but act like glue to other systems, why not. Again, use whatever you are most comfortable with and which fulfills your non-functional demands. But to say that you need to deal with Oracle and licensing when you choose Java is simply not true.
*EVIL ORACLE STOP TRYING TO MAKE MONEY WITH JDK!*
At first I feel uncomfortable with the yellow notice but after reading a couple of blogs I see no problem on Oracle changing the license of the JDK but besides the link to the license they should also simply say: “hey guys, Oracle JDK is free for development but you have to pay for production use”.
We are developers no lawyers!
[…] for a counterpoint, you can check out Marcus's great summary of why the underlying changes here are actually good […]