Sviluppo JAVA & WEB Application
Java 9: quali sono le nuove funzioni?
Cos’è Java 9?
Prima di vedere quali sono le nuove funzioni di Java 9 facciamo una piccola premessa. Java 9 giunge, assieme al JDK (Java Development Kit), a tre anni dal suo predecessore. Tale arco di tempo piuttosto lungo ha permesso la realizzazione di una versione caratterizzata da molteplici nuove funzioni. Java 9 porta con sé degli aggiornamenti “profondi” nelle librerie e nel linguaggio, ma a stupire è l’evoluzione compiuta dall’intera piattaforma.
Quest’ultima, infatti, vede l’introduzione di strumenti quali la modularizzazione e l’interfaccia JShell, che sembrano avere tutte le carte in regola per garantire a Java e ai suoi creatori un futuro lungo e ricco di soddisfazioni. Oltre alle novità dal punto di vista strutturale, meritano di essere segnalate anche le funzioni per il compilatore e i miglioramenti apportati a HTTP/2. L’aspetto più interessante, ad ogni modo, è rappresentato dal supporto per la produzione modulare per mezzo del “Java Platform Module System“.
La modularità in Java 9
La modularità è la novità attraverso la quale al sistema è stata data la possibilità di individuare, per ogni applicazione, i moduli necessari. Prima dell’avvento di Java 9, il sistema poteva unicamente fare affidamento sulla gestione contemporanea di una serie di pacchetti. Questo portava, in molti casi, a diverse conseguenze negative, sia a livello di manutenzione che in tema di aggiornamenti. Java 9, invece, è in grado di mettere a disposizione dei programmatori un centinaio di moduli.
Attraverso questi ultimi non solo sarà più semplice personalizzare le “runtime” ma, grazie al loro ingresso nel nuovo JDK, ottenere miglioramenti nella scalabilità, nelle prestazioni e nella sicurezza dell’applicazione in uso. Gli sviluppatori avranno così l’opportunità di realizzare e gestire in modo molto più efficace (e senza perdite di tempo) librerie ed applicazioni, destinate sia a Java Standard Edition che a Java EE.
Java 9 e il REPL: come funziona?
Esaminando l’elenco delle nuove funzioni di Java 9, a saltare all’occhio è anche il REPL (acronimo di Read Evaluate Print Loop), ottenuto appoggiandosi a JShell. Grazie al REPL gli sviluppatori hanno finalmente a disposizione il frutto di anni di ricerche, ossia una “Command Line Interface” da utilizzare per testare le componenti sintattiche. Così facendo, gli stessi sviluppatori potranno contare su un feedback (sarà sufficiente scrivere alcune linee di codice) prima di procedere alla compilazione.
Si tratta di una delle novità più attese, soprattutto considerando come la mancanza di un REPL abbia indotto molti programmatori, fino ad oggi, a rinunciare a Java in favore di altri linguaggi di programmazione (Scala e Phyton, giusto per fare un esempio). A caratterizzare JShell, pertanto, è la sua capacità nel consentire l’esecuzione di un codice senza che sia necessario “racchiudere” quest’ultimo in classi. Si rivela, pertanto, una soluzione ottimale anche per chi non dispone di grande esperienza in materia.
Le altre nuove funzioni di Java 9
Se in Java 8 si era assistito al debutto di API Stream, con Java 9 è possibile godere di una sua versione migliorata, soprattutto grazie alla presenza di nuovi metodi inseriti nell’interfaccia. Fa parte delle nuove funzioni di Java 9 anche AoT (Ahead of Time Compilation), seppure in fase sperimentale. L’obiettivo di AoT è quello di migliorare i tempi di avvio delle applicazioni. Perché questo sia possibile, tale funzione fa ricorso alla compilazione di classi Java in codice nativo (questo prima del lancio nella VM).
Da segnalare anche come Java 9 possa fare affidamento sul client HTTP/2; la sua presenza permette al server di inviare una quantità di dati maggiore di quella richiesta dal client. Altri miglioramenti hanno riguardato l’API di processo. Si tratta di una serie di modifiche attraverso le quali Java potrà interagire con maggiore efficacia sul sistema operativo.
È possibile indicare l’esistenza di nuovi metodi diretti, volti a gestire sia gli stati che i nomi dei processi, ma anche ad enumerare le JVM. Molti programmatori troveranno sicuramente utile la classe “MultiResolutionImage“; sarà la sua capacità nell’incapsulare più immagini, caratterizzate da risoluzioni diverse, a fornire la possibilità di effettuare selezioni basate sulle dimensioni.
In questo articolo trovi una lista di tool utili per sfruttare le nuove funzioni di Java 9.
Java in futuro
Esaminate nelle precedenti righe le nuove funzioni di Java 9 rimangono da sottolineare le anticipazioni che Oracle ha voluto fornire al momento della presentazione dell’ultimo aggiornamento. Innanzitutto, in futuro verranno proposte nuove versioni ogni 6 mesi. A cambiare saranno anche i nomi scelti per tali versioni, che mostreranno una connessione diretta con il nome e l’anno nel quale debutteranno.
Ad esempio, nel mese di marzo 2018 (esattamente a 6 mesi di distanza dall’ultimo Java proposto) non si assisterà al lancio di Java 10, ma di una versione denominata Java 18.3. Ma l’attenzione del pubblico sembra già essere rivolta a settembre 2018, mese nel quale verrà rilasciata Java 18.9.
Scopri senza impegno, quali potrebbero essere le migliori soluzioni per te dal punto di vista dello sviluppo Java