Hier zijn 5 dingen die je moet weten over Java 9 SE.

1. Rolling releases

Vanaf nu volgt er elke zes maanden een nieuwe versie, in plaats van elke paar jaar. Ook volgen er OpenJDK-binary's voor grote Linux-versies, macOS en 64-bit Windows. Er komt een langetermijnstabiliteitsversie (LTS) die elke drie jaar verschijnt met daarin alle nieuwe features en fixes van de vorige versies sinds de laatste LTS. De eerste LTS verschijnt in september 2018.

2. JDK gaat open source

De JDK wordt open source en krijgt als licentie de GPL. Deze zet moet het makkelijker maken voor allerlei ontwikkelaars om Java te gebruiken in hun applicaties.

3. Geen langetermijnondersteuning

Het nieuwe releaseplan voor de standaardversie van Java betekent dat JDK 9 niet is ontworpen voor langetermijnondersteuning. Ondanks dat denkt Oracle dat ontwikkelaars hem wel willen hebben vanwege diens nieuwe features. Het bedrijf zegt ook dat het ondersteuningsgebrek niet anders is dan bij de vorige cycli van grote releases.

Dat is technisch gezien waar, omdat de nieuwe LTS die onlangs werd aangekondigd van toepassing is ná Java 9, maar het nieuwe schema waarin er twee keer per jaar een feature-upgrade volgt begint met Java 9 en daarmee zou het logisch zijn om deze basisversie langetermijnondersteuning te geven.

4. Toch modulariteit

Een controversiële maar belangrijke feature van Java 9 is het Java Platform Module System. Een eerdere stemming van de Java-community leidde tot het afkeuren van deze wijziging, maar vorige week werd hij unaniem (24 stemmen voor, 0 tegen) aangenomen door het Java Community Process Executive Committee. Daarmee haalt modulariteit de deadline van 21 september.

Project Jigsaw is bedoeld om de schaalbaarheid en security van Java te vergroten. Het oorspronkelijke plan was om het uit te brengen in Java 8 in 2014, maar het blijkt complexer te zijn dan van tevoren gedacht. Het idee van modulariteit is dat specifieke delen van de JDK kunnen worden gecompileerd at runtime.

Oracle's Mark Reinhold denkt dat dit een fundamentele verandering is voor het platform, hoewel Java-analisten denken dat het niet betekent dat Java-ontwikkelaars hun manier van programmeren aanpassen. Of het nu nuttig blijkt voor ontwikkelaars of niet, vanaf Java 9 kunnen we het in actie zien.

5. Nieuwe mogelijkheden

Maar er is meer dan alleen modulariteit. Ahead-of-time compilatie, hoewel het nu nog experimenteel is, moet de opstarttijden van applicaties verkorten. De REPL - via jShell - geeft een commandline-tool om declarations onder de loep te nemen en een API zodat andere applicaties deze functionaliteit kunnen gebruiken.

De client-API HTTP/2 voor Java 9 moet de HttpURLConnection-API vervangen en helpen met de upgrades van HTTP en WebSocket. De bestaande API daarvoor heeft meerdere problemen en niet in de minste plaats dat hij moeilijk te gebruiken en te onderhouden is.

Unified JVM Logging is een uniform logsysteem voor componenten van de JVM, geeft commandline-opties voor loggen en helpt met het vinden van de oorzaak van prestatieproblemen of crashes. Ook is er een nieuwe manier van het bepalen van de versiestring, met een schema om eenvoudig belangrijke, kleine en security-updates van elkaar te onderscheiden.