Oracle ha annunciato la disponibilità di Java 19, l'ultima versione del linguaggio di programmazione e della piattaforma di sviluppo numero uno al mondo. Java 19 (Oracle JDK 19) offre migliaia di miglioramenti in termini di prestazioni, stabilità e sicurezza, tra cui miglioramenti alla piattaforma che aiuteranno gli sviluppatori a migliorare la produttività e a guidare l'innovazione a livello aziendale. Oracle presenterà le ultime funzionalità di Java 19 a JavaOne 2022, che si terrà dal 17 al 20 ottobre a Las Vegas, e attraverso una trasmissione di keynote che andrà in onda su dev.java/il 20 settembre.

L'ultimo Java Development Kit (JDK) offre aggiornamenti e miglioramenti con sette JDK Enhancement Proposals (JEPs). La maggior parte di questi aggiornamenti sarà consegnata come anteprima di follow-up che migliora le funzionalità introdotte nelle versioni precedenti. JDK 19 offre miglioramenti linguistici dal progetto OpenJDK Amber (Record Patterns e Pattern Matching for Switch); miglioramenti di libreria per l'interoperabilità con codici non Java (Foreign Function and Memory API) e per sfruttare le istruzioni vettoriali (Vector API) dal progetto OpenJDK Panama; e le prime anteprime per il Progetto Loom (Virtual Threads and Structured Concurrency), che ridurrà drasticamente l'impegno richiesto per scrivere e mantenere applicazioni concomitanti ad alto rendimento in Java.

Oracle distribuisce nuove release di Java Feature ogni sei mesi, secondo una cadenza di rilascio prevedibile. Questa cadenza fornisce un flusso costante di innovazioni e migliora continuamente le prestazioni, la stabilità e la sicurezza della piattaforma, contribuendo ad aumentare la pervasività di Java nelle organizzazioni e nei settori di tutte le dimensioni. Gli aggiornamenti più significativi apportati da Java 19 sono: Aggiornamenti e miglioramenti al linguaggio: JEP 405: Modelli di record (Anteprima): Consente agli utenti di annidare modelli di record e modelli di tipo per creare una forma potente, dichiarativa e componibile di navigazione ed elaborazione dei dati.

Questo estende la corrispondenza dei modelli per consentire query di dati più sofisticate e componibili. JEP 427: Pattern Matching per Switch (terza anteprima): Abilita la corrispondenza dei modelli per le espressioni e le dichiarazioni switch, consentendo di testare un'espressione rispetto a una serie di modelli. Ciò consente agli utenti di esprimere query complesse orientate ai dati in modo conciso e sicuro.

Strumenti di biblioteca: JEP 424: API per funzioni e memorie straniere (Anteprima): Consente ai programmi Java di interoperare più facilmente con il codice e i dati al di fuori del runtime Java. Invocando in modo efficiente le funzioni estranee (cioè il codice al di fuori della Java Virtual Machine [JVM]) e accedendo in modo sicuro alla memoria estranea (cioè la memoria non gestita dalla JVM), questa API consente ai programmi Java di chiamare le librerie native e di elaborare i dati nativi attraverso un modello di sviluppo Java puro. Ciò si traduce in una maggiore facilità d'uso, prestazioni, flessibilità e sicurezza.

JEP 426: API vettoriale (Quarto Incubatore): Consente prestazioni superiori rispetto a calcoli scalari equivalenti, esprimendo calcoli vettoriali che si compilano in modo affidabile in fase di esecuzione con istruzioni vettoriali sulle architetture CPU supportate. Porte: JEP 422: Porta Linux/RISC-V: pone le basi per implementazioni Linux/RISC-V più semplici, integrando questa porta nel repository della linea principale del JDK. Caratteristiche del Progetto Loom Preview/Incubator: JEP 425: Thread virtuali (Anteprima): Riduce drasticamente lo sforzo di scrivere, mantenere e osservare applicazioni concorrenti ad alto rendimento, introducendo thread virtuali leggeri nella Piattaforma Java.

L'uso dei thread virtuali consente agli sviluppatori di risolvere, debuggare e profilare facilmente le applicazioni concorrenti con gli strumenti e le tecniche JDK esistenti. JEP 428: Concorrenza strutturata (Incubatore): Semplifica la gestione e la cancellazione degli errori, migliora l'affidabilità e l'osservabilità, semplificando la programmazione multithread e trattando i compiti multipli eseguiti in thread diversi come un'unica unità di lavoro. Guidare l'innovazione Java nel Cloud: La release Java 19 è il risultato di un'ampia collaborazione tra gli ingegneri di Oracle e altri membri della comunità mondiale di sviluppatori Java attraverso il Progetto OpenJDK e il Java Community Process (JCP).

Oltre ai nuovi miglioramenti, Java 19 è supportato da Java Management Service – un servizio nativo di Oracle Cloud Infrastructure (OCI) – che offre un unico pannello di vetro per aiutare le organizzazioni a gestire i runtime Java e le applicazioni in sede o su qualsiasi cloud. Supporto ai clienti Java: Oracle Java SE Subscription è un'offerta pay-as-you-go che offre ai clienti un'assistenza di prim'ordine, l'abilitazione a GraalVM Enterprise, l'accesso al Java Management Service e la flessibilità di aggiornare al ritmo delle loro aziende. Questo aiuta le organizzazioni IT a gestire la complessità, a contenere i costi e a mitigare i rischi di sicurezza.

Inoltre, Java SE e GraalVM Enterprise sono offerti gratuitamente su OCI, consentendo agli sviluppatori di costruire e distribuire applicazioni che funzionano più velocemente, meglio e con prestazioni imbattibili in termini di costi su Oracle Cloud. A sottolineare la popolarità di Java presso la comunità globale degli sviluppatori, Oracle è orgogliosa di riconoscere la milionesima certificazione Java completata. Le certificazioni Java aiutano gli sviluppatori a distinguersi come esperti Java e ad aumentare il loro profilo presso le aziende che cercano di attrarre professionisti Java altamente qualificati.