Devoxx 2018: Java JDK – “Adapt or die”

inSystems future

Marc Reinhold, Oracle’s chief architect van de Java Platform Group, was op Devoxx keynote speaker, en gaf later op de dag ook nog een interessante meer gedetailleerde presentatie over de nabije toekomst van Java.

Adapt or die

In zijn keynote zette Reinhold het hoe en waarom uiteen van de laatste grote veranderingen in de Java JDK, te weten (1) het versnellen van de release cadens en (2) modularisatie van het platform.Marc Reinhold
Het waarom van deze grote verandering volgens Reinhold: “Adapt or die”. Alle toonaangevende concurrerende platforms hebben een hoge mate van flexibiliteit dankzij hun snelle release cadens, daarom kon Java hier niet achterblijven. Modularisatie was noodzakelijk omdat over de laatste jaren het deployment model in meerdere opzichten drastisch is veranderd, denk aan mobile apps, cloud omgevingen en containers.

Modularisatie

Hoe groot is nu de impact van de modularisatie in de praktijk? Geen paniek volgens Reinhold, maar er zijn uiteraard wel gevolgen waarop geacteerd moet worden. Als voorbeeld gaf hij het gebruik van JDK internals: vanaf versie 9 tot op zijn minst versie 11 zal dit leiden tot compilatieproblemen en runtime warnings, maar er komt een punt waarop e.e.a. in het geheel niet meer zal runnen. Ter ondersteuning van het analyseren van dependencies is in Java 9 de jdeps tool toegevoegd, waarbij het vrij eenvoudig wordt om gebruik van JDK internals te traceren en aan te passen. Dit zal de algemene strategie worden om de gevolgen van de modularisatieslag te ondervangen: er wordt genoeg tijd geboden om aanpassingen te doen en er worden tools beschikbaar gesteld om e.e.a. te vergemakkelijken.

New features Java 9 .. 12

In verband met de verhoogde release cadens gaf Reinhold een overzicht van de nieuw geïntroduceerde features in Java 9 t/m 12. Nieuw hierbij zijn de zgn. ‘preview’ features. Java CodeVoorbeelden hiervan zijn in JDK 12 de invoering van raw string literals (o.a. handig bij handhaven van indentatie in multiline strings of bij het omgaan met escapes in reguliere expressies) en een vernieuwing van de switch expressie. Beide zijn preview features in JDK 12, d.w.z. ze zijn default niet enabled, maar open voor review.
Zoals bij de meeste belanghebbenden inmiddels bekend zal zijn, wordt de nieuwe release cadens ieder half jaar. Reinhold benadrukte daarbij dat kritische patches en security updates in kwartaal-updates worden doorgevoerd en uiteraard ook in de LTS versies. De half-jaar releases zijn gratis voor gebruik, voor de LTS releases (3 jaar LTS) moet bij gebruik in productiesystemen betaald worden.

OpenJDK vs Oracle JDK

Reinhold zette ook nog e.e.a. uiteen over de ontwikkelingen omtrent OpenJDK versus Oracle JDK. Oracle JDK OpenJDKEen belangrijke stap die Oracle heeft gemaakt, is het open source maken van de zgn. ‘commercial features’. Consequentie hiervan is dat verschillende providers nu volledig wederzijds uitwisselbaar zijn. Zeer interessant was hierbij de aankondiging van James Gosling, die direct na de keynote van Marc Reinhold op het podium werd geroepen. James Gosling werkt tegenwoordig voor Amazon en had speciaal voor Devoxx de primeur bewaard dat Amazon zijn eigen OpenJDK distributie genaamd Amazon Coretto volledig gratis ter beschikbaar stelt als LTS versie (https://aws.amazon.com/blogs/opensource/amazon-corretto-no-cost-distribution-openJDK-long-term-support/).

Amazon Coretto

De Amazon distributie werkt op meerdere platformen (Linux, Windows, macOS, Docker) en is volgens Gosling extreem stabiel. Daarbij gaf Gosling ook nog aan dat we niet in termen van concurrentie moeten kijken naar deze ontwikkeling, maar dat vanuit Amazon vooral samenwerking met andere partijen voorop staat. Alle patches en updates zullen direct openlijk beschikbaar zijn voor derden.

Al met al, enerverende ontwikkelingen omtrent de Java JDK en een mooi aftrap van een geslaagde Devoxx 2018!