Witold Kepinski - 19 september 2023

Oracle brengt Java 21 uit en verlengt de ondersteuningsperiode

Oracle heeft de beschikbaarheid van Java 21 aangekondigd, de nieuwste versie van 's werelds meest gebruikte programmeertaal en ontwikkelingsplatform. Java 21 (Oracle JDK 21) biedt duizenden verbeteringen op het gebied van prestaties, stabiliteit en beveiliging, waaronder een groot aantal platformverbeteringen waarmee ontwikkelaars de productiviteit kunnen verbeteren en innovatie en groei in hun organisaties kunnen stimuleren.

Oracle brengt Java 21 uit en verlengt de ondersteuningsperiode image

Oracle presenteert de nieuwste functies van Java 21 op Oracle CloudWorld, dat 18-21 september 2023 plaatsvindt in Las Vegas. "Java is nog steeds de populairste taal en platform voor het ontwikkelen van robuuste, schaalbare en veilige applicaties gebruikt door organisaties en miljoenen mensen wereldwijd", aldus Georges Saab, Senior Vice President Oracle Java Platform en voorzitter van de raad van bestuur van OpenJDK. "Met de nieuwe verbeteringen in Java 21 kunnen ontwikkelaars nog sneller betere applicaties bouwen dan voorheen. Bovendien zal commerciële ondersteuning ten minste acht jaar beschikbaar zijn zodat klanten in hun eigen tempo kunnen migreren." De nieuwste Java Development Kit (JDK) biedt updates en verbeteringen met 15 JDK Enhancement Proposals (JEP's). JDK 21 biedt taalverbeteringen van OpenJDK-project Amber (stringsjablonen, recordpatronen, patroonmatching voor switch, onbenoemde patronen en variabelen, en onbenoemde klassen en hoofdmethoden voor instances); verbeteringen van Project Panama (API voor externe functies en geheugen en Vector-API); functies afkomstig van Project Loom (virtuele threads, 'scoped' waarden en gestructureerde concurrency); prestatie-updates (Generational ZGC); en onderhouds- en uitfaseringssfuncties (uitfaseren van de 32-bits x86-poort voor verwijdering, en voorbereiden op het niet toestaan van dynamisch laden van agents). "Ondanks zoveel talen die in omloop zijn, is Java nog steeds overal", aldus Stephen O'Grady, hoofdanalist en medeoprichter, RedMonk. "Terwijl de wereld zich verder ontwikkelt, zal Java door zijn aanpassingsvermogen een belangrijke rol blijven spelen en waarde blijven bieden aan ontwikkelaars." Oracle biedt langdurige ondersteuning voor Java 21 voor minstens acht jaar. Deze langere ondersteuningsperiode geeft organisaties de flexibiliteit om applicaties langer in productie te houden met minimaal onderhoud, en uiteindelijk te migreren op hun eigen voorwaarden. Op basis van feedback van klanten en gebruik in het Java-ecosysteem heeft Oracle tevens aangekondigd dat de ondersteuningsperiode voor Java 11 ten minste tot januari 2032 zal worden verlengd, met dus minstens acht jaar langere ondersteuning en updates van Oracle. Belangrijke updates in Java 21 zijn: Functies Project Loom

  • JEP 444: Virtuele threads: 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 en ze te schalen, helpen virtuele threads de applicatieontwikkeling te versnellen.
  • JEP 446: Scoped waarden (preview): hiermee wordt het delen van onveranderbare gegevens binnen en tussen threads mogelijk. Dit helpt het gebruiksgemak, de begrijpelijkheid, robuustheid en de prestaties van ontwikkelingsprojecten te verbeteren.
  • JEP 453: Gestructureerde concurrency (preview): vereenvoudigt simultane programmering door introductie van een API voor gestructureerde concurrency, waarmee een stijl van simultaan programmeren wordt bevorderd die veelvoorkomende risico's als gevolg van annulerings- en afsluitingsprocessen (zoals niet-afgesloten threads en vertraagde annulering) kan helpen wegnemen, en de waarneembaarheid van simultane code verbetert. Zo kunnen ontwikkelaars foutafhandeling en -annulering stroomlijnen, en de betrouwbaarheid en waarneembaarheid verbeteren.

Updates op het gebied van prestaties

  • JEP 439: Generational ZGC: verbetert de applicatieprestaties door de Z Garbage Collector (ZGC) uit te breiden zodat afzonderlijke generaties jonge en oude objecten worden behouden. Generational ZGC helpt de productiviteit van ontwikkelaars te verbeteren door de overhead aan vereist heapgeheugen en CPU-gebruik voor garbage collection voor applicaties te verlagen, en het risico van toewijzingspauzering te verkleinen.

Updates en verbeteringen Java-taal

  • JEP 430: Stringsjablonen (preview): vereenvoudigt het ontwikkelen van Java-programma's door het eenvoudiger te maken om strings uit te drukken die tijdens de runtime berekende waarden bevatten, en verbetert de beveiliging van programma's die strings samenstellen op basis van door de gebruiker opgegeven waarden en deze vervolgens doorgeven aan andere systemen. Hiernaast is de leesbaarheid van uitdrukkingen waarin tekst en uitdrukkingen worden gecombineerd verbeterd, en kunnen niet-tekenreekswaarden die worden berekend op basis van letterlijke tekst en ingesloten uitdrukkingen worden geproduceerd zonder dat deze een tussenliggende stringrepresentatie hoeven te gebruiken. Door de Java-taal leesbaarder, eenvoudiger te schrijven en gemakkelijker te onderhouden te maken, kunnen ontwikkelaars hun productiviteit verhogen.
  • JEP 440:Recordpatronen (derde preview): verbetert de Java-taal door patroonmatching uit te breiden naar destructurerings-instances van recordklassen en door het toevoegen van geneste patronen mogelijk te maken. Ontwikkelaars kunnen zo patroonmatching uitbreiden naar meer geavanceerde en eenvoudiger samen te stellen gegevensquery's, waardoor de productiviteit wordt verhoogd.
  • JEP 441: Patroonmatching voor switch: hiermee wordt de uitdrukbaarheid en toepasbaarheid van switch-uitdrukkingen en -statements uitgebreid door patronen toe te staan in case-labels. Bovendien wordt de veiligheid van switch-statements verhoogd door te vereisen dat patroonswitch-statements alle mogelijke invoerwaarden omvatten en kunnen alle bestaande switch-uitdrukkingen en -statements nog steeds zonder wijzigingen worden gecompileerd en met identieke semantiek worden uitgevoerd. Zo kunnen door de Java-taal semantischer te maken, complexe gegevensgeoriënteerde query's beknopt en veilig worden uitgedrukt, zodat ontwikkelaars hun projecten beter kunnen stroomlijnen en de betrouwbaarheid ervan kunnen vergroten.
  • JEP 443: Onbenoemde patronen en variabelen (preview): verbetert de Java-taal door het mogelijk te maken onbenoemde patronen te koppelen aan een record-component zonder de naam of het type van de component te benoemen, evenals onbenoemde variabelen die kunnen worden geïnitialiseerd maar niet kunnen worden gebruikt. Dit helpt het ontwikkelingsproces te vereenvoudigen door de leesbaarheid van recordpatronen te verhogen en de onderhoudbaarheid te verbeteren van alle code.
  • JEP 445: Onbenoemde klassen en hoofdmethoden voor instances (preview): helpt de Java-taal te vereenvoudigen en de toegang ertoe te verbeteren zodat docenten programmeerconcepten geleidelijk kunnen introduceren. Doordat introductie van een apart Java-beginnersdialect en een aparte beginners-toolchain niet nodig zijn, kunnen studentenprogramma's worden gecompileerd en uitgevoerd met dezelfde tools die elk Java-programma compileren en uitvoeren. Dit helpt studenten om op een beknopte manier basisprogramma's te schrijven en hun code correct uit te breiden naarmate hun vaardigheden toenemen. Dit helpt de productiviteit van studenten bij ontwikkelingsactiviteiten te verbeteren, door hen in staat te stellen hun eerste programma's te schijven zonder taalfuncties bedoeld voor grote programma's te hoeven begrijpen.

Previewfuncties Project Panama

  • JEP 434: API voor externe functies en geheugen (derde preview): introduceert een API waardoor Java-programma's kunnen 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 via de nieuwe API native bibliotheken aanroepen en native gegevens verwerken zonder gebruik te hoeven maken van de Java Native Interface-API. Dit verbetert gebruiksgemak, flexibiliteit, prestaties en veiligheid voor ontwikkelaars.
  • JEP 448: Vector-API (zesde incubator): introduceert een API waarmee vectorberekeningen worden uitgedrukt die tijdens de runtime betrouwbaar worden gecompileerd tot vectorinstructies op ondersteunde CPU-architecturen. Dit helpt ontwikkelaars de prestaties van hun projecten te verbeteren door hen toegang te geven tot een API die in staat is om duidelijk en beknopt een breed scala aan vectorberekeningen uit te drukken.

De Java 21-release is het resultaat van een uitgebreide samenwerking tussen engineers van Oracle en leden van de wereldwijde Java-ontwikkelaarscommunity via OpenJDK en het Java Community Process (JCP). Naast de nieuwe verbeteringen wordt Java 21 ondersteund door Java Management Service (JMS), een native service van Oracle Cloud Infrastructure (OCI). Deze service biedt één console en dashboard voor het beheren van Java-runtime-versies en -applicaties, lokaal of in elke willekeurige cloud. Lees de technische blogpost over Java 21 voor meer informatie over de functies in Java 21. Ondersteuning van het wereldwijde Java-ecosysteem met innovatie in de cloudJava levert optimale prestaties, efficiëntie en innovatie bij implementatie in de cloud op OCI, met OCI als eerste hyperscale-cloud die Java 21 ondersteunt. Klanten profiteren van diverse organisatiebrede voordelen door Java uit te voeren op OCI, waaronder lagere operationele kosten, betere prestaties zonder extra kosten en de mogelijkheid om bestaande Java-applicaties te moderniseren of nieuwe applicaties te bouwen met de nieuwste functies en mogelijkheden. Oracle Java SE, Oracle GraalVM en het Java SE Subscription Enterprise Performance Pack zijn gratis beschikbaar op OCI, waardoor ontwikkelaars applicaties kunnen maken en implementeren die sneller, beter en met geoptimaliseerde kostenprestaties worden uitgevoerd. Het Oracle Java Universal SE-abonnement is een pay-as-you-go-product dat klanten de allerbeste ondersteuning biedt, waaronder triageondersteuning voor hun volledige Java-portfolio, recht op GraalVM, het Java SE Subscription Enterprise Performance Pack, toegang tot de geavanceerde functies van de Java Management Service en de flexibiliteit om te upgraden in het tempo van hun organisatie. Hierdoor kunnen IT-organisaties de complexiteit beheren, kosten beheersen en beveiligingsrisico's verkleinen. Java 21 omarmd door de wereldwijde Java-community"Java 21 is een van de belangrijkste releases van Java, omdat virtuele threads van invloed zijn op hoe we asynchrone applicaties ontwikkelen en implementeren, van microservices tot bedrijfsapplicaties", aldus Dr. Venkat Subramaniam, oprichter, Agile Developer, Inc. "Met weinig coderingsinspanningen kunnen de applicaties van ontwikkelaars worden geschaald voor ondersteuning van een groot aantal IO-bewerkingen en serviceaanroepen zonder dat onnodig veel resources worden vereist. De grotere schaal tegen lagere kosten is een groot pluspunt voor organisaties die vertrouwen op Java voor hun productie." "Ik ben enthousiast over de previewfunctie 'Onbenoemde klassen en hoofdmethoden voor instances' in Java 21", aldus Barry Burd, professor, Drew University. "In mijn introductiecursussen kunnen studenten nu snel en gemakkelijk starten zonder verwarring of fanfare. In mijn boeken kan ik volledige voorbeelden geven zonder standaardtekstcode. En het beste is de manier waarop deze nieuwe functies perfect de overkoepelende ontwerpfilosofie van Java onderstrepen. Er zijn nu onbenoemde klassen naast de al bestaande onbenoemde pakketten en modules. En het is ook nog eens achterwaarts compatibel." "De functie voor verzameling in vaste volgorde in Java 21 is een geweldige toevoeging voor de ontwikkelaarscommunity. Ontwikkelaars hoeven zich geen zorgen meer te maken over de gegevensverzamelvolgorde in een JUnit-test, waardoor uitvoering mislukt op de buildserver, bij een upgrade of elders", aldus Jeanne Boyarsky, Java Champion. "Met verzamelingen in vaste volgorde wordt deze volgorde gedefinieerd, dus geen verrassingen meer." Dev.java uitgebreid met Java Playground en communitybijdragenDev.java is de officiële site voor Java-ontwikkelaars, en vandaag kondigt Oracle aan dat daaraan een Java Playground is toegevoegd, evenals nieuwe communitybijdragen aan de contentcatalogus. De Java Playground is een online testomgeving waarmee gebruikers kleine Java-codefragmenten kunnen typen en uitvoeren zonder dat daarvoor een lokale runtime of IDE nodig is. Ontwikkelaars kunnen nu direct nieuwe functies uitproberen met Java 21, vanuit een browser en ondersteund door OCI. Dev.java heeft honderden hoogwaardige Java-tutorials voor alle niveaus, gemaakt door het Java-team van Oracle. Dev.java accepteert nu ook bijdragen van de community via een nieuwe openbare repository binnen de Java GitHub-organisatie. Ontwikkelaars kunnen nu al communitybijdragen vinden van inspirerende personen uit de branche zoals Dr. Venkat Subramaniam, Cay Horstmann, Jeanne Boyarsky, Heinz Kabutz, Paul Anderson en Gail Anderson.

Nutanix BW start 6 mei - 20 mei BW Dutch IT Partner Day tm 11-06-2024
Nutanix BN start 6 mei - 20 mei