vendredi, 19 avril 2024

JDK 17: les nouvelles fonctionnalités de Java 17

Bien qu’il ne soit attendu qu’en septembre, Java 17 a actuellement commencé à prendre forme, avec 4 nouvelles fonctionnalités préparées pour la mise à niveau vers Java de base jusqu’à présent. Dans le dernier changement, depuis le 27 avril, le compilateur spéculatif Java à l’avance (AOT) et juste à temps (JIT) sera supprimé.

Sur L’Entrepreneur: JDK 16: Les toutes nouvelles fonctionnalités de Java 16]

Java Advancement Set (JDK) 17 sera une version de support à long terme (LTS), avec un support prolongé d’Oracle prévu pour plusieurs années.

Les fonctionnalités soumises dans le cadre du JDK 17 d’OpenJDK incluent:

  • La suppression du compilateur spéculatif AOT et JIT, qui a été peu utilisé, nécessite cependant un effort d’entretien considérable. Le plan appelle à préserver l’interface utilisateur du compilateur JVM au niveau Java afin que les concepteurs puissent continuer à utiliser des variantes développées en externe du compilateur pour la collection JIT. La collection AOT (l’outil jaotc) a été incluse dans JDK 9 en tant que fonction expérimentale. L’outil utilise le compilateur Graal, lui-même composé en Java, pour la compilation AOT. Ces fonctionnalités expérimentales n’étaient pas incluses dans les développements JDK 16 publiés par Oracle et personne ne s’est plaint. Dans le cadre du plan recommandé, trois modules JDK seraient supprimés: jdk.aot (l’outil jaotc); internal.vm.compiler, le compilateur Graal; et jdk.internal.vm.compiler.management, le Graal MBean. Le code HotSpot associé à la collection AOT serait également éliminé.
  • Portage du JDK sur MacOS / AArch64 en réaction à la stratégie d’Apple de faire passer ses systèmes informatiques Macintosh de x64 à AArch64. Un port AArch64 pour Java existe actuellement pour Linux et des travaux sont en cours pour Windows. Les home builders Java s’attendent à réutiliser le code AArch64 existant à partir de ces ports en utilisant la collecte conditionnelle, comme c’est la norme dans les ports du JDK, pour tenir compte des différences dans les conventions de bas niveau telles que l’interface binaire de l’application et l’ensemble des registres de processeur réservés. Modifications pour la menace MacOS / AArch64 brisant les ports Linux / AArch64, Windows / AArch64 et MacOS / x64 existants, mais la menace sera réduite grâce au filtrage de pré-intégration.
  • Abandon de l’API Applet pour suppression. Cette API est fondamentalement sans importance, car tous les fournisseurs de navigateurs Web ont en fait éliminé le support des plug-ins de navigateur Java ou ont révélé des stratégies pour le faire. L’API Applet était auparavant obsolète, mais pas pour suppression, dans Java 9 en septembre 2017.
  • Un nouveau pipeline de rendu pour MacOS, utilisant l’API Apple Metal comme option du pipeline actuel qui utilise l’OpenGL obsolète API. Cette proposition est prévue pour offrir un pipeline de rendu entièrement pratique pour l’API Java 2D qui utilise la structure MacOS Metal et être préparé au cas où Apple supprimerait l’API OpenGL d’une future variation de MacOS. Le pipeline devrait avoir une parité fonctionnelle avec le pipeline OpenGL existant, avec une efficacité aussi grande ou bien meilleure dans certaines applications et benchmarks. Une architecture propre serait développée qui convient à la conception Java 2D actuelle. Le pipeline coexisterait avec le pipeline OpenGL jusqu’à ce qu’il soit obsolète. L’objectif de la proposition n’est pas d’ajouter de nouvelles API Java ou JDK.
  • Générateurs de nombres pseudo-aléatoires améliorés qui fourniraient de nouveaux types d’interfaces et implémentations pour les générateurs de nombres pseudo-aléatoires (PRNG), y compris des PRNG sautables et un classe supplémentaire d’algorithmes PRNG fractionnables (LXM). Une toute nouvelle interface utilisateur, RandomGenerator , fournirait une API cohérente pour tous les PRNG existants et neufs. Quatre interfaces utilisateur spécialisées RandomGenerator seraient fournies. La motivation de la stratégie est de se concentrer sur de nombreux emplacements pour l’amélioration dans le domaine de la génération de nombres pseudo-aléatoires en Java. L’effort ne nécessite pas de fournir des applications de nombreux autres algorithmes PRNG. Cependant, trois algorithmes typiques ont été ajoutés qui sont déjà couramment déployés dans d’autres environnements de langage de programmes. Les objectifs du plan sont les suivants:
    • Simplifier l’utilisation de nombreux algorithmes PRNG de manière interchangeable dans les applications.
    • Meilleure assistance pour les émissions basées sur des flux, fournissant des flux d’éléments PRNG.
    • Suppression de la duplication de code dans les classes PRNG existantes.
    • Conservation des habitudes existantes de la classe java.util.Random .

API de liaison étrangère, une API vectorielle et une mémoire étrangère accèdent à l’API, qui sont toutes actuellement en phase d’incubation dans la version JDK 16 publiée le 16 mars. Classes scellées, dans un deuxième aperçu dans JDK 16, pourrait finir par être généralement proposé dans JDK 17. La correspondance de modèles pourrait également être au centre des propositions du JDK 17.

Suivez les progrès les plus récents de Java et de l’évolution des logiciels. Inscrivez-vous à la newsletter L’Entrepreneur First Look]

Le 14 septembre a été fixé comme date d’accessibilité de base pour JDK 17. La sortie de production sera précédée par des étapes de ralentissement en juin et juillet et des perspectives de sortie en août. Les versions open source à accès anticipé de JDK 17 peuvent être découvertes sur jdk.java.net.

Les versions LTS telles que JDK 17 apparaissent tous les trois ans. La dernière version de LTS, JDK 11, a été publiée en septembre 2018. De nouvelles versions de Java arrivent tous les 6 mois. La ligne de version existante de Java de base est JDK 15.

.

Toute l’actualité en temps réel, est sur L’Entrepreneur

LAISSER UN COMMENTAIRE

S'il vous plaît entrez votre commentaire!
S'il vous plaît entrez votre nom ici