Java wordt commercieel

Inleiding

Ik hoor toch wat bezorgde stemmen omtrent de nieuwe release van Oracle Java 11. Java is immers sinds 2006/2007 vrij geweest dankzij velen hun inzet en niet op zijn minst die van James Gosling zelf. Nu lijkt het er dus inderdaad op dat Oracle in zekere zin deze ontwikkelingen terugdraait. Toch lijkt Oracle te zorgen voor een two-license model: OpenJDK, in feite het kleinere en lelijkere broertje van de JDK wordt verder uitgewerkt onder een GPL-licensie, en wordt zo goed als gelijkgesteld aan de commerciële JDK. Natuurlijk de zorg is dat een GPL-licensie een licensie-virus is, en dus verhindert dat code die met code onder deze licensie werkt, gesloten wordt. Is er dus nog toekomst voor commerciële applicaties onder java, zonder een commerciële licensie aan te schaffen?

OpenJDK

OpenJdkLogoEerst en vooral moet gesteld worden dat de veranderingen en het commercialiseren van de JDK al op til zijn sinds Java 9. Vanaf januari 2019 ondergaat Oracle JDK 8 immers een “End of Public updates” proces wat betekent dat er niet langer gratis updates zullen geboden worden voor commercieel gebruik. Echter sinds Java SE 9 voorziet Java in Oracle’s OpenJDK builds die vrij zijn voor commercieel gebruik.

OpenJDK heeft binnen Java altijd een beetje een nare bijsmaak gehad omdat Oracle’s JDK meer features, performanter en volgens velen stabieler was dan de OpenJDK. Echter heeft Oracle nu hard gewerkt om van OpenJDK een gelijkwaardige speler te maken als de Oracle JDK, zodat men bijna kan stellen dat het belangrijkste verschil de licensie is. Doordat Oracle zijn JDK nu commercieel maakt, wat betekent dat je het niet langer kan gebruiken in productie zonder Oracle vanaf dag één van zijn release te betalen (ontwikkeling en testen kunnen wel gratis) worden ontwikkelaars in de richting van OpenJDK geduwd, die de nieuwe standaard wordt onder een vrije licensie (GPL + CE)

De ontwikkelingscycli

Zowel voor Oracle’s JDK als OpenJDK zal er een ontwikkelingscyclus zijn van een nieuwe release elke zes maanden. We zien dat sinds Java 8 er al danig gewerkt is om op regelmatige tijdstippen in nieuwe releases te voorzien:

Versie Release date End of $free updates from oracle
Java 8 Maart 2014 Januari 2019 (voor commercieel gebruik)
Java 9 September 2017 Maart 2018
Java 10 Maart 2018 September 2018
Java 11 September 2018 Maart 2019 (misschien)
Java 12 Maart 2019 September 2019

Wat Oracle dus blijkbaar wil doen is zorgen voor langetermijnondersteuning die door klanten wordt betaald. De korte ontwikkelingscycli heeft vooral te maken met het opwaarderen van code geleverd door externe ontwikkelaars. Hier zie ik toch het probleem dat terwijl ik graag software zie vernieuwen (zoals Ubuntu vernieuwt zijn software ook ongeveer elke zes maanden) is dit voor ontwikkelingssoftware niet altijd handig. Je verwacht immers een stabiele basis om je code op te doen werken. Hiervoor kan de langetermijnondersteuning zeker van pas komen.

Keuzes

Dus vanaf Java 11 dien je de actieve keuze te maken. Oracle’s JDK 11 is niet langer vrij te gebruiken, al wordt het wel gratis ter download aangeboden, maar als je het in een commerciële applicatie wilt gebruiken dien je Oracle hiervoor te betalen. Of je gaat over naar OpenJDK die niet langer het lelijke, kleinere broertje is van Oracle’s JDK maar nu een volwaardig product, die buiten de licensie niet zo heel veel verschilt van Oracle’s JDK.

Je kan natuurlijk ook altijd bij Java 8 blijven, maar dus vanaf januari 2019 worden er  geen updates meer geleverd, wat vooral beveiligingsgewijs voor problemen zou kunnen zorgen.