Oracle annuncia la disponibilità di Java 16 con 17 novità!
A distanza di soli 6 mesi dall’uscita della versione 15, l’arrivo di Java 16 è alle porte ed il 16 Marzo 2021 sarà finalmente disponibile ufficialmente l’ultima delle release che ci separa da una nuova LTS (Long-term support), prevista con l’arrivo di Java 17. Questo nuovo rilascio porterà con se ben 17 nuove funzionalità, ormai congelate e prossime al rilascio.
Dopo una lunga attesa il progetto sarà finalmente migrato su Git, il noto software di controllo di versione, e l’intero repository sarà gestito su GitHub, rendendo felice l’intera community. A partire dal 16 Marzo potremmo quindi trovare in un’unica sorgente tutte le versioni 11 e successive di JDK.
Tra le caratteristiche della nuova versione troviamo l’introduzione delle Vector API, il supporto al linguaggio C++ 14 e la processazione concorrente dello stack dei threads da parte di ZGC. Non mancano inoltre il porting su Alpine Linux, il cui utilizzo in architetture cloud-based e containerizzate è ad oggi diffusissimo ed il porting del JDK sulle piattaforme Windows / AArch64.
Ma scopriamo più nel dettaglio alcune di queste interessanti caratteristiche:
Vector API
Vector API è progettato per scrivere algoritmi vettoriali complessi per Java, con un supporto di vettorizzazione preesistente nella VM Hot Spot e un modello utente più prevedibile e stabile.
Z Garbage Collector
Z Garbage Collector (ZGC) è progettato per rendere le pause GC ed i problemi di scalabilità in HotSpot un ricordo del passato.
Alpine Linux Port
Musl è un’implementazione delle funzionalità della libreria standard descritta negli standard ISO C e POSIX per sistemi basati su Linux. Diverse distribuzioni Linux tra cui Alpine Linux e OpenWrt sono basate su musl.
Grazie alle piccole dimensioni dell’immagine, Alpine Linux è ampiamente adottata nelle distribuzioni cloud, nei microservizi e negli ambienti containerizzati. Infatti una immagine Docker per sistemi Linux è più piccola di 6 MB! In tali ambienti, lasciare che Java venga eseguito out-of-the-box permetterà a Tomcat, Jetty, Spring ed altri framework comuni di operare nativamente. Inoltre l’utente potrà costruire un’immagine ancora più piccola, ed ottimizzata per l’esecuzione di una particolare applicazione, utilizzando jlink.
Pattern matching e record class
Pattern matching e record class sono finalmente pronti. Gli obiettivi del piano includono il permettere all’autore di una classe o di un’interfaccia di controllare il codice responsabile della sua implementazione, in modo da fornire un modo più dichiarativo dei modificatori di accesso per l’utilizzo di una superclasse. Inoltre in questo modo sarà possibile supportare le direzioni future nel pattern matching, fornendo una base per l’analisi dei pattern.
Naturalmente questo è solo un estratto delle più ampie novità introdotte dalla nuova versione di Java ma è possibile approfondire la lettura seguendo il link indicato in basso.
E tu, sei fedele alle LTS o sarai tra i primi ad utilizzare il nuovo Java 16?
Fonte: https://jdk.java.net/16/