Communiqué de presse

Oracle publie Java 23

La nouvelle version fournit 12 propositions d'amélioration JDK qui aident les développeurs à augmenter leur productivité en améliorant le langage Java

Les améliorations apportées aux performances, à la stabilité et à la sécurité de la plateforme aident les entreprises à accélérer la croissance de leurs activités

Java Management Service 9.0 et le compilateur JIT Graal aident les entreprises à gérer les applications Java et à améliorer les performances de pointe

AUSTIN, Texas, et COLOMBES, France —24. septembre 2024
Java

Oracle annonce la publication de Java 23, la nouvelle version du langage de programmation et de la plateforme de développement numéro un dans le monde. Java 23 (Oracle JDK 23) apporte des milliers d'améliorations pour aider les développeurs à augmenter leur productivité et à stimuler l'innovation, tandis que les améliorations apportées aux performances, à la stabilité et à la sécurité de la plateforme aident les entreprises à accélérer la croissance de leurs activités.

« Java continue d'évoluer pour répondre aux besoins de développement d'applications modernes de plus en plus diversifiés des entreprises », a déclaré Arnal Dayaratna, Vice-Président de la recherche, développement logiciel, IDC. « La nouvelle version permet aux développeurs d'étendre leur kit d'outils et d'augmenter leur productivité en les aidant à créer et à fournir des applications qui tirent parti de la puissance de technologies révolutionnaires telles que l'IA. En fournissant de nouvelles fonctionnalités innovantes tous les six mois, Java continue d'aider les équipes de développement à ajouter une valeur significative à leurs organisations. »

En plus des nouvelles améliorations et fonctionnalités pour les développeurs, Java 23 apporte une valeur significative à leur entreprise. Par exemple, Java 23 est pris en charge par le récent GA de Java Management Service (JMS) 9.0, 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-premise ou dans le cloud de leur choix. En outre, JMS 9.0 offre de nombreuses améliorations en matière d'ergonomie et Oracle JDK 23 offre davantage d'options pour affiner et améliorer les performances de pointe grâce à l'ajout du compilateur Graal, un compilateur JIT dynamique écrit en Java qui transforme le code exécutable en code machine optimisé.

« Les nouvelles fonctionnalités de Java 23 aident les développeurs à tous les niveaux d'expertise à augmenter leur productivité et à rationaliser le développement d'applications hautes performances, sécurisées et évolutives », explique Georges Saab, senior vice president Oracle Java Platform et Président du conseil d'administration OpenJDK. « Avec une large gamme de nouvelles fonctionnalités et d'outils conçus pour aider les développeurs à créer et à fournir des applications plus rapidement et plus efficacement, Java 23 aide les équipes de développement et leurs organisations à renforcer l'innovation et à stimuler la croissance de l'entreprise. »

Java 23 apporte des évolutions et des améliorations au langage Java, à l'exécution, aux bibliothèques et aux outils inclus dans Java Development Kit (JDK). Parmi les mises à jour importantes fournies dans Java 23, on notera :

 

Fonctionnalités linguistiques via Project Amber

  • JEP 455 : Types primitifs dans les modèles, l'instance et le commutateur (aperçu) : aide à augmenter la productivité de la programmation Java en rendant le langage plus uniforme et plus expressif. En aidant à supprimer les restrictions relatives aux types primitifs que les développeurs rencontrent lors de l'utilisation de la correspondance de modèles, instanceof et switch, il améliore la correspondance de modèles en autorisant les modèles de type primitif dans tous les contextes de modèles et étend également instanceof et switch pour fonctionner avec tous les types primitifs.
  • JEP 476 : Déclarations d'importation de modules (aperçu) : permet aux développeurs d'améliorer leur productivité en leur permettant d'importer rapidement et facilement tous les packages exportés par un module, sans nécessiter que le code d'importation se trouve dans un module lui-même. Cela simplifie la réutilisation des bibliothèques modulaires pour tous les développeurs et aide les débutants à utiliser plus facilement des bibliothèques tierces et des classes Java fondamentales sans la nécessité de savoir où elles se trouvent dans une hiérarchie de packages.
  • JEP 477 : Classes déclarées implicitement et méthodes principales d'instance (deuxième aperçu) : aide à accélérer l'apprentissage et le développement de compétences 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. Par conséquent, les enseignants et les instructeurs peuvent introduire des concepts progressivement et les étudiants peuvent écrire des déclarations rationalisées pour les programmes de classe unique et étendre leurs programmes de manière transparente avec des fonctionnalités plus avancées au fur et à mesure que leurs compétences se développent. En outre, les développeurs Java expérimentés peuvent écrire de petits programmes succinctement sans avoir besoin d'utiliser des outils conçus pour des projets plus importants.
  • JEP 482 : Corps de constructeur flexibles (deuxième aperçu) : aide les développeurs à augmenter la productivité en permettant aux instructions d'apparaître avant un appel de constructeur explicite, tel que super(..) ou cela(..). Les instructions ne peuvent pas référencer l'instance en cours de construction mais peuvent initialiser ses champs avant d'appeler un autre constructeur, ce qui rend une classe plus fiable lorsque des méthodes sont remplacées. Cela donne aux développeurs une plus grande liberté pour exprimer le comportement des constructeurs et préserve la garantie existante que les constructeurs s'exécutent dans l'ordre descendant lors de l'instanciation de classe.
 

Bibliothèques

  • JEP 466 : API Class-File (deuxième 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 469 : API de vecteur (huitième incubation) : aide les développeurs à améliorer la productivité en introduisant une API pour communiquer les calculs de vecteurs qui effectuent une compilation fiable lors de l'exécution pour vectoriser les instructions sur les architectures de processeurs prises en charge. Par conséquent, les développeurs peuvent obtenir des performances supérieures aux calculs scalaires équivalents.
  • JEP 473 : Collecteurs de flux (deuxième 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 permet 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.
  • JEP 480 : Accès simultané structuré (troisième aperçu) : aide les développeurs à améliorer la maintenabilité, la fiabilité et l'observabilité du code multithread en simplifiant la programmation simultanée via une nouvelle API pour les accès simultanés structurés. En regroupant des groupes de tâches connexes exécutées dans différents threads en une seule unité de travail, la simultanéité structurée peut aider à éliminer les risques courants découlant de l'annulation et de l'arrêt, tels que les fuites de threads et les retards d'annulation.
  • JEP 481 : Valeurs ciblées (troisième aperçu) : permet aux développeurs d’améliorer l'ergonomie, la compréhensibilité, 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.
 

Mises à jour de performances et de temps d'exécution

  • JEP 474 : ZGC : Mode générationnel par défaut : offre aux développeurs la possibilité d'augmenter leur efficacité en basculant le mode par défaut du Z Garbage Collector (ZGC) sur le mode générationnel, ce qui réduit les ressources et les coûts de maintenance requis pour prendre en charge deux modes différents.
 

Outils

  • JEP 467 : Commentaires sur la documentation Markdown : il s’agit ici de permettre aux développeurs d'accroître l'efficacité et la productivité en permettant aux commentaires de documentation Javadoc d'être écrits dans Markdown plutôt qu'uniquement en HTML et en @-tags Javadoc. En acquérant la possibilité d'utiliser la syntaxe Markdown dans les commentaires de documentation avec les éléments HTML et les balises JavaDoc, les développeurs peuvent plus facilement écrire et lire les commentaires de documentation d'API sous forme source sans nuire à l'interprétation des commentaires de documentation existants.
 

Gérance

  • JEP 471 : phase d'abandon des méthodes d'accès à la mémoire dans sun.misc.unsafe pour la suppression : fournit aux développeurs un ensemble d'outils simplifié leur permettant de comprendre lorsque leurs applications s'appuient, directement ou indirectement, sur les méthodes d'accès à la mémoire dans sun.misc.unsafe, dont la suppression est prévue dans une prochaine version.

Les fonctionnalités de la version de Java 23 sont 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). Pour plus de détails sur les fonctionnalités de Java 23, lisez l'article de blog technique de Java 23.

 

Prise en charge de toute la communauté mondiale 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 d’hyperscaler à prendre en charge Java 23. En offrant Oracle Java SE, Oracle GraalVM et le pack Java SE Subscription Enterprise Performance Pack sans coût supplémentaire sur OCI, Java 23 aide les développeurs à 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 est une offre 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 à Oracle 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. Les services informatiques peuvent ainsi gérer la complexité, limiter les coûts et atténuer les risques de sécurité.

En outre, Oracle a récemment annoncé à Oracle CloudWorld qu'Oracle Code Assist serait initialement optimisé pour Java. Oracle Code Assist est un compagnon de code d'IA qui facilite la création d'applications Java. Le service Oracle Code Assist exécuté sur OCI sera également disponible pour C, C++, Go, JavaScript, PL/SQL, Python, Ruby et Rust.

 

JavaOne revient en 2025

L'événement phare de la communauté Java mondiale, JavaOne, est de retour dans la région de la baie de San Francisco en 2025. Du 17 au 20 mars 2025 à Redwood Shores, en Californie, JavaOne 2025 donnera aux participants l'occasion d'entendre parler des derniers développements de Java et d'interagir avec les experts Java d'Oracle et les personnalités du secteur. Pour en savoir plus, consultez le billet de blog Inside Java ici, et si vous souhaitez faire une présentation sur JavaOne, veuillez consulter l'appel à contribution ici.

 

Citations

« Le développement d'Agile aide à assurer l'alignement avec les besoins des clients via des cercles de rétroaction et Java offre l'agilité dont les développeurs ont besoin », a déclaré Venkat Subramanian, Président, Agile Developer, Inc. « Parmi tant de fonctionnalités précieuses dans Java 23, je suis particulièrement impressionné par l'évolution des collecteurs de flux. Il s'agit d'une fonctionnalité extrêmement utile pour créer des étapes personnalisées dans un pipeline de développement de code fonctionnel afin que vous puissiez cibler des besoins métier spécifiques de manière efficace. »

« J'ai révisé mon livre d'introduction à Java en utilisant les fonctionnalités d'aperçu des classes déclarées implicitement de Java 23, et en tant qu'auteur et éducateur, ces fonctionnalités facilitent mon travail », a déclaré Barry Burd, professeur à l'Université Drew. « Une grande partie du code verbeux des éditions précédentes a disparu, ce qui aide les étudiants à se concentrer sur la logique essentielle au lieu de parcourir des lignes de texte sans intérêt. En outre, étant donné que les classes et les méthodes principales d'instance déclarées implicitement me permettent de rationaliser les exemples de code de ce manuel, vous avez désormais plus de place pour inclure d'autres concepts Java intéressants. Je suis ravi d'enseigner la programmation à mes étudiants avec Java 23. »

« Chez JetBrains, nous visons à aider les développeurs à utiliser et à adopter de nouvelles fonctionnalités Java dans IntelliJ IDEA avant même leur mise en production et cela s'applique certainement au support de l'IDE pour Java 23 », a déclaré Mala Gupta, défenseur des développeurs Java, JetBrains. « IntelliJ IDEA 2024.2 permet aux développeurs d'exploiter facilement les nouvelles fonctionnalités très innovantes de Java 23, telles que les types primitifs dans les modèles, les classes déclarées implicitement, les corps flexibles des constructeurs, les commentaires de documentation Markdown, etc. »

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

Caterina van Leeuwen

Oracle Suisse
+41793723084

À propos d’Oracle

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

Clause de non-responsabilité relative aux produits à venir

Le contenu qui précède a pour vocation de présenter notre orientation générale concernant les produits. Il est fourni uniquement à titre informatif et ne peut être intégré dans un contrat. Il ne constitue aucunement un engagement à offrir l’un ou l’autre de ces produits, programmes ou fonctionnalités et ne doit pas servir de base pour la prise de décisions d’achat. Le développement, la publication, le calendrier et les tarifs des caractéristiques ou fonctionnalités exposés pour les produits Oracle sont susceptibles d’être modifiés et relèvent de la seule discrétion d’Oracle Corporation.

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.