Oracle heeft Java 25 uitgebracht, een versie die Long-Term Support (LTS) krijgt. Met 18 JDK Enhancement Proposals (JEP’s) wil het de AI-mogelijkheden van de programmeertaal flink verbeteren. Daarnaast zet het verdere stappen richting ondersteuning voor Post-Quantum Cryptography (PQC).
Een van de grootste ergernissen van Java was altijd de hoeveelheid code die nodig was om zelfs maar “Hello World” te schrijven. Dat is een belemmering voor nieuwe gebruikers. Daar wil Oracle nu iets aan gaan doen. Paving the on-ramp krijgt dan ook veel aandacht, ook in de pre-briefing die we hebben bijgewoond over Java 25. Een goed voorbeeld hiervan is JEP 512 (Compact Source Files and Instance Main Methods). Nieuwe gebruikers kunnen kunnen hun eerste programma’s schrijven zonder dat ze uitgebreide kennis van de taal nodig hebben. Ook systeem- en IT-admins moeten op deze manier snel kleine programma’s kunnen bouwen.
AI staat centraal in Java 25
Java viert dit jaar zijn dertigste verjaardag, en Oracle gebruikt die mijlpaal om te laten zien dat de programmeertaal nog altijd meegroeit met de tijd. In Java 25 is er vanzelfsprekend veel aandacht voor AI. Een goed voorbeeld hiervan is de Vector API (JEP 508). Deze zit inmiddels in zijn tiende incubatie-versie. De Vector API helpt ontwikkelaars om vectorberekeningen uit te voeren die veel gebruikt worden in AI-inferencing en compute-scenario’s.
Naast de Vector API zijn er nog enkele JEP’s die met AI te maken hebben. JEP 507 (Primitive Types in Patterns, instanceof, and switchDaarnaast krijgen primitive types in patronen, instanceof en switch) zit in de derde preview. Hiermee moet Java meer uniformiteit krijgen en expressiever (dus eenvoudiger te gebruiken) worden. Dat gaat volgens Oracle vooral helpen bij het integreren van AI-inferencing in applicaties. Ook JEP 511 (Module Import Declarations) speelt hier een rol in. Hiermee kunnen libraries eenvoudiger hergebruikt worden.
Verder zijn ook JEP 505 (Structured Concurrency) en JEP 506 (Scoped Values) van belang met het oog op AI. Met JEP 505 is het mogelijk om meerdere groepen taken in verschillende threads als een enkele unit te behandelen. Dat past goed bij het ontwikkelen van AI-applicaties. JEP 506 maakt het mogelijk om immutable data te delen binnen en tussen threads.
Prestaties en monitoring krijgen boost
De performance-updates in Java 25 zijn minder opvallend, maar wel belangrijk voor bedrijven. JEP 519 (Compact Object Headers) verkleint object headers tot 64 bits, wat de memory footprint reduceert. Voor applicaties die veel objecten gebruiken kan dat een merkbaar verschil maken.
Daarnaast krijgen meerdere JDK Flight Recorder (JFR) JEP’s nieuwe (soms experimentele) features voor betere monitoring. JEP 509 (JFR CPU-Time Profiling), JEP 518 (JFR Cooperative Sampling) en JEP 520 (JFR Method Timing & Tracing) moeten het makkelijker maken om performance-problemen op te sporen. Vooral in cloudomgevingen waar resources duur zijn, kan dit een groot verschil maken.
Post-quantum cryptografie als voorbereiding
AI mag dan nog altijd de boventoon voeren in nieuwe versies van Java, er is ook aandacht voor security. Java 25 introduceert ondersteuning voor post-quantum cryptografie via JEP 470 (PEM Encodings of Cryptographic Objects) en JEP 510 (Key Derivation Function API). Deze voorbereidingen zijn belangrijk, ook al is het nog onduidelijk wanneer quantumcomputers daadwerkelijk een bedreiging worden.
Bij de lancering van Java 24, eerder dit jaar, ging Donald Smith, VP Product Management ook al eens in op de overstap naar PQC binnen Java. Hier is wat we er toen over meldden:
“Tijdens een briefing over Java 24 die we bijwoonden, ging Donald Smith, VP Product Management bij Oracle, specifiek in op de voorbereidingen voor post-quantum cryptografie. “Het is niet duidelijk wanneer quantumcomputers er zullen zijn, maar we moeten wel plannen maken om de traditionele methodes af te bouwen”, geeft hij aan. Op zich is dit niet nieuw, vervolgt hij. Hij haalt hierbij de introductie van TLS 1.3 aan. Dat is in 2018 geïntroduceerd, terwijl Java 8 al in 2014 is gelanceerd. Het was echter wel mogelijk om het er achteraf in te integreren. Oracle wil hetzelfde doen met ondersteuning voor post-quantum cryptografie.”
Bovenstaande werd ook tijdens de briefing over Java 25 weer herhaald.
Java 25 is een LTS-versie
De nieuwe features en updates aan de verschillende JEP’s zijn voor ontwikkelaars ongetwijfeld de belangrijkste onderdelen van Java 25. Voor organisaties die Java gebruiken als geheel is het feit dat Java 25 een LTS-release is echter ook niet onbelangrijk. Java 25 krijgt acht jaar lang ondersteuning. In een tijd waarin veel Oracle Java-klanten overwegen te vertrekken vanwege gewijzigde licentietarieven, biedt die stabiliteit een reden om toch te blijven. Oracle belooft kwartaalupdates tot september 2028 onder de No-Fee Terms and Conditions (NFTC). Updates na die datum vallen onder de betaalde Java SE OTN-licentie tot minimaal september 2033.