Oracle ha annunciato la disponibilità di Java 20, l’ultima versione del linguaggio di programmazione e della piattaforma di sviluppo numero uno al mondo.
Java 20 (Oracle JDK 20) offre migliaia di miglioramenti in termini di prestazioni, stabilità e sicurezza, tra cui alcune migliorie alla piattaforma che aiuteranno gli sviluppatori ad aumentare la produttività e a favorire l’innovazione e la crescita nelle loro organizzazioni.
Oracle presenterà le nuove funzionalità di Java 20 durante il Java Developer Day, che si svolgerà in occasione dell’evento Oracle DevLive Level Up, che è possibile seguire dal 20 al 23 marzo sia online che dal vivo a Redwood Shores, in California.
“Per oltre 25 anni, Java ha permesso agli sviluppatori di progettare e costruire nuove generazioni di applicazioni solide, scalabili e sicure”, ha dichiarato Georges Saab, Senior Vice President of Development, Java Platform e chair, OpenJDK Governing Board, Oracle. “I nuovi e innovativi miglioramenti di Java 20 riflettono la visione e l’impegno profuso dalla community globale di Java durante tutta la sua esistenza. Grazie al supporto fornito dalla leadership tecnologica Java di Oracle e dalla gestione della community, Java è diventato estremamente importante come linguaggio e piattaforma che aiuta gli sviluppatori a aumentare la loro produttività”.
L’ultimo Java Development Kit (JDK) fornisce aggiornamenti e miglioramenti con sette JDK Enhancement Proposal (JEP). La maggior parte degli aggiornamenti sono funzioni di follow-up che migliorano funzionalità introdotte nelle release precedenti.
JDK 20 offre miglioramenti al linguaggio provenienti da OpenJDK Project Amber (Record Patterns e Pattern Matching for Switch); miglioramenti da OpenJDK Project Panama per interconnettere Java Virtual Machine (JVM) e codici nativi (Foreign Function & Memory API e Vector API); e funzionalità correlate a Project Loom (Scoped Values, Virtual Threads, e Structured Concurrency), che semplificheranno notevolmente il processo di scrittura, manutenzione e osservazione di applicazioni concomitanti a throughput elevato.
“Oggi le organizzazioni sono tenute a utilizzare le loro risorse nel modo più efficiente possibile, il che spinge gli sviluppatori a cercare strumenti che semplifichino lo sviluppo delle applicazioni e al tempo stesso aiutino le loro organizzazioni a raggiungere gli obiettivi di sicurezza e compliance IT”, ha dichiarato Jay Lyman, senior research analyst, S&P Global Market Intelligence. “I leader della trasformazione digitale affermano di starsi concentrando sul miglioramento del time to market e sull’agilità che può essere acquisita con strumenti migliori in grado di accelerare le iniziative di sviluppo delle applicazioni della loro organizzazione”.
Oracle fornisce nuove versioni delle funzionalità Java ogni sei mesi attraverso un programma di release fisso. Questa costanza permette un flusso continuo di innovazioni e di miglioramenti alle prestazioni, alla stabilità e alla sicurezza della piattaforma che contribuiscono ad aumentare la pervasività di Java in organizzazioni e settori di tutte le dimensioni.
Fra gli aggiornamenti più importanti di Java 20 ci sono:
Aggiornamenti e miglioramenti al linguaggio
- JEP 432: Record Patterns (seconda anteprima): Migliora il linguaggio Java consentendo agli utenti di aggiungere pattern di registro e pattern di tipo e creare così una tipologia di navigazione ed elaborazione dati potente, dichiarativa e componibile. Ciò aiuta ad aumentare la produttività degli sviluppatori permettendo loro di estendere il pattern matching per consentire query di dati più sofisticate e componibili.
- JEP 433: Pattern Matching for Switch (quarta anteprima): Estendendo il pattern matching alle istruzioni switch, le espressioni possono essere testate rispetto a vari pattern, ciascuno con un’azione specifica, e l’espressione di query complesse basate sui dati può avvenire in modo conciso e sicuro. Ampliare l’espressività e l’applicabilità delle espressioni e delle istruzioni switch aiuta ad aumentare la produttività degli sviluppatori.
Funzioni di anteprima/incubatrici Project Loom
- JEP 429: Scoped Values (incubatrice): Permette la condivisione di dati immutabili all’interno di thread e fra thread, preferibili rispetto a variabili thread-local soprattutto quando si utilizza un numero elevato di thread virtuali. Ciò aumenta la facilità d’uso, la comprensibilità, la robustezza e le prestazioni.
- JEP 436: Virtual Threads (seconda anteprima): Semplifica notevolmente il processo di scrittura, manutenzione e osservazione di applicazioni concomitanti a throughput elevato introducendo thread virtuali leggeri nella Java Platform. Consentendo agli sviluppatori di risolvere facilmente i problemi, di eseguire il debugging, e di profilare delle applicazioni concomitanti con gli strumenti e le tecniche JDK esistenti, i thread virtuali aiutano ad accelerare lo sviluppo delle applicazioni.
- JEP 437: Structured Concurrency (seconda incubatrice): Semplifica la programmazione multithreaded trattando vari task in esecuzione in thread diversi come un’unica unità di lavoro. Questo aiuta i team di sviluppo a semplificare la gestione e la risoluzione degli errori, ad aumentare l’affidabilità e a migliorare l’osservabilità.
Funzioni di anteprima Project Panama
- JEP 434: Foreign Function & Memory API (seconda anteprima): Permette ai programmi Java di interagire con codice e dati al di fuori del runtime Java. Richiamando in modo efficiente funzioni straniere (cioè, codici al di fuori di Java Virtual Machine [JVM]) e accedendo in tutta sicurezza a una memoria straniera (cioè, una memoria non gestita da JVM). Questa funzione permette ai programmi Java di chiamare librerie native ed elaborare dati nativi senza aver bisogno di una Java Native Interface. Ciò migliora la facilità d’uso, le prestazioni e la sicurezza.
- JEP 438: Vector API (quinta incubatrice): Esprime calcoli vettoriali che si compilano in modo affidabile in fase di esecuzione per istruzioni vettoriali su architetture CPU supportate. Ciò aumenta le prestazioni rispetto ai calcoli scalari equivalenti.
La release Java 20 è il risultato di una stretta collaborazione tra i tecnici Oracle e altri membri della community globale di sviluppatori Java tramite OpenJDK e Java Community Process (JCP). Oltre ai nuovi miglioramenti, Java 20 è supportato da Java Management Service, un servizio nativo Oracle Cloud Infrastructure (OCI), che offre un unico pannello di controllo per aiutare le organizzazioni a gestire runtime e applicazioni Java on-premise o in qualsiasi cloud.
Supportare i clienti Java e l’ecosistema globale
L’Oracle Java Universal SE Subscription è un’offerta pay-as-you-go che fornisce ai clienti un supporto di altissimo livello, tra cui l’assistenza per tutto il proprio portfolio Java, il diritto ad avere GraalVM Enterprise, il Java SE Enterprise Performance Pack, l’accesso alle funzioni avanzate di Java Management Service e la flessibilità di poter eseguire l’upgrade secondo le esigenze del proprio business. Ciò aiuta le organizzazioni IT a gestire la complessità, a limitare i costi e a ridurre i rischi per la sicurezza. Inoltre, Oracle Java SE, GraalVM Enterprise e Java SE Subscription Enterprise Performance Pack sono disponibili gratuitamente su Oracle Cloud Infrastructure, cosa che permette agli sviluppatori di creare e implementare applicazioni più veloci, migliori e con un imbattibile rapporto prezzo/prestazioni su Oracle Cloud.