In questi giorni si sta tenendo l'Oracle Open World, l'evento di Oracle dedicato alla presentazione dei nuovi servizi della società che spazia dal Cloud per le aziende ai nuovi strumenti per gli sviluppatori. Da quest'anno l'evento integra anche l'Oracle Code One, una serie di conferenze che solitamente sono dedicate agli sviluppatori Java. Durante questo ciclo di presentazioni Oracle ha delineato con precisione il futuro della piattaforma e la sua evoluzione nei prossimi anni.
Nel keynote tenuto da Georges Saab, vice presidente del Java Platform Group, è emerso che Oracle ha intenzione di lavorare su Java sotto diversi punti di vista in modo procedurale, avviando diversi progetti collaterali che hanno come obbiettivo lo sviluppo della piattaforma e dei vari aspetti core:
- Project Valhalla: introduce tipi di valore e una specializzazione generica per consentire la creazione di strutture dati cache-friendly e più performanti;
- Project Panama: volto a migliorare e arricchire le connessioni tra programmi Java e codici e dati “stranieri” (non Java) univoci;
- Project Amber: esplorazione delle caratteristiche del linguaggio Java orientate alla produttività, come i valori letterali di stringhe non elaborate, le espressioni switch, il pattern matching e i record;
- Project Loom: volto a introdurre thread modalità utente leggeri, denominati “fibers”, per un codice più semplice ma più efficiente.
Tramite tali progetti i vari team di Oracle lavoreranno nei prossimi anni per raggiungere gli obbiettivi preposti, in modo da rendere Java una piattaforma sempre al passo con i tempi. Questi annunci non arrivano del tutto inaspettati, infatti durante il 2018 l'azienda statunitense ha avviato cambiamenti radicali in Java per assicurare alla propria community maggiori prestazioni e migliori protocolli di sicurezza.
Il team di Java aveva già annunciato la fine del supporto alla Java object serialization, inoltre da inizio anno è attivo il nuovo ciclo di sviluppo di Java SE che comporta rilasci semestrali e l'introduzione di nuove feature molto più frequentemente rispetto al passato.
Questo, malgrado la presenza di un versione LTS di Java SE 8 supportata fino al 2019, comporterà presto o tardi il completo abbandono di alcune funzionalità di retrocompatibilità che porteranno la community a dover migrare alle nuove versioni di Java se vorranno sfruttare le nuove feature in arrivo.
Gli aggiornamenti più frequenti possono far storcere il naso a diverse aziende che basano i propri applicativi e servizi su vecchie versioni di Java, con sistemi difficili da aggiornare senza interferire su alcune funzionalità, ma il nuovo flusso di release permetterà di garantire non solo migliori performance generali ma anche un livello sicurezza molto più elevato rispetto al passato. L'uso di vecchie versioni sta diventando problematico perché espone gli utenti a rischi per non indifferenti.
A questo proposito Java SE 11 introduce importanti aggiornamenti sicurezza:
- una nuova API HTTP Client, introdotta per la prima volta in JDK 9 come funzione di incubazione, che implementa HTTP/2 e WebSockets;
- Flight Recorder, un framework di raccolta dati ottimizzato per la risoluzione dei problemi delle applicazioni Java e dell'HotSpot JVM;
- possibilità di avvio dei programmi con codice sorgente a file singolo, questo è possibile grazie ad un update del launcher Java che consente di eseguire un programma fornito come file singolo, rendendo più semplice il suo utilizzo agli sviluppatori che si trovano nelle prime fasi di apprendimento del linguaggio;
- implementazione di ZGC, un garbage collector sperimentale, scalabile, a bassa latenza, in grado di gestire strutture di dati delle dimensioni di terabyte per più di dieci millisecondi senza arresti;
- Supporto a TLS 1.3.
Via Oracle