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.
« 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...
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.