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

As someone who works at Oracle on the JDK (i.e. OpenJDK), I’d like to point out a couple of things, as the interviewee was someone who directly benefits from any fear, uncertainty and doubt regarding Java (but this is not an official comment, and I speak only for myself):

* Under the old BCL license the Oracle JDK was a mix of free and commercial features. Using the commercial features required explicitly turning them on with the flag `-XX:+UnlockCommercialFeatures`. You could not use them accidentally. Current JDKs no longer contain any commercial features, as explained below.

* Starting with JDK 11, Oracle has completed open sourcing the JDK[1], which no longer contains any commercial features. Rather than a mixed free/commercial license, Oracle now offers the same software under two different licenses, the commercial OTN lincense, intended for those who wish to but a support subscription from Oracle, and a free and open-source license, for those who don't[2]. The commercial license download page[3] clearly states the different options:

Oracle Customers and ISVs targeting Oracle LTS releases: Oracle JDK is Oracle's supported Java SE version for customers and for developing, testing, prototyping or demonstrating your Java applications.

End users and developers looking for free JDK versions: Oracle OpenJDK offers the same features and performance as Oracle JDK under the GPL license (with the non-viral "Classpath Exception")

The page also links to the free option. The particular commercial JDK download page[4] also contains a big bright warning and links to the downlad page for the free license.

* That Oracle now only offers six months of free support (as oppsoed to before) is misleading. For at least the past seven years, Java had a major release every 3 or so years, and "update releases" (containing substantial new features, but no language or API changes) every six months, plus quarterly security and bug fixes[5]. The releases were also not supported for more than six months, and to be up to date on security, one was always required to upgrade to the semi-annual update releases. What changed recently, due to community demand, is how the features are distributed among the releases. There are no more major Java releases. The last one (ever) was JDK 9. Starting with JDK 10, the semi-annual releases are not major releases but "feature releases," that are allowed to contain API and language changes, but are small, so that instead of a major upgrade every three years, the upgrade process is more gradual (e.g. compare JDK 9, the last major release, with JDK 11, a feature release[6]). The feature releases are therefore somewhere between a major release and an update release but much closer to the latter. While major releases were supported for a number of years and the feature releases only for six months, the feature relases are by no stretch of the imagination major releases.

* Similarly sized runtimes/languages -- Apple's Swift/iOS, Google's Android and Microsoft's .NET -- are all part of ecosystems entirely or largely under the control of the companies owning the projects, and that generate billions of dollars annually, and so fund the development of the platform. Oracle has no control over the Java ecosystem, and so must fund the development of OpenJDK somehow. This is now done by offering long-term support for some of the feature releases, for companies that don't wish to upgrade to every feature release (in the past the funding came partly through the commercial features, which have now all been open sourced, and the annoying search toolbar that came with the JRE, which is gone now, too).

* Oracle employs hundreds of full-time developers who manage the OpenJDK project and contribute the lion's share of OpenJDK development[7]. While Oracle developers will continue to contribute most of the work, including security updates to current OpenJDK versions, they will not commit to backporting those contributions to old feature releases via OpenJDK's "JDK update" projects. Other companies have said they will do that work, so that there will likely be OpenJDK update releases for some feature releases, probably those that correspond to Oracle's LTS versions. Oracle encourages other members of the OpenJDK community to contribute even more.

[1] https://blogs.oracle.com/java-platform-group/oracle-jdk-rele...

[2] http://jdk.java.net/

[3] https://www.oracle.com/technetwork/java/javase/downloads/ind...

[4] https://www.oracle.com/technetwork/java/javase/downloads/jdk...

[5] https://java.com/en/download/faq/release_dates.xml

[6] https://openjdk.java.net/projects/jdk9/ vs. https://openjdk.java.net/projects/jdk/11/

[7] https://blogs.oracle.com/java-platform-group/building-jdk-11...




Wow, so with Java, rather than developing software... I can spend my time reading through piles of legalese, trying to figure out which incantation of vague licensing/use language I’m beholden to.


The JDK is under the same license as Linux, so however closely you pay attention to the Linux legalese, that's as much attention you need to pay to Java's.


All JDKs are GPL?


All JDKs built from the OpenJDK project have the same license as the OpenJDK project, which is GPLv2 with the Classpath Exception (that means the license does not infect Java programs running on top of the JDK).

http://openjdk.java.net/legal/gplv2+ce.html

(The same JDK is also offered by Oracle under a commercial license for those who wish to buy a support subscription from Oracle, and other companies license the code to make their own commerical JDKs, e.g. Azul's Zing).


Sounds...complicated.


> As someone who works at Oracle ...

Ahhh. Your other responses were so positive and promoting of Oracle, I nearly accused you of working for them.

Turns out you really do.


You should consider saving this comment so that it can be kept added to other similar article's that come out every few months.




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

Search: