Wat kunnen we verwachten van Java 18. Java 18 komt pas in maart 2022 en heeft al verschillende schetsen voorgesteld van een preview van record patterns en arraypatterns en om UTF-8 als standaardtekenset te gebruiken. We moeten denk ik nog 7 maanden wachten op Java 18 maar het begint al serieus vorm te krijgen, met tot nu toe twee functievoorstellen: record- en arraypatterns en charactersets.
Terwijl de OpenJDK-pagina voor Java Development Kit (JDK) 18 geen officiële functies vermeldt, citeert de JEP-index (JDK Enhancement Proposal) van Java-technologieën twee functies die voor Java 18 worden voorgesteld:
Een preview van recordpatronen en arraypatronen, waarin de Java-taal zou worden verbeterd met recordpatronen, om recordwaarden te deconstrueren, en arraypatronen om arraywaarden te deconstrueren. Recordpatterns, arraypatterns en typepatterns, die in JDK 16 voorkomen, kunnen worden genest om de expressiviteit en bruikbaarheid van patroonovereenkomst aanzienlijk te verbeteren. Doelen van het voorstel zijn onder meer het uitbreiden van patroonovereenkomst om meer geavanceerde, samenstelbare gegevensquery’s uit te drukken, en het niet veranderen van de syntaxis of semantiek van typepatronen.
UTF-8 specificeren als de standaardtekenset van de standaard Java-API’s.
UTF-8 is een variabele-brede tekencodering voor elektronische communicatie en wordt beschouwd als de standaardtekenset van het web. Charset is tekencodering die alle tekens op internet kan coderen. Door deze wijziging gedragen API’s die afhankelijk zijn van de standaardtekenset zich consistent in alle implementaties, besturingssystemen, landinstellingen en configuraties. Het voorstel is niet bedoeld om nieuwe Java-standaard of JDK-specifieke API’s te definiëren. Door te specificeren dat UTF-8 de standaardtekenset is, bestaat het risico dat toepassingen zich niet correct gedragen bij het verwerken van gegevens die zijn geproduceerd wanneer de nieuwe standaardtekenset niet gespecificeerd is. Dit risico is niet nieuw. Maar toepassingen in veel omgevingen kunnen een zeer laag risico van UTF-8 verwachten. MacOS heeft bijvoorbeeld UTF-8 als standaardtekenset voor verschillende releases, behalve wanneer geconfigureerd om de Posix C-landinstelling te gebruiken. Veel Linux-distributies gebruiken ook UTF-8.
Volgens de standaard Java-releasecadans van zes maanden, zou JDK 18 in maart 2022 moeten uitkomen. Andere potentiële functies die gericht zijn op JDK 18 zijn onder meer pattern matching voor switch expressions, waarvan een voorbeeld kan worden bekeken in de komende JDK 17-release, evenals een vector-API en een vreemde functie en memory-API, die zich beide in een incubatorfase in JDK 17 bevinden.