Java 14 est sorti il y a presque un mois - mais l'une des grandes forces du nouveau modèle de release de Java est que le travail sur la prochaine version ne s'arrête jamais vraiment. Cela signifie que le travail pour Java 15 est déjà en cours.
Bien qu'il reste encore près de deux mois avant le gel des fonctionnalités et rampdown, un certain nombre de fonctionnalités pour Java 15 ont déjà été annoncé. Ceux-ci inclus :
- Hidden Classes (JEP 371)
- Retirer le moteur JavaScript Nashorn (JEP 372)
- Text Blocks (Standard) (JEP 378)
Une version standard de deux nouveaux ramasse-miettes apparaît également dans la liste des fonctionnalités :
- ZGC : un ramasse-miettes évolutif à faible latence (JEP 377)
- Shenandoah : un ramasse-miettes à faible temps de pause (JEP 379)
Parmi ceux-ci, ZGC a été développé par Oracle et Shenandoah par Red Hat. Les deux offrent des capacités similaires - temps de pause très bas et scalabilité pour de grands tas - obtenues au détriment des performances globales (c'est-à-dire une réduction du throughput de l'application).
Java 14 a livré des jalons importants dans le cadre de la livraison incrémentielle du projet Amber. Cela comprenait une première version preview des Records, une version standard des Switch Expressions et une preview du Pattern Matching pour instanceof
.
Bien qu'il n'y ait pas encore eu d'annonce officielle, il semble très probable que Java 15 contiendra d'autres JEP qui continueront d'enrichir ce groupe de fonctionnalités.
Cela pourrait inclure une seconde preview ou même une version finale (Standard) des Records. Il semble également plausible que les types scellés (Sealed Types) soient également ciblés sur Java 15 - ce sera presque certainement une fonctionnalité en preview, quoique.
Un autre candidat à l'inclusion dans JDK 15 est la JEP 375 - la deuxième preview du Pattern Matching pour instanceof. Cela ajoute une autre étape clé vers le pattern matching, en introduisant des modèles de déconstruction (deconstruction patterns) pour les records - qui est la version Java du concept de déstructuration vu dans d'autres langages (par exemple ceux qui utilisent le typage structurel pour implémenter les product types).
La combinaison des types scellés (Sealed Types), des records et de l'introduction du pattern matching en tant que concept montre la direction claire du chemin du langage Java. Combiné à la réticence du marché à adopter des versions non LTS, cela souligne l'arrivée du pattern matching et de types algébriques nominaux à part entière en tant que fonctionnalités finales dans le cadre de Java 17 (LTS) en septembre 2021.