A settembre 2021 Oracle ha annunciato il rilascio di Java 17. Un evento che introduce importanti miglioramenti in termini di stabilità, sicurezza, performance e nuovi strumenti al servizio della community di sviluppatori. Ecco una panoramica sulle principali features di Java 17.

Java 17, tanti strumenti per programmare in modo sempre più efficiente

Innanzitutto ricordiamo che Java 17, come Java 11, è una LTS, ossia una versione a supporto prolungato. Questo è già di per sé assai positivo, perché implica il poter lavorare per 2 anni dalla data del rilascio con una versione stabile e supportata.

Tra i più rilevanti vantaggi di Java 17 abbiamo:

  • Risoluzione di bug e l’aggiunta di diverse deprecazioni e rimozioni;
  • Un modello di licensing ancora più semplice: Oracle JDK 17 e le future release JDK verranno fornite con una licenza a uso gratuito fino all’intero anno successivo alla prossima release long-term support (LTS);
  • Supporto per macOS su AArch64architecture con JEP 391, che rende molto più semplice creare soluzioni pienamente digeribili dai computer Apple con la nuova linea di CPU (M1) rilasciata lo scorso anno;
  • La funzione Sealed Classes cessa di essere un’anteprima e diventa uno standard vero e proprio;
  • Nuova pipeline di rendering (JEP 382) per applicazioni AWT/Swing in ambiente macOS;
  • Nuova API e miglioramenti vari nella generazione di numeri casuali (JEP 356).

Dal team di Softfour: altre nuove features di Java 17

Ecco altre importanti nuove feature di Java 17, viste dagli occhi del nostro team:

  • La JDK ufficiale di Oracle torna ad essere gratuita per l’uso commerciale e di produzione (info: https://blogs.oracle.com/cloud-infrastructure/post/introducing-free-java-license). Dopo aver cambiato licenza nella lontana versione 8, molto sviluppatori erano “fuggiti” verso alternative quali OpenJdk, AdoptOpenJdk, Amazon Corretto. Ora Oracle punta a far rientrare questi sviluppatori, che attualmente sono meno del 25% del totale;
  • Passando alle novità più tecniche, c’è lo sforzo di rendere il linguaggio sempre più leggibile. Un esempio su tutti, con i Text Blocks si cerca di venire incontro all’uso del JSON all’interno del codice Java: in questo modo non c’è più bisogno di utilizzare escape o concatenazione di stringhe, ma si può semplicemente fare copia e incolla del JSON all’interno del della nuova sistassi “”” <BLOCCO DI TESTO> “””;
  • Arrivano poi i Records che permettono di generare immutable data classes risparmiando nel codice dei costruttori, getters, hashCode, equals e toString. Fino a oggi in molti sfruttavano Lombok come dipendenza del progetto; con Java 17 non c’è più bisogno;
  • Per chi costruisce librerie arrivano le Sealed Classes (ovvero tipi sigillati) che permettono un controllo più evoluto su come sia possibile dichiarare classi ed interfacce imponendo alcuni limiti sulla loro estensione/implementazione;
  • Sono stati aggiunti metodi di formattazione dei numeri human-readable a NumberFormat. Questo permetterà di ottenere con meno codice:
    System.out.println(fmt.format(100000)); => 100K
    System.out.println(fmt.format(1000000)); => 1M

Ultima bella notizia, Oracle sta accelerando sull’adozione di Java nel cloud. A tale scopo l’azienda americana ha recentemente introdotto Oracle Java Management Service, un nuovo servizio nativo di Oracle Cloud Infrastructure (OCI) per poter gestire runtime e applicazioni Java in sede o su qualsiasi cloud.

Hai bisogno di un supporto nel mondo Java? Contattaci!