Oracle ha annunciato la disponibilità di Java 18, l’ultima versione del linguaggio di programmazione e della piattaforma di sviluppo numero uno al mondo. Java 18 (Oracle JDK 18) offre migliaia di miglioramenti in termini di performance, stabilità e sicurezza, tra cui nove miglioramenti alla piattaforma che consentono agli sviluppatori di essere più produttivi.
L’ultimo kit di sviluppo Java, o Java Development Kit (JDK), fornisce aggiornamenti e miglioramenti con nove JEP (JDK Enhancement Proposal). Questi includono la possibilità di aggiungere Code Snippets in Java API Documentation (JEP 413), che a sua volta semplifica l’aggiunta di codice sorgente di esempio nella documentazione delle API e Simple Web Server (JEP 408) per la creazione di prototipi e test. Gli sviluppatori possono esplorare due moduli di incubazione: Vector API (JEP 417) e Foreign Function and Memory API (JEP 419), oltre a una funzionalità di anteprima, Pattern Matching for Switch (JEP 420).
Come sottolineato in una nota alla stampa da Georges Saab, Vice President of Development, Java Platform Group, Oracle : «La release di Java 18 dimostra il costante impegno di Oracle nel fornire ad aziende e sviluppatori un accesso più rapido ai miglioramenti con una cadenza del rilascio delle funzionalità semestrale. Continuiamo a fare investimenti tecnici che migliorano le performance, la stabilità e la sicurezza delle implementazioni della piattaforma Java SE e di Java Development Kit».
Per James Governor, Principal Analyst di RedMonk: «Gli sviluppatori Java hanno bisogno di un’innovazione continua relativamente a moderne funzionalità del linguaggio di programmazione, miglioramenti dell’experience di sviluppo, servizi gestiti nel cloud e stabilità. Grazie al costante aggiornamento semestrale di Java, Oracle soddisfa tali richieste e contribuisce a mantenere Java rilevante per applicazioni e carichi di lavoro moderni».
Accelerare l’adozione di Java nel cloud
Oracle ha introdotto di recente Java Management Service (JMS), un nuovo servizio nativo Oracle Cloud Infrastructure (OCI), che consente di gestire runtime e applicazioni Java in modalità on-premise e in qualsiasi cloud. Il servizio JMS fornisce le informazioni necessarie per gestire le distribuzioni Java in tutta l’azienda ed è incluso per i carichi di lavoro OCI e per coloro che hanno sottoscritto Java SE.
Java 18 è la release più recente per quanto riguarda la cadenza semestrale delle release di Java ed è il risultato di una stretta collaborazione tra i tecnici Oracle e altri membri della community di sviluppatori Java a livello globale, tramite OpenJDK Project e JCP (Java Community Process). Ciò offre un flusso continuo di innovazioni e miglioramenti costanti a livello di performance, stabilità e sicurezza, che espanderà l’utilizzo di Java in organizzazioni e settori di qualsiasi dimensione.
Di seguito sono elencate le modifiche più importanti apportate a Java 18.
Aggiornamenti e miglioramenti alle librerie
- JEP 400: UTF-8 by Default imposta UTF-8 come set di caratteri predefinito delle API Java standard. Grazie a questa modifica, le API che dipendono dal set di caratteri predefinito avranno un funzionamento coerente su tutte le implementazioni, i sistemi operativi, le versioni locali e le configurazioni.
- JEP 408: Simple Web Server, uno strumento della riga di comando e un’API per l’avvio di un server Web minimale che distribuisce solo file statici. Questo strumento è utile per la creazione di prototipi, la scrittura di codice ad hoc e i test, in particolare nei contesti didattici.
- JEP 416: Reimplement Core Reflection with Method Handles reimplementa java.lang.reflect.Method, costruttore e campo sugli handle di metodo java.lang.invoke. Rendendo gli handle di metodo il meccanismo di riflessione di base, si riducono i costi di manutenzione e sviluppo delle API java.lang.reflect e java.lang.invoke.
- JEP 418: Internet-Address Resolution SPI definisce un’interfaccia SPI (Service-Provider Interface) per la risoluzione del nome host e dell’indirizzo, in modo che java.net.InetAddress possa utilizzare resolver diversi da quello integrato nella piattaforma.
Strumenti
- JEP 413: JEP Code Snippets in Java API Documentation introduce il tag @snippet per il Doclet standard di JavaDoc in modo da semplificare l’inclusione del codice sorgente di esempio nella documentazione delle API.
Anteprima e incubatori per le prossime release JDK
- JEP 417: Vector API (Third Incubator) fornisce agli sviluppatori un’API per sfruttare in modo affidabile le architetture CPU che offrono estensioni vettoriali scalabili. In questo modo si otterranno prestazioni superiori rispetto ai calcoli equivalenti nei processori non estesi.
- JEP 419: Foreign Function and Memory API (Second Incubator) permette ai programmi Java di interagire con codice e dati al di fuori del runtime Java. Richiamando in modo efficiente funzioni estranee (ossia codice al di fuori diJVM) e accedendo in tutta sicurezza alla memoria estranea (ad esempio, memoria non gestita da JVM), l’API permette ai programmi Java di chiamare librerie native ed elaborare dati nativi senza la fragilità e le insidie di JNI.
- JEP 420: Pattern Matching for Switch (Second Preview) migliora il linguaggio di programmazione Java con la corrispondenza di pattern per le espressioni e le istruzioni dello switch e le estensioni del linguaggio di pattern. L’estensione della corrispondenza di pattern allo switch, consente di testare un’espressione su vari pattern, ciascuno con un’azione specifica, in modo che le query complesse basate sui dati possano essere espresse brevemente e in modo sicuro.
Programmi Java per le esigenze future
- JEP 421: Deprecate Finalization for Removal; la finalizzazione rimane abilitata di default per il momento, ma può essere disabilitata per facilitare i test. In una release futura, questa opzione verrà disabilitata di default e in una release successiva verrà rimossa. È consigliabile che i gestori delle librerie e delle applicazioni che si basano sulla finalizzazione, considerino altre tecniche di gestione delle risorse, come l’istruzione try-with-resources e cleaners.
Supporto ai clienti Java
Oracle Java SE Subscription, un’offerta prevedibile “pay-as-you-go”, offre ai clienti un supporto di altissimo livello, il diritto a GraalVM Enterprise, l’accesso a Java Management Service e la flessibilità di eseguire l’upgrade secondo le esigenze della propria azienda. Ciò consente alle organizzazioni IT di gestire la complessità, contenere i costi e ridurre i rischi per la sicurezza.