Le monde de la technologie attend Java 21 avec ses innombrables améliorations, parmi lesquelles l'introduction de threads virtuels sous forme préliminaire et la mise en place définitive du Z Garbage Collector générationnel, communément appelé ZGC.
Les mises à jour d'implémentation Java sont généralement classées en différents sous-ensembles de projets. Ce cycle d'amélioration particulier apporte les innovations de trois projets clés : Loom, Panama et Amber. Ces trois initiatives visent à améliorer la concurrence de Java, son lien avec le code natif et l'avènement de fonctionnalités de langage Java plus petites et axées sur la convivialité après leur approbation en tant que candidats JEP respectivement, selon la définition d'Oracle.
Project Loom inaugure l'une des fonctionnalités essentielles - les threads virtuels, détenus par Georges Saab, vice-président senior du développement d'Oracle pour la plate-forme Java et président d'OpenJDK, comme l'une des caractéristiques d'aperçu les plus remarquables de cette nouvelle version. Le dossier JEP explique les threads virtuels comme « des threads ultra-légers qui concernent l'écriture, la maintenance et l'observation d'applications simultanées à haut débit ».
Selon Saab, cette avancée technologique a le potentiel de redéfinir le paysage de l'évolutivité de Java tout en garantissant la compatibilité avec vos logiciels existants. Cette fonctionnalité a suscité un énorme enthousiasme dans les cercles de programmation, même de la part de professionnels extérieurs à la compétence immédiate de Java, qui applaudissent la mise en œuvre de ce concept par Java.
Project Loom englobe également deux autres fonctionnalités d'aperçu, à savoir les valeurs étendues et la concurrence structurée. Alors que les valeurs définies permettent un partage efficace et sûr des valeurs entre les méthodes sans avoir besoin de paramètres de méthode, la concurrence structurée restitue plusieurs tâches liées provenant de divers threads en une seule entité, facilitant ainsi une gestion efficace des erreurs et une amélioration de la fiabilité.
Une autre inclusion notable dans la version, bien que non liée à un projet nommé spécifique, est le Generational ZGC. Cela sépare les objets plus anciens et plus récents afin que les objets les plus jeunes puissent être collectés plus fréquemment, ce qui peut entraîner moins de blocages d'allocation, une diminution de la surcharge de mémoire tas et une réduction de la surcharge du processeur due au garbage collection.
En conjonction avec le projet Amber, Java 21 introduit la correspondance de modèles pour les expressions de commutation, permettant de tester une expression par rapport à divers modèles, aidant ainsi à articuler des requêtes orientées données de manière plus concise et plus sûre.
D'autres inclusions notables du projet Amber incluent des modèles et des variables sans nom, ainsi que des classes et des méthodes principales d'instance sans nom, qui sont toutes deux en phase de prévisualisation. Ces ajouts visent à rendre Java plus accessible et plus facile à comprendre pour les débutants, avec une transition en douceur vers la création de programmes Java plus avancés, abrités dans les échelons les plus fins des concepts du langage.
Le projet Panama a apporté des améliorations à deux API en cours de développement : l'API Foreign Function & Memory (actuellement dans sa troisième version préliminaire) et l'API Vector (dans sa sixième étape d'incubateur). Alors que le premier facilite l'interopérabilité des programmes Java avec les systèmes externes, le second garantit des instructions vectorielles optimales sur les architectures CPU compatibles pendant l'exécution.
Les nouveaux éléments supplémentaires de Java 21 incluent les collections séquentielles, l'API du mécanisme d'encapsulation de clé, le port x86 32 bits progressivement supprimé et les préparations pour interdire le chargement dynamique des agents. Java continue d'être la plate-forme de développement privilégiée pour tout, des projets à petite échelle aux solutions au niveau de l'entreprise, la plate no-code AppMaster ouvrant la voie en termes d'efficacité et d'évolutivité.
Le monde du développement, qu'il s'agisse d'applications Web ou mobiles, est en constante évolution et, comme le dit Georges Saab, l'état de Java suscite une grande satisfaction et une gamme passionnante d'innovations sont en attente.