LMi-MAG 7 Juin 2021 - Flipbook - Page 59
A
lors que Java 17 se prépare, Oracle
a annoncé il y a quelques jours
la disponibilité du JDK 16 apportant 17 améliorations dans
le cadre du cycle semestriel de
livraison du langage de développement. Même défié par Python
en termes de popularité, Java
reste dans le trio de tête des langages les plus utilisés
avec « des millions de développeurs exploitant plus de
51 milliards de machines virtuelles Java dans le monde »,
souligne Oracle. Mais ce large déploiement est aussi synonyme d’expérience. Une récente analyse du site Indeed
outre-Atlantique montre que seuls 14% des emplois liés à
Java étaient accessibles à des débutants.
Le JDK 16 finalise les fonctionnalités de Pattern Matching
for instanceof et Records, en préversion depuis le JDK 14
il y a un an et testées de multiples fois par la communauté sur des cas d’usages réels. Pattern Matching for instanceof ( JEP 394) permet d’évaluer la structure d’un objet
pour l’opérateur instanceof. Si la condition d’instanceof
est vérifiée, elle peut extraire les données des objets avec
un code plus concis et les assigner à la variable associée
en éliminant le besoin de transtypage explicite. Records
( JEP 395) étend également la syntaxe de Java en lui offrant
la possibilité de générer des classes pour transporter des
données immuables. Parmi les nouveautés, l’outil jpackage ( JEP 392) servira à la livraison d’applications Java
autonomes (self-contained) en incluant toutes les dépendances nécessaires. Il permettra de produire un package
natif dans un format spécifique (par exemple un exe sur
Windows ou un dmg sur macOS).
Le cycle semestriel de livraison sur Java amène
la version 16 du kit de développement.
Rappelons qu’Oracle vient d’ajouter le runtime d’application GraalVM Enterprise aux abonnés à Java SE,
sans surcoût. Celui-ci inclut un compilateur d’optimisation qui accélère l’exécution des applications Java et
réduit la consommation de ressources, en particulier
pour les microservices et les architectures natives
cloud. GraalVM Enterprise permet d’utiliser des bibliothèques et frameworks écrits dans d’autres langages
de programmation et de les exécuter sur des JVM. Ces
autres langages peuvent être employés dans un même
programme et partager des données sans réduction de
performances.
Gestion optimisée de la mémoire
Des améliorations ont été apportées à la gestion de la
mémoire à travers Elastic Metaspace et la réduction des
temps de pause de ZGC (Z Garbage Collector) par le traitement simultané de la pile de threads (thread-stack). Par
ailleurs, le JDK 16 encapsule fortement tous les éléments
internes du JDK par défaut (à l’exception des API internes
sensibles telles que sun.misc.Unsafe), le renforçant par
rapport à JDK 9. Les utilisateurs peuvent toujours choisir
l’encapsulation forte « assouplie » de JDK 9. Enfin, dans le
cadre du projet Valhalla, avec JDK 16 arrivent les alertes
sur l’utilisation des value-based classes qui ne seraient
pas compatibles avec les inline classes. JDK 16 intègre
par ailleurs une deuxième préversion de sealed classes
qui ajoute des contrôles sur la mise en œuvre de classes,
ainsi que trois fonctionnalités en incubation : Vector
API, Foreign Linker API et Foreign-Memory Access API
(troisième incubation).
APPROFONDIR
ÉCOUTER EN LIGNE
Podcast
cutt.ly/oracle-JDK16-pod
LIRE EN LIGNE
Article
cutt.ly/Oracle-JDK16-art
59