Oracle lance Java 26, la dernière version du langage de programmation et de la plateforme de développement, avec des améliorations axées sur l'intégration de l'IA, le chiffrement et la productivité

Oracle a annoncé la disponibilité de Java 26, la dernière version du langage de programmation et de la plateforme de développement numéro un au monde. Java 26 (Oracle JDK 26) apporte des milliers d'améliorations qui boostent la productivité des développeurs, simplifient le langage et aident les développeurs à intégrer des fonctionnalités d'IA et de chiffrement dans leurs applications.

Java est un ensemble de logiciels et de spécifications qui fournit une plateforme logicielle permettant de développer des applications et de les déployer dans un environnement informatique multiplateforme. Java est utilisé sur une grande variété de plateformes informatiques, allant des appareils embarqués et des téléphones mobiles aux serveurs d'entreprise et aux supercalculateurs. Les applets Java, moins courantes que les applications Java autonomes, étaient généralement exécutées dans des environnements sécurisés et isolés (sandbox) afin d'offrir de nombreuses fonctionnalités des applications natives tout en étant intégrées dans des pages HTML.

L'écriture en langage de programmation Java est le principal moyen de produire du code qui sera déployé sous forme de bytecode dans une machine virtuelle Java (JVM) ; des compilateurs de bytecode sont également disponibles pour d'autres langages, notamment Ada, JavaScript, Kotlin (le langage Android préféré de Google), Python et Ruby. De plus, plusieurs langages ont été conçus pour s'exécuter en mode natif sur la JVM, notamment Clojure, Groovy et Scala. La syntaxe de Java s'inspire largement du C et du C++, mais ses fonctionnalités orientées objet s'inspirent de Smalltalk et d'Objective-C.

Java évite certaines constructions de bas niveau telles que les pointeurs et dispose d'un modèle de mémoire très simple où les objets sont alloués sur le tas (bien que certaines implémentations, par exemple toutes celles actuellement prises en charge par Oracle, puissent utiliser l'optimisation par analyse d'échappement pour allouer sur la pile à la place) et où toutes les variables de type objet sont des références. La gestion de la mémoire est assurée par un ramasse-miettes automatique intégré, géré par la JVM.

Récemment, Oracle a annoncé la disponibilité de Java 26, la dernière version du langage de programmation et de la plateforme de développement numéro un au monde. Java 26 (Oracle JDK 26) apporte des milliers d'améliorations qui boostent la productivité des développeurs, simplifient le langage et aident les développeurs à intégrer des fonctionnalités d'IA et de chiffrement dans leurs applications.

Afin d'aider les développeurs à rationaliser et à améliorer davantage leurs initiatives de développement, Oracle annonce également le nouveau Java Verified Portfolio (JVP), qui fournit aux développeurs un ensemble sélectionné d'outils, de frameworks, de bibliothèques et de services pris en charge par Oracle, y compris une assistance commerciale pour JavaFX, un framework d'interface utilisateur basé sur Java, et Helidon, un framework Java pour les microservices. De plus, Oracle a l'intention d'aligner le rythme de publication d'Helidon sur celui des versions Java et de proposer Helidon en tant que projet OpenJDK.

Nom : 1.jpg
Affichages : 6194
Taille : 28,5 Ko

« Depuis plus de 30 ans, les entreprises s'appuient sur la plateforme et le langage Java pour alimenter leurs systèmes critiques et soutenir le développement rapide d'applications et de services », a déclaré Arnal Dayaratna, vice-président de la recherche en développement logiciel chez IDC. « L'évolution continue de la plateforme permet aux entreprises d'intégrer des capacités transformatrices dans leurs applications, tout en préservant la fiabilité et la sécurité qui caractérisent les logiciels critiques. En étendant les fonctionnalités de Java avec de nouvelles fonctionnalités et de nouveaux services, tels que des capacités avancées en matière d'IA et de sécurité, Java 26 offre aux entreprises une voie plus rapide vers l'innovation. »

« Java joue un rôle essentiel en tant que technologie d’entreprise fondamentale depuis plus de 30 ans, servant de pilier aux piles d’applications des entreprises et les aidant à créer des applications et des services puissants, fiables et sécurisés », a déclaré Georges Saab, vice-président senior d’Oracle Java Platform et président du conseil d’administration d’OpenJDK. « Les nouvelles fonctionnalités de Java 26 reflètent l’engagement d’Oracle à aider ses clients à exploiter l’IA et la cryptographie pour créer des applications qui accélèrent la croissance de leur activité. Avec l’introduction de JVP, les développeurs peuvent rationaliser leurs projets de développement à l’aide d’une suite d’outils fiables pris en charge par Oracle, notamment Helidon, un framework Java rapide et léger permettant de créer des microservices hautement performants et des applications basées sur l’IA. »

Principales propositions d'amélioration du JDK (JEP)

Fonctionnalités du langage

- JEP 530 : Types primitifs dans les motifs, instanceof et switch (quatrième aperçu) : aide les développeurs à accroître leur productivité et à rationaliser le développement d'applications intégrant l'inférence IA en rendant Java plus uniforme et plus expressif. Elle élimine plusieurs restrictions relatives aux types primitifs qui créent des frictions lors de l'utilisation de la correspondance de motifs, de instanceof et de switch. Pour aider les développeurs à améliorer encore leur productivité, elle renforce également la définition de l’exactitude inconditionnelle et applique des contrôles de dominance plus stricts dans les constructions switch, permettant ainsi au compilateur d’identifier et de réduire un plus large éventail d’erreurs de codage.

Mises à jour de performances

- JEP 522 : G1 GC : Amélioration du débit par la réduction de la synchronisation : aide les développeurs à traiter plus de travail en moins de temps en améliorant l’efficacité de la mémoire. Elle réduit la synchronisation entre les threads de l'application et ceux du ramasse-miettes, augmentant ainsi le débit avec le ramasse-miettes G1. En s'exécutant plus rapidement et en prenant en charge davantage d'utilisateurs sans matériel supplémentaire, Java améliore l'efficacité, réduit les coûts d'infrastructure et offre une expérience utilisateur plus fluide.

Fonctionnalités du projet Leyden

- JEP 516 : Mise en cache d'objets à l'avance avec n'importe quel ramasse-miettes : Améliore la productivité des développeurs et l'efficacité des ressources en accélérant le temps de démarrage des applications Java avec n'importe quel ramasse-miettes (GC). Il permet le chargement séquentiel en mémoire d'objets Java pré-initialisés et mis en cache à partir d'un format neutre, indépendant du ramasse-miettes. Il améliore également le cache « ahead-of-time », permettant à la machine virtuelle Java HotSpot d'améliorer les temps de démarrage et de préchauffage et d'être utilisée avec n'importe quel ramasse-miettes, y compris le ZGC à faible latence. Cela aide les développeurs à réduire les délais de démarrage des applications, à faire évoluer leurs applications plus rapidement et à offrir une meilleure expérience utilisateur.

Bibliothèques

- JEP 500 : Prépare à ce que la décision finale soit définitive : aide les développeurs à améliorer la sécurité et la fiabilité des applications en empêchant les modifications involontaires, les altérations ou les erreurs accidentelles dans les systèmes métier critiques. Elle émet des avertissements concernant l'utilisation de la réflexion profonde pour modifier des champs final et permet aux développeurs de modifier ces champs lorsque cela est indispensable, afin d'éviter à la fois les avertissements actuels et les restrictions futures. Ce changement crucial renforce le principe de « l'intégrité par défaut » de Java, qui vise à protéger les données sensibles et la logique métier, à réduire les risques cachés et à diminuer le risque de bogues ou de failles de sécurité.

- JEP 517 : HTTP/3 pour l'API client HTTP : aide les développeurs à gagner en productivité en facilitant l'écriture de code interagissant avec les serveurs HTTP. Elle met à jour l'API client HTTP pour prendre en charge le protocole HTTP/3, permettant ainsi aux bibliothèques et aux applications d'interagir avec les serveurs HTTP/3 avec un minimum de modifications du code. En éliminant ces goulots d'étranglement courants et en permettant une récupération plus rapide des données avec une latence réduite, elle aide les microservices et les applications Java pilotées par des API à bénéficier de performances accrues et de connexions réseau plus fiables.

- JEP 526 : Constantes paresseuses (deuxième aperçu) : aide les développeurs à gagner en productivité et à optimiser l'utilisation des ressources en offrant une plus grande flexibilité dans le moment de leur initialisation, ce qui est particulièrement utile pour les applications basées sur l'IA et les données. Grâce à une nouvelle API pour les constantes paresseuses, qui sont des objets contenant des données non modifiables, la JVM traite ces constantes comme de véritables constantes afin d'offrir les mêmes performances que la déclaration d'un champ final. De plus, en permettant aux applications Java et à leurs services cloud natifs et basés sur l'IA de se lancer plus rapidement et d'utiliser les ressources informatiques plus efficacement, cela aide les développeurs à réaliser des déploiements agiles et évolutifs qui se traduisent par des économies de coûts et une meilleure expérience pour les utilisateurs finaux.

- JEP 525 : Concurrence structurée (sixième aperçu) : Aide les développeurs à améliorer la maintenabilité, la fiabilité et l'observabilité du code multithread, ce qui est particulièrement bénéfique pour améliorer l'évolutivité et la résilience des charges de travail IA et cloud natives. Elle simplifie la programmation concurrente via une API de concurrence structurée, qui traite les groupes de tâches liées s'exécutant dans différents threads comme une seule unité de travail et aide à réduire les risques courants liés à l'annulation et à l'arrêt, tels que les fuites de threads et les retards d'annulation.

- JEP 529 : API vectorielle (11e version d'incubation) : Aide les développeurs à améliorer les performances et la rentabilité de leurs applications Java en leur permettant d'offrir davantage d'informations et de valeur ajoutée avec moins de matériel. L'API vectorielle exprime des calculs vectoriels qui se compilent de manière fiable lors de l'exécution en instructions vectorielles optimales sur les architectures CPU prises en charge, ce qui se traduit par un traitement plus rapide pour l'analyse de données, l'inférence IA et les charges de travail de calcul scientifique. Cela permet aux développeurs d'obtenir des performances supérieures à celles des calculs scalaires équivalents souvent utilisés dans les scénarios d'inférence IA et de calcul.

Bibliothèques de sécurité

- JEP 524 : Codages PEM d'objets cryptographiques (deuxième aperçu) : aide les développeurs à améliorer la productivité et à renforcer la sécurité des applications Java pour les formats de sécurité largement utilisés grâce à une nouvelle API de codage. L'API encode les objets représentant des clés cryptographiques, des certificats et des listes de révocation de certificats dans le format de transport de courrier électronique à confidentialité renforcée (PEM), largement utilisé, puis les décode à nouveau en objets. Cela réduit le risque d'erreurs, simplifie la conformité et améliore la portabilité et l'interopérabilité des applications Java sécurisées en rationalisant la configuration et l'intégration de la cryptographie pour répondre aux besoins des entreprises, du cloud et des réglementations.

Fonctionnalités de rationalisation

- JEP 504 : Suppression de l'API Applet : permet aux développeurs de réduire l'encombrement lié à l'installation et au code source, et d'améliorer les performances, la stabilité et la sécurité des applications en supprimant l'API Applet, qui avait été marquée comme obsolète dans le JDK 17 et ne fait plus partie de la plateforme.


Améliorations supplémentaires en matière de sécurité, de fiabilité et de performances

Outre les 10 JEP, Java 26 propose des dizaines de mises à jour qui aident les organisations à renforcer la sécurité, la fiabilité et les performances de leurs applications. Avec Java 26, les organisations peuvent désormais rationaliser le chiffrement sécurisé grâce au chiffrement hybride à clé publique (HPKE) conforme aux normes de l'industrie, pérenniser leurs chaînes d'approvisionnement avec la signature de fichiers JAR prête pour l'ère post-quantique, et bénéficier d'une prise en charge améliorée des normes mondiales grâce aux mises à jour vers Unicode 17.0 et CLDR v48. De plus, des contrôles renforcés pour les algorithmes cryptographiques et les keystores hérités renforcent encore davantage la sécurité et la conformité, ce qui aide les organisations à se moderniser en toute confiance.

Les performances et la fiabilité des applications sont améliorées grâce à des dizaines de mises à jour supplémentaires qui permettent un démarrage plus rapide de la JVM, un ramasse-miettes plus efficace, une compilation C2 JIT étendue et une gestion plus intelligente du tas. De plus, les développeurs et les administrateurs peuvent gagner en productivité grâce à de nouvelles fonctionnalités, notamment le téléchargement de fichiers par région dans HttpClient, une création d'images d'exécution plus stricte, une API de métriques JVM améliorée et un nouveau mode sombre pour JavaDoc.

Les fonctionnalités de la version Java 26 sont le fruit d'une collaboration continue entre Oracle et les membres de la communauté mondiale des développeurs Java via OpenJDK et le Java Community Process (JCP).

Source : Annonce de Java 26

Et vous ?

Pensez-vous que cette annonce est crédible ou pertinente ?
Quel est votre avis sur le sujet ?

Voir aussi :

Oracle annonce la publication de Java 25 apportant des améliorations qui optimisent le langage Java, étendent ses capacités d'IA et aident les développeurs à accroître leur productivité

Près de 75 % des utilisateurs d'Oracle Java ont fait l'objet d'un audit de conformité logicielle au cours des trois dernières années, les coûts élevés de licence les poussent vers les alternatives open source

Java fête ses 30 ans : retour sur l'évolution d'un langage qui a su rester pertinent à l'ère du cloud, du DevOps et de l'IA. Ce vétéran du développement peut-il encore séduire les nouvelles générations ?