IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

JDK 17 : Java 17 sera une version LTS et ses nouveautés incluent un nouveau pipeline de rendu pour macOS
Et une API uniforme pour les générateurs de nombres pseudo-aléatoires

Le , par Bill Fassinou

135PARTAGES

16  0 
Environ un mois après qu'Oracle a annoncé la disponibilité générale du JDK 16 (Java 16), son successeur, le JDK 17 a déjà commencé par prendre forme. Bien qu'il ne soit pas prévu avant septembre, cinq des nouvelles fonctionnalités prévues pour être intégrées à Java 17 sont déjà connues. L'un des changements annoncés prévoit de supprimer le compilateur expérimental AOT (ahead-of-time) et JIT (just-in-time) basé sur Java. Java 17 sera une version de support à long terme (LTS), il apportera un nouveau pipeline de rendu pour macOS et une API uniforme pour les générateurs de nombres pseudo-aléatoires est également prévue.

Oracle a publié Java 16 avec 17 nouveautés visant à améliorer la productivité des développeurs. Cette version du JDK a été livrée avec la finalisation des enregistrements et du filtrage par motif (Pattern Matching) pour l'opérateur instanceof, et quelques améliorations du langage présentées en préversion dans Java 14. Les développeurs pourront également utiliser le nouvel outil de packaging pour livrer des applications Java autocontenues, mais aussi découvrir trois interfaces de programmation en incubation : l'API Vecteur, l'API d'édition de liens étrangers et l'API d'accès à la mémoire étrangère.



Il y a en outre une fonctionnalité qui est disponible en préversion : les classes scellées. La deuxième version annuelle du JDK, notamment le JDK 17, est prévue pour le mois de septembre prochain et intégrera les nouveautés suivantes :

Suppression du compilateur AOT et JIT (JEP 410)

Selon l'équipe du JDK, le compilateur expérimental AOT et JIT a été très peu utilisé, mais nécessite un effort de maintenance important. Le plan prévoit de maintenir l'interface du compilateur de la JVM au niveau Java afin que les développeurs puissent continuer à utiliser des versions du compilateur construites en externe pour la compilation JIT. La compilation AOT (l'outil jaotc) a été intégrée au JDK 9 en tant que fonctionnalité expérimentale. Cet outil utilise le compilateur Graal, qui est lui-même écrit en Java, pour la compilation AOT.

Ces fonctionnalités expérimentales n'ont pas été incluses dans les constructions du JDK 16 publiées par Oracle il y a quelques semaines. Selon le plan annoncé, trois modules JDK seraient supprimés : jdk.aot (l'outil jaotc) ; internal.vm.compiler, le compilateur Graal ; et jdk.internal.vm.compiler.management, le MBean Graal. Le code HotSpot lié à la compilation AOT serait également supprimé.

Un nouveau pipeline de rendu macOS (JEP 382)

La JEP 382 prévoit d'ajouter au langage un nouveau pipeline de rendu pour macOS, utilisant l'API Apple Metal comme alternative au pipeline existant qui utilise l'API OpenGL dépréciée. Cette proposition vise à fournir un pipeline de rendu entièrement fonctionnel pour l'API Java 2D et qui utilise le framework Metal de macOS. Selon l'équipe du JDK, cela est nécessaire au cas où Apple supprimerait l'API OpenGL d'une future version de macOS. Le pipeline devrait avoir une parité fonctionnelle avec le pipeline OpenGL existant, avec des performances aussi bonnes ou meilleures dans certaines applications et certains benchmarks.

Une architecture propre serait créée et s'intégrerait dans le modèle Java 2D actuel. Le pipeline coexisterait avec le pipeline OpenGL jusqu'à son obsolescence. L'objectif de la proposition n'est pas d'ajouter de nouvelles API Java ou JDK.

Portage du JDK sur macOS/AArch64 (JEP 391)

La JEP 391 est un projet de portage du JDK sur macOS/AArch64 en réponse au projet d'Apple de faire passer ses ordinateurs Macintosh de x64 à AArch64. Un portage AArch64 de Java existe déjà pour Linux et des travaux sont en cours pour Windows. Les développeurs Java s'attendent à réutiliser le code AArch64 existant de ces ports en employant la compilation 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 réservés du processeur.

Les changements pour macOS/AArch64 risquent de casser les ports existants Linux/AArch64, Windows/AArch64, et macOS/x64, mais le risque devrait être réduit par des tests de préintégration.

Générateurs de nombres pseudo-aléatoires (JEP 356)

La JEP 356 prévoit des générateurs de nombres pseudo-aléatoires améliorés qui fourniraient de nouveaux types d'interfaces et d'implémentations pour les générateurs de nombres pseudo-aléatoires (PRNG – pseudorandom number generators), y compris les PRNG sautables et une classe supplémentaire d'algorithmes PRNG divisibles (LXM). Selon cette proposition, une nouvelle interface, RandomGenerator, fournira une API uniforme pour tous les PRNG existants et nouveaux. Quatre interfaces RandomGenerator spécialisées seront fournies.

Ce plan est motivé par l'accent mis sur de nombreux aspects à améliorer dans le domaine de la génération de nombres pseudo-aléatoires en Java. L'effort ne prévoit pas de fournir des implémentations de nombreux autres algorithmes PRNG. Mais trois algorithmes communs ont été ajoutés, qui sont déjà largement déployés dans d'autres environnements de langage de programmation. Les objectifs du plan sont les suivants :

  • faciliter l'utilisation de divers algorithmes PRNG de manière interchangeable dans les applications ;
  • améliorer la prise en charge de la programmation basée sur les flux, en fournissant des flux d'objets PRNG ;
  • éliminer la duplication de code dans les classes PRNG existantes ;
  • préserver le comportement existant de la classe java.util.Random.

Dépréciation de l'API Applet pour suppression (JEP 398)

Selon l'équipe du JDK, cette API est essentiellement sans intérêt, puisque tous les fournisseurs de navigateurs Web ont supprimé la prise en charge des plug-ins de navigateur Java ou ont annoncé leur intention de le faire. L'API Applet a déjà été dépréciée, mais pas pour être supprimée, dans Java 9 en septembre 2017.

Source : JDK (Java) 17

Et vous ?

Que pensez-vous des nouvelles fonctionnalités de Java 17 ?

Voir aussi

Oracle annonce la disponibilité de Java 16 : tour d'horizon des nouvelles fonctionnalités et améliorations du JDK

Java 15 est déjà sur les rails : la prochaine version standard ajoutera des blocs de texte et des Garbage Collectors, et supprimera le moteur JavaScript Nashorn

Java 14 est disponible en version définitive avec de nouvelles fonctionnalités de productivité des développeurs, dont Switch Expressions, Records et autres

Marquée obsolète depuis 2016, l'API Applet sera bientôt définitivement supprimée de Java. Y a-t-il des raisons de regretter les applets Java ?

Java : Oracle va marquer l'API Applet obsolète dans le JDK 9, mais n'a pas l'intention de la supprimer de sitôt

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de Pierre Louis Chevalier
Expert éminent sénior https://www.developpez.com
Le 16/09/2021 à 15:17
Citation Envoyé par darklinux Voir le message
Oracle aurait dû le faire il y a longtemps
Ce problème a été résolu avec l'open JDK, la Oracle ne fait qu'acter une correction sur sa politique stupide, pour essayer de tenter de sauver son image qui devient de plus en plus déplorable.

Citation Envoyé par darklinux Voir le message
Résultat Java n 'est plus crédible
Ça c'est faux, exemple : Emploi développeur 2020 : les langages les plus demandés et les mieux payés Java et JavaScript caracolent en tête


Citation Envoyé par darklinux Voir le message
et Oracle non plus
Ca c'est possible :
Oracle annonce les résultats financiers du Q1 de l'exercice 2022 : ses actions chutent en raison d'un manque à gagner, malgré un chiffre d'affaires IaaS et SaaS s'élevant à 2,5 milliards de $
Oracle accusé d'avoir « braconné » des employés clés de CentralSquare Technologies pour détourner des secrets commerciaux, afin de développer l'une de ses activités
Une suppression de plus d'un millier d'emplois par Oracle serait actuellement en cours dans ses filiales en Europe
7  0 
Avatar de damthemad
Membre actif https://www.developpez.com
Le 24/09/2021 à 9:28
ho la belle reculade.
Oracle a fait du mal à Java avec toutes ces décisions débiles et sa tentative pitoyable de racket.
Oracle est devenue une société voyou ; ils feraient mieux de créer des technologies que d'essayer d'étrangler leur clients.
2  0 
Avatar de grunt2000
Membre éclairé https://www.developpez.com
Le 17/05/2021 à 16:20
Humm, ils auraient pu aussi faire disparaître les modules...
Le flop absolu.
1  1 
Avatar de darklinux
Membre extrêmement actif https://www.developpez.com
Le 16/09/2021 à 2:42
Oracle aurait dû le faire il y a longtemps , cela aurais de l’être un non-débat . Résultat Java n 'est plus crédible et Oracle non plus
2  9