Oracle brengt Java 20 uit met ‘duizenden verbeteringen’
Oracle heeft een nieuwe versie aangekondigd van Java, een van ‘s werelds meest gebruikte programmeertalen en ontwikkelingsplatformen. Java 20 (Oracle JDK 20) biedt volgens de ontwikkelaar ‘duizenden verbeteringen’ op het gebied van prestaties, stabiliteit en beveiliging.
De nieuwste functies van Java 20 worden dezer dagen gepresenteerd op het Oracle DevLive Level Up-eventement dat wordt gehouden van 20-23 maart in Redwood Shores, Verenigde Staten, en dat ook online is te volgen.
De nieuwste Java Development Kit (JDK) omvat updates en verbeteringen met zeven zogeheten JDK Enhancement Proposals (JEP’s). De meeste van deze updates zijn follow-up’s die de functionaliteit verbeteren die in eerdere releases werd geïntroduceerd.
Amber, Panama en Loom
JDK 20 biedt daarnaast onder meer taalverbeteringen uit het OpenJDK-project Amber (record-patronen en patroonmatching voor switch), verbeteringen uit het OpenJDK-project Panama (voor het verbinden van Java Virtual Machine) en functies afkomstig uit Project Loom (thread-scoped waarden, virtuele threads en gestructureerde concurrency). Die moeten ervoor zorgen dat het schrijven, onderhouden en observeren van simultaan uitgevoerde applicaties met hoge doorvoer beter worden gestroomlijnd.
‘Java helpt ontwikkelaars al meer dan 25 jaar om de volgende generatie robuuste, schaalbare en veilige applicaties te ontwerpen en te bouwen’, aldus Georges Saab, Senior Vice President of Development (Java Platform) en tevens voorzitter van Oracles OpenJDK Governing Board. ‘De innovatieve nieuwe verbeteringen in Java 20 weerspiegelen de visie en unieke inspanningen die de wereldwijde Java-community over de jaren heeft opgeleverd.’
Oracle brengt elke zes maanden nieuwe Java-functies uit via een vast releaseschema.
De belangrijkste updates in Java 20
Taalupdates en -verbeteringen:
· JEP 432: Record-patronen (tweede preview): een verbetering in de Java-taal waarbijgebruikers wordt toegestaan record- en typepatronen te nesten om een krachtige, declaratieve en zelf samen te stellen vorm van gegevensnavigatie en -verwerking mogelijk te maken. De productiviteit van ontwikkelaars wordt verhoogd door patroonmatching mogelijk te maken voor meer geavanceerde en zelf samen te stellen gegevensquery’s.
· JEP 433: Patroonmatching voor switch (vierde preview): Door patroonmatching uit te breiden naar switch kan een expressie worden getest tegen een aantal patronen – elk met een specifieke actie – zodat complexe gegevensgeoriënteerde query’s beknopt en veilig kunnen worden uitgedrukt. Door de verbeterde uitdrukkingsmogelijkheden en toepasbaarheid van switch-expressies en -statements, wordt de productiviteit van ontwikkelaars verhoogd.
Preview-/incubatorfuncties Project Loom:
· JEP 429: Thread-scoped waarden (incubator): hiermee wordt het delen van niet-wijzigbare gegevens binnen en tussen threads mogelijk gemaakt, wat de voorkeur krijgt boven thread-lokale variabelen, met name bij het gebruik van grote aantallen virtuele threads. Dit verbetert het gebruiksgemak, de begrijpelijkheid, de robuustheid en prestaties.
· JEP 436: Virtuele threads (tweede preview): door de introductie van lichtgewicht virtuele threads op het Java-platform wordt het schrijven, onderhouden en observeren van simultaan uitgevoerde applicaties met hoge doorvoer aanzienlijk beter gestroomlijnd. Door ontwikkelaars in staat te stellen om met bestaande JDK-tools en -technieken eenvoudig problemen op te lossen, fouten op te sporen en profilering uit te voeren voor simultaan uitgevoerde applicaties, helpen virtuele threads de applicatieontwikkeling te versnellen.
· JEP 437: Gestructureerde concurrency (tweede incubator): vereenvoudigt het programmeren met meerdere threads door meerdere taken die in verschillende threads worden uitgevoerd als één werkeenheid te behandelen. Zo kunnen ontwikkelingsteams foutafhandeling en -annulering stroomlijnen, de betrouwbaarheid verbeteren en de waarneembaarheid verbeteren.
Previewfuncties Project Panama:
· JEP 434: API voor externe functie en geheugen (tweede preview):hiermee kunnen Java-programma’s samenwerken met code en gegevens buiten de Java-runtime. Door externe functies (d.w.z. code buiten de Java Virtual Machine [JVM]) efficiënt aan te roepen en door veilig toegang te krijgen tot extern geheugen (d.w.z. geheugen dat niet wordt beheerd door de JVM), kunnen Java-programma’s native bibliotheken aanroepen en native gegevens verwerken zonder gebruik te hoeven maken van de Java Native Interface-API. Dit verbetert het gebruiksgemak, de prestaties en veiligheid.
· JEP 438: Vector-API (vijfde incubator): hiermee worden vectorberekeningen uitgedrukt die tijdens de runtime betrouwbaar worden gecompileerd tot vectorinstructies op ondersteunde CPU-architecturen. Dit verhoogt de prestaties in vergelijking met equivalente scalaire berekeningen.
Fout opgemerkt of meer nieuws? Meld het hier