Java 23 apporte en outre des améliorations fonctionnelles au langage, à l’environnement d’exécution, aux bibliothèques et aux outils inclus dans le JDK. Les mises à jour du langage visent à rendre Java plus expressif et à simplifier la syntaxe pour améliorer la productivité des développeurs entre autres.
Par exemple, cette version est compatible avec la récente disponibilité générale de Java Management Service (JMS) 9,0, un service natif d’Oracle Cloud Infrastructure (OCI) qui fournit une console unifiée et un tableau de bord permettant aux organisations de gérer les environnements Java sur site ou dans tout cloud. JMS 9,0 introduit également de nombreuses améliorations en matière d’ergonomie, tandis que JDK 23 propose davantage d’options pour optimiser les performances maximales, notamment grâce à l’ajout du compilateur Graal, un compilateur just-in-time (JIT) dynamique qui transforme le bytecode en code machine optimisé.
Microservices, architecture hexagonale et Domain-Driven Design
Les nouveautés de Java 23 résultent d’une collaboration entre Oracle et la communauté mondiale de développeurs Java via OpenJDK et le Java Community Process (JCP). Les nouveautés apportent des améliorations dans plusieurs domaines clés, chacun avec des objectifs spécifiques. En matière de performance et d’efficacité, Oracle a optimisé la Java Virtual Machine (JVM) pour permettre des applications plus rapides. Le compilateurjuste-à-temps (JIT) a été amélioré pour accélérer l’exécution du code, et des optimisations de la gestion de la mémoire ont été intégrées pour réduire la consommation de mémoire et améliorer l’efficacité des applications.
Sur le plan de la sécurité, les objectifs incluent l’intégration de correctifs pour les vulnérabilités de sécurité afin de garantir une exécution sécurisée des applications. De nouvelles fonctionnalités de sécurité, comme des améliorations dans les mécanismes de chiffrement et de gestion des certificats, ont été ajoutées pour protéger contre
les menaces émergentes.
Réduire la verbosité du code…
Pour simplifier le code, Java 23 introduit de nouvelles syntaxes visant à réduire la verbosité et à faciliter le développement. Par exemple, des améliorations ont été apportées aux expressions de commutation (switch expressions) et aux enregistrements (records) pour rendre le code plus concis et plus lisible. Les structures de données sont également optimisées pour améliorer leur utilisation et leurs performances, avec des améliorations dans les collections et les flux (streams).En ce qui concerne le support des nouvelles technologies, les améliorations visent à mieux soutenir les architectures de microservices, les conteneurs et les déploiements cloud. Des améliorations ont été apportées au support des conteneurs pour optimiser la portabilité et la gestion des applications dans des environnements conteneurisés comme Docker et Kubernetes. De plus, des fonctionnalités ont été ajoutées pour faciliter le développement et le déploiement d’applications basées sur des microservices, en améliorant les capacités de communication interservices et de gestion des dépendances.
Les améliorations des API sont un autre domaine clé, avec l’introduction de nouvelles API. Les API pour la gestion des fichiers et des réseaux ont été améliorées pour intégrer des fonctionnalités plus avancées et plus performantes. Les API existantes ont également été optimisées pour améliorer leur utilisation et leur performance, avec des améliorations dans les API de traitement des flux (streams) et de manipulation des données. Des outils comme OpenAPI (pour les API REST) et AsyncAPI (pour les API asynchrones, comme celles utilisées dans des architectures Event-Driven) sont largement adoptés dans l’écosystème Java. Il témoigne également de l’adaptation de la plateforme de développement aux nouvelles approches « design first », facilitant la collaboration et l’intégration entre équipes techniques et fonctionnelles.
… pour augmenter la productivité des développeurs
Ces API REST sont souvent déployées pour fournir des services à des applications web ou mobiles, dans des environnements nécessitant un haut niveau de performance et de sécurité. La gestion de la transformation de données et leur ingestion en masse, typique dans des systèmes nécessitant des traitements lourds comme les plateformes financières ou les solutions de commerce électronique, s’appuie sur les capacités de gestion de la mémoire et de la multithread de Java.Les outils de développement ont été améliorés pour augmenter la productivité des développeurs. Les outils de débogage ont été dotés de capacités pour faciliter l’identification et la résolution des problèmes. De nouveaux outils ont été introduits pour faciliter le développement, le débogage et le déploiement des applications, avec des fonctionnalités avancées pour l’analyse de la performance et la gestion des dépendances.
La compatibilité et l’évolutivité sont également des priorités pour Oracle, avec l’accent mis sur le maintien de la compatibilité avec les versions précédentes de Java pour garantir une transition en douceur, et de s’assurer que les nouvelles fonctionnalités sont rétrocompatibles avec les versions antérieures, tout en permettant une évolution continue de la plateforme pour répondre aux besoins futurs des développeurs et des entreprises. De plus, Oracle a annoncé que Oracle Code Assist, le compagnon de codage IA, sera initialement optimisé pour Java. Ce service sera également disponible pour d’autres langages tels que C, C++, Go, Python, et Ruby, parmi d’autres.
Garantir une exécution fiable et rapide des applications
Dans un paysage informatique bousculé par une accélération technologique sans précédent, déclenchée par l’IA et l’exploitation des données, il s’agit pour Oracle de garantir une exécution fiable et rapide des applications. Au cœur de cette révolution, le cloud a joué un rôle central en démocratisant des infrastructures flexibles, modulables et à la demande, et en permettant une augmentation massive des capacités de calcul et de stockage disponibles. Le tout dans des environnements distribués.L’IA est venue rajouter ses couches technologiques aux nombreux prérequis, comme le traitement et l’exploitation d’immenses quantités de données, et l’exécution rapide et sécurisée des applications au temps de réponse contraint. Ce besoin d’intégration et de traitement des événements en temps réel est devenu un impératif pour des systèmes nécessitant une haute réactivité, telle que les plateformes de trading financier, les solutions logistiques ou l’IoT.
Des architectures comme celles pilotées par les événements (Event-Driven Architecture) et les microservices s’imposent de plus en plus, permettant aux systèmes d’opérer dans des environnements où l’interopérabilité et la rapidité d’exécution sont critiques. L’adoption de standards comme OpenAPI et AsyncAPI témoigne également de l’adaptation de la plateforme de développement aux nouvelles approches « design first », facilitant la collaboration et l’intégration entre équipes techniques et fonctionnelles.