Communiqué de presse

Oracle publie Java 22

La nouvelle version offre 12 “JDK Enhancement Proposals” pour améliorer le langage Java tout en renforçant les performances, la stabilité et la sécurité de la plateforme de développement

AUSTIN, Texas & COLOMBES, France 19 mars 2024
Java 22

Oracle annonce la publication de Java 22, la nouvelle version du langage de programmation et de la plateforme de développement numéro un dans le monde. Java 22 (Oracle JDK 22) offre des milliers d’améliorations en matière de performances, de stabilité et de sécurité pour aider les développeurs à augmenter leur productivité, à stimuler l’innovation et à accélérer leur croissance dans l’ensemble de leur entreprise. Cette nouvelle version apporte notamment des améliorations au langage Java, à ses API et à ses performances, ainsi qu’aux outils inclus dans le Kit de Développement Java (JDK).

« Les améliorations apportées à Java 22 permettent aux développeurs de créer et de fournir rapidement et facilement des applications riches en fonctionnalités, évolutives et sécurisées pour aider les entreprises du monde entier à développer leurs activités », se félicite Georges Saab, Senior Vice President de la plateforme Oracle Java et Président du conseil d’administration d’OpenJDK. « En apportant des améliorations qui rationalisent le développement d’applications et étendent la portée de Java pour la rendre accessible aux développeurs de tous les niveaux, Java 22 facilitera la création d’un large éventail de nouvelles applications et de nouveaux services pour les entreprises et les développeurs. »

La nouvelle version du JDK contient des mises à jour et des améliorations et propose 12 JDK Enhancement Proposals (JEP). JDK 22 apporte des améliorations au langage d’OpenJDK Project Amber (déclarations avant super[…], variables et modèles sans nom, modèles de chaîne, classes et méthodes principales d’instance déclarées implicitement) ; il fournit aussi des améliorations du Project Panama (API de fonction et de mémoire étrangères et API vectorielle), des fonctionnalités liées au Project Loom (concomitance structurée et valeurs ciblées), des fonctionnalités des bibliothèques et outils de base (API Class-File, lancement de programmes de code source multi-fichiers, et collecteurs de flux) et des mises à jour des performances (épinglage de région pour G1).

« Après près de trois décennies, la capacité de Java à prendre en charge des tâches de développement complexes couvrant un large éventail de cas d’utilisation rend la plateforme plus pertinente qu’elle ne l’a jamais été », souligne Arnal Dayaratna, Vice-Président de la recherche pour le développement logiciel chez IDC. « La polyvalence et l’ensemble complet d’outils de Java permettent de prendre en charge le développement d’applications critiques de qualité production à grande échelle, ce qui le positionne comme une technologie clé pour des cas d’utilisation innovants tels que l’IA générative. »

Mises à jour importantes fournies dans Java 22 :

Fonctionnalités du Project Amber

  • JEP 447: Déclarations avant super(…): donne aux développeurs la liberté d’exprimer le comportement des constructeurs. En autorisant les instructions qui ne font pas référence à l’instance créée à apparaître avant un appel de constructeur explicite, cette fonctionnalité permet de placer plus naturellement la logique qui doit être prise en compte dans les méthodes statiques auxiliaires, les constructeurs intermédiaires auxiliaires ou les arguments de constructeur. Elle préserve également l’assurance existante que les constructeurs soient exécutés dans l’ordre descendant lors de l’instanciation de classe, ce qui aide à s’assurer que le code d’un constructeur de sous-classe ne puisse pas interférer avec l’instanciation de la super classe. En outre, cette fonctionnalité ne nécessite aucune modification de la Java Virtual Machine (JVM) et repose uniquement sur la capacité actuelle de la JVM à vérifier et à exécuter le code qui apparaît avant les appels de constructeur explicites dans les constructeurs.
  • JEP 456: Variables et modèles sans nom: aide à accroître la productivité des développeurs en améliorant le langage Java avec des variables et des modèles sans nom, qui peuvent être utilisés lorsque des déclarations de variables ou des modèles imbriqués sont requis mais ne sont jamais utilisés. Cela réduit les risques d’erreur, améliore la lisibilité des modèles et augmente la maintenabilité de tout le code.
  • JEP 459: Modèles de chaîne de caractères (deuxième aperçu): simplifie le développement des programmes Java en facilitant l’expression de chaînes qui incluent des valeurs calculées lors de l’exécution, et renforce la sécurité des programmes qui composent les chaînes à partir de valeurs fournies par l’utilisateur et les transmettent à d’autres systèmes. En outre, la lisibilité des expressions qui mélangent du texte et des expressions est améliorée, et les valeurs autres que des chaînes de caractères calculées à partir de texte littéral et d’expressions imbriquées peuvent être créées sans avoir à passer par une représentation de chaîne de caractères intermédiaire.
  • JEP 463: Classes déclarées implicitement et méthodes principales d’instance (deuxième aperçu) : aide à accélérer l’apprentissage en proposant une programmation Java fluide pour permettre aux novices d’écrire leurs premiers programmes sans avoir à comprendre les fonctionnalités de langage conçues pour les programmes de grande envergure. Grâce à cette fonctionnalité, les enseignants peuvent introduire des concepts de manière progressive et les étudiants peuvent rédiger des déclarations rationalisées pour les programmes en classe unique et étendre de manière transparente leurs programmes pour utiliser des fonctionnalités plus avancées à mesure que leurs compétences se développent.
 

Fonctionnalités du Project Loom

  • JEP 462: Simultanéité structurée (deuxième aperçu) : aide les développeurs à rationaliser la gestion des erreurs et l’annulation tout en améliorant l’observabilité grâce à une nouvelle API pour la simultanéité structurée. Elle promeut un style de programmation simultanée qui peut éliminer les risques communs découlant de l’annulation et de l’arrêt, tels que les fuites dans les threads et les retards d’annulation, et améliore l’observabilité du code simultané.
  • JEP 464: Valeurs ciblées (deuxième aperçu) : améliore l’ergonomie, l’intelligibilité, les performances et la robustesse des projets des développeurs en permettant le partage de données immuables au sein des threads et entre eux.
 

Fonctionnalités du Project Panama

  • JEP 454: API de mémoire et de fonction étrangère : améliore l’ergonomie, la flexibilité, la sécurité et les performances pour les développeurs en introduisant une API permettant aux programmes Java d’interagir avec du code et des données en dehors de l’environnement d’exécution Java. En appelant efficacement des fonctions étrangères, par exemple, du code en dehors de la Java Virtual Machine et en accédant en toute sécurité à la mémoire étrangère (la mémoire non gérée par la JVM), cette nouvelle API permet aux programmes Java d’appeler des bibliothèques natives et de traiter des données natives sans avoir à recourir à Java Native Interface.
  • JEP 460: API de vecteur (septième incubateur) : permet aux développeurs d’obtenir des performances supérieures aux calculs scalaires équivalents en introduisant une API pour exprimer des calculs vectoriels qui compilent de manière fiable lors de l’exécution afin de vectoriser les instructions sur les architectures de processeurs (CPU) prises en charge. 

Fonctionnalités des bibliothèques principales et des outils

  • JEP 457: API Class-File (aperçu) : aide les développeurs à améliorer leur productivité en fournissant une API standard pour l’analyse, la génération et la transformation des fichiers de classe Java.
  • JEP 458: Lancement de programmes de code source multi-fichiers : permet aux développeurs de choisir s’il est intéressant de configurer un outil de compilation en améliorant le lanceur d’application Java pour lui permettre d’exécuter un programme fourni sous la forme de plusieurs fichiers de code source Java.
  • JEP 461: Collecteurs de flux (aperçu) : aide les développeurs à accroître leur productivité en améliorant l’API de flux pour prendre en charge les opérations intermédiaires personnalisées, ce qui va permettre aux pipelines de flux de transformer les données d’une manière difficilement réalisable avec les opérations intermédiaires intégrées existantes. En rendant les pipelines de flux plus flexibles et plus expressifs et en permettant aux opérations intermédiaires personnalisées de manipuler des flux de taille infinie, cette fonctionnalité permet aux développeurs de devenir plus efficaces dans la lecture, l’écriture et la maintenance du code Java.
 

Mises à jour des performances

  • JEP 423: Épinglage de région pour G1 : permet de réduire la latence en autorisant le nettoyage de la mémoire lors de certains appels de bibliothèque native qui auraient dû mettre le collecteur en pause. Pour ce faire, il suffit de suivre les objets qui doivent être bloqués lors de ces appels de bibliothèque native et d’« épingler » uniquement les régions qui contiennent ces objets. Grâce à cette approche, le nettoyage de la mémoire peut se poursuivre normalement dans des régions non épinglées, même pendant ce qui aurait été autrement un appel de bibliothèque native bloquant.

La release Java 22 est le fruit de la collaboration continue entre les ingénieurs d’Oracle et le reste de la communauté de développeurs Java dans le monde entier via OpenJDK et le Java Community Process (JCP). En plus des améliorations et des nouvelles fonctionnalités, Java 22 est pris en charge par Java Management Service (JMS), un service natif d’Oracle Cloud Infrastructure (OCI), qui fournit une console et un tableau de bord unifiés pour aider les entreprises à gérer leurs exécutions et leurs applications Java on-premises ou dans le cloud de leur choix. Pour plus de détails sur les fonctionnalités de Java 22, lisez l’article de blog technique.

Prise en charge de tout l’écosystème Java et innovation dans le cloud

Java offre des performances, une efficacité, une innovation et des économies accrues lorsqu’il est déployé dans le cloud sur OCI, un des premiers clouds hyperscale à prendre en charge Java 22. Oracle Java SE, Oracle GraalVM et le pack Java SE Subscription Enterprise Performance Pack sont disponibles gratuitement sur OCI. Ainsi, les développeurs peuvent créer et déployer des applications qui s’exécutent plus rapidement et avec un rapport coût-performance optimal.

L’abonnement Oracle Java Universal SE Subscription est une offre de paiement à l’usage qui fournit aux clients une assistance de premier ordre. Il inclut la prise en charge du triage de l’ensemble du portefeuille Java, le droit à GraalVM, Java SE Subscription Enterprise Performance Pack, l’accès aux fonctionnalités avancées de Java Management Service et la flexibilité nécessaire pour les mettre à niveau au rythme de l’entreprise. Cela permet ainsi aux services informatiques de gérer la complexité, de limiter les coûts et d’atténuer les risques de sécurité.

 

JavaOne revient en 2025

L'événement phare de la communauté Java mondiale, JavaOne, reviendra dans la région de la baie de San Francisco en 2025. JavaOne 2025 se déroulera du 17 au 20 mars 2025 à Redwood Shores, en Californie, et donnera aux participants l'occasion de prendre connaissance des derniers développements Java et d'interagir avec les experts Java d'Oracle et les sommités de l'industrie. Pour en savoir plus, consultez l'article de blog sur Inside Java.

« Au sein de l’écosystème dynamique de la Java Türkiye Community (TJC), l’assistance durable d’Oracle nous permet de continuer dans notre élan », souligne Evren Tan, Responsable de la communauté TJC. « Avec la sortie de Java 22, nous adoptons une gamme de fonctionnalités contemporaines qui améliorent encore l’efficacité des développeurs, renforçant notre engagement à faire progresser la technologie Java en Turquie. Nous invitons également les développeurs Java du monde entier à nous rejoindre dans les activités de TJC, en mettant en valeur l’esprit de communauté accueillant qui fait la vitalité de Java. »

« La popularité de Java en tant que langage de programmation, plateforme et communauté de développeurs continue de croître au Maroc et dans la région africaine », explique Badr El Hourari, Fondateur et Directeur des systèmes d’information de xHub. « Avec Java 22, je suis ravi de voir l’équipe Java d’Oracle se concentrer sur l’innovation qui aidera les nouveaux développeurs à adopter Java plus rapidement, comme avec JEP 463. En simplifiant le langage, le basculement vers Java devient plus facile pour une toute nouvelle génération de programmeurs. En outre, ici au Maroc, nous continuons à souligner l’importance de Java lors de la conférence annuelle Devoxx Maroc ; et nous invitons d’ailleurs tous les développeurs à assister à l’événement de cette année du 2 au 4 octobre pour écouter certaines des personnalités les plus influentes de la communauté Java. »

« Je suis ravi de voir les fonctionnalités du bundle Java 22 pour tous, des étudiants aux développeurs seniors, en passant par les passionnés de Java aventureux et les entreprises à la recherche de stabilité et de performances », s’enthousiasme Mala Gupta, Ambassadrice Java chez JetBrains. « Java adopte une approche minimaliste en continuant à réduire les fioritures autour de l’écriture des premières étapes du code, via la méthode principale de l’instance et les classes implicites, ce qui facilite l’apprentissage de Java. Avec la refonte du constructeur (déclarations avant super[…]), Java prouve à nouveau qu’il prend en charge l’innovation responsable ; et l’assouplissement des contraintes de langage, qui existaient depuis la version 1.0 de Java, sans rendre obsolète le code existant est très excitant. IntelliJ IDEA 2024.1 prend déjà en charge les fonctionnalités de Java 22. Les développeurs Java pourront les utiliser facilement. »

« L’équipe d’Helidon a compris l’importance des threads virtuels dès leur annonce. Avec Helidon 4, l’équipe a réécrit le serveur Web Helidon pour utiliser de manière native des threads virtuels, ce qui a permis d’améliorer les performances et d’augmenter la productivité des développeurs », explique Tom Snyder, vice president of engineering, enterprise cloud native Java, Oracle. « Maintenant, avec Java 22, nous assistons à une nouvelle augmentation des performances des threads virtuels et ces améliorations significatives profiteront à tous les utilisateurs d’Helidon. »

« L'intégration transparente avec les dernières innovations Java permet à Oracle Database d'offrir les technologies de base de données les plus avancées au monde pour le développement et l'exécution d'applications modernes », déclare pour sa part Kuassi Mensah, directeur Product Management Oracle. « Les pilotes Oracle Java Database Connectivity (JDBC) ont été réécrits pour prendre en charge de manière transparente les threads virtuels Java. La combinaison des threads virtuels Java et des nouvelles opérations de base de données en pipeline dans Oracle Database 23c permet d'améliorer l'évolutivité de bout en bout pour les applications Java. »

Pour en savoir plus sur Java et son écosystème mondial, rendez-vous sur :

  • Dev.java : Portail officiel pour l’apprentissage de Java
  • Inside.java: Actualités et avis des membres de l’équipe Java chez Oracle
  • Java YouTube : Chaîne officielle de vidéos pédagogiques pour Java sur YouTube

Ressources complémentaires

Informations de contact

  • Romain MICHAUD / Leyla BUYEL / Grégory ALLEAUME

  • Agence LEWIS - PISTON
  • oraclefr@pistonagency.com
  • 06 17 98 29 88 / 07 68 16 08 17 / 07 63 44 84 70

À propos d’Oracle

Oracle propose des suites d’applications intégrées, ainsi qu’une infrastructure sécurisée et autonome dans Oracle Cloud. Pour en savoir plus sur Oracle (NYSE : ORCL), consultez le site www.oracle.com.

Marques déposées

Oracle, Java, MySQL et NetSuite sont des marques déposées d’Oracle Corporation. NetSuite est la première entreprise cloud à être entrée dans la nouvelle ère du cloud computing.