JDK 10 : les fonctionnalités de la prochaine version de Java sont désormais gelées
La sortie est attendue pour le 20 mars 2018

Le , par Michael Guilloux, Chroniqueur Actualités
Mise à jour le 20/03/2018 : Oracle annonce la sortie officielle de Java 10

Oracle a annoncé aujourd'hui la disponibilité générale de Java 10 (JDK 10 ou Java SE 10), la première version sortie après l'adoption du nouveau cycle de publication de six mois. Malgré cette courte période de travail par rapport aux versions précédentes, Java 10 n'est pas juste une version plus stable et plus performante de Java 9. Cette version fournit au contraire un certain nombre de nouvelles fonctionnalités. Elle introduit notamment douze nouvelles améliorations majeures définies par les JEP (présentées plus bas) et dont les développeurs peuvent dès maintenant tirer parti.

Précisons toutefois qu'en raison du nouveau cycle de publication, JDK 10 ne sera supporté par Oracle que pendant six mois jusqu'à la sortie de JDK 11 LTS. Mais il est recommandé de passer à cette nouvelle version puisque la sortie du JDK 10 annonce également la fin des mises à jour et correctifs de sécurité gratuits pour le JDK 9.

Source : Blog Oracle

18/12/2017 : Conformément au calendrier de sortie du JDK 10, Mark Reinhold d'Oracle a annoncé le début de la phase Rampdown 1. Cette étape marque le gel de l'ensemble des fonctionnalités du JDK et le début de la correction des bogues. Dans une proposition, l'architecte en chef du JDK chez Oracle a donc défini ses objectifs pour cette nouvelle phase. Il s'agit notamment de corriger tous les bogues de priorité P1-P3 qui sont nouveaux dans le JDK 10 et des bogues P1-P3 supplémentaires ciblés pour le JDK 10 si le temps le permet. Il s'agira aussi de reporter tous les bogues P1-P2 qui sont nouveaux dans JDK 10, mais qui, pour une bonne raison, ne seront pas corrigés dans le JDK 10.

À ce stade, il est donc très peu probable d'introduire de nouveaux changements, excepté des améliorations tardives et à faible risque qui ajoutent de petits éléments de fonctionnalités manquantes ou améliorent la convivialité. Dans ce cas encore, il faudra que cela soit justifié par les feedbacks des développeurs, avant d'être approuvé. Les améliorations apportées aux tests et à la documentation quant à elles n'auront pas besoin d'approbation, à condition qu'elles soient identifiées par les labels appropriés noreg-self ou noreg-doc.

Pour en venir aux fonctionnalités de cette version, on peut citer les suivantes :

  • JEP 286 - Inférence du type des variables locales, qui vise à améliorer le langage Java pour étendre l'inférence de type aux déclarations de variables locales avec des initialiseurs ;

  • JEP 296 - Consolider la JDK Forest dans un référentiel unique. En combinant les nombreux référentiels du JDK Forest dans un référentiel unique, l'objectif est de simplifier et de rationaliser le développement. L'ajout des sources FX au JDK Forest ne fait toutefois pas partie de la proposition ;

  • JEP 304 - Interface Garbage-Collector. Ce JEP vise à améliorer l'isolation du code source des différents garbage collectors en introduisant une interface « propre » de garbage collector (GC) ;

  • JEP 307 - Récupération de mémoire complètement en parallèle pour le garbage collector G1 : améliorer les pires cas de latence de G1 en implémentant le parallélisme ;

  • JEP 310 - Application Class-Data Sharing. L'objectif est de réduire l'empreinte en partageant les métadonnées de classe communes entre les différents processus Java, améliorer le temps de démarrage et étendre la fonctionnalité Class-Data Sharing (CDS) existante pour permettre aux classes d'applications d'être placées dans l'archive partagée ;

  • JEP 312 - Introduction d'un moyen d'exécuter un callback sur les threads sans effectuer de safepoint VM global. Des threads individuels pourront être arrêtés au lieu que ça soit seulement possible d'arrêter tous les threads ou aucun thread ;

  • JEP 313 - Suppression de l'outil javah du JDK. Cette décision a été motivée par le fait que l'outil a été remplacé par une meilleure fonctionnalité dans javac, ajoutée dans le JDK 8. Cette fonctionnalité permet d'écrire des fichiers d'en-tête natifs au moment de la compilation du code source Java, ce qui élimine le besoin d'un outil distinct ;

  • JEP 314 - Amélioration de java.util.Locale et les API associées pour implémenter des extensions Unicode supplémentaires des balises de langue BCP 47. À partir de Java SE 9, les extensions de balises de langue BCP 47 U prises en charge sont ca et nu. Le JEP 314 ajoute le support pour les extensions supplémentaires cu (currency type), fw (first day of week), rg (region override) et tz (time zone) ;

  • JEP 316 - Allocation de tas sur d'autres dispositifs de mémoire : permettre à la machine virtuelle HotSpot d'allouer le tas d'objets Java sur un autre périphérique de mémoire, tel qu'un NV-DIMM, spécifié par l'utilisateur ;

  • JEP 317 - Compilateur JIT Java expérimental : permettre au compilateur JIT basé sur Java, Graal, d'être utilisé comme compilateur JIT expérimental sur Linux/x64 ;

  • JEP 319 - Certificats racines : fournir un ensemble par défaut de certificats d'autorité de certification (CA) racines dans le JDK. L'objectif est d'ouvrir les certificats racines dans le programme Java SE Root CA d'Oracle afin de rendre les builds OpenJDK plus attrayantes pour les développeurs et réduire les différences entre ces builds et les builds Oracle JDK ;

  • JEP 322 - Versioning basé sur le temps. Cette décision s'explique par le fait que le modèle de versioning introduit avec le JEP 223 (qui distingue facilement les versions majeures, mineures et de mise à jour de sécurité) n'est plus adapté aux prochaines versions du JDK. Oracle prévoit en effet de livrer de nouvelles versions de la plateforme Java SE et du JDK tous les six mois.

La sortie du JDK 10 est prévue pour le 20 mars 2018.

Mise à jour le 13/02/2018 : la première release candidate du JDK 10 est maintenant disponible

La dernière release candidate du JDK 10 étant attendue pour le 22 février, Oracle vient de publier la première RC. Dans un message dans la liste de diffusion de l’OpenJDK, Mark Reinhold, l’architecte en chef du JDK chez Oracle a annoncé hier qu’il n’y a pas de bogues de priorité P1 non résolus dans la dernière build 43, alors elle sera la première RC du JDK 10. Les binaires sont disponibles en téléchargement ici. Oracle ne va maintenant corriger que les bogues qui sont vraiment critiques pour la sortie du JDK.

Sources : Fonctionnalités du JDK 10, Gel des fonctionnalités du JDK 10, Annonce de la première release candidate du JDK 10

Et vous ?

Êtes-vous déjà passé à Java 9 ? Si oui, qu’en retenez-vous ?
Que pensez-vous de cette nouvelle version ?


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de koyosama koyosama - Membre éclairé https://www.developpez.com
le 13/02/2018 à 23:26
Wow on change d'époque là, Oracle sort Java rapidement maintenant.
Avatar de kaloo811 kaloo811 - Membre à l'essai https://www.developpez.com
le 14/02/2018 à 10:15
Grosse revolution chez mes clients, on commence tout juste a migrer vers Java8. Voir que Java10 arrive me laisse un peu dépressif (et je parle pas du reliquat en Java4). J'ai l'impression d'être assis sur le quai de la gare et de voir passer le train.
Avatar de la.lune la.lune - Membre chevronné https://www.developpez.com
le 15/02/2018 à 19:29
Citation Envoyé par kaloo811 Voir le message
Grosse revolution chez mes clients, on commence tout juste a migrer vers Java8. Voir que Java10 arrive me laisse un peu dépressif (et je parle pas du reliquat en Java4). J'ai l'impression d'être assis sur le quai de la gare et de voir passer le train.
Vu que les fonctionnalités introduits dans Java8 existent dans le 9 et le 10, tu peux sauter et passer à Java 9, déjà java 10 pour moi n'a pas vraiment quelque chose de phare en comparaison de Java 8 et 9. Donc avoir le 9 permet de migrer facilement vers le 10.
Avatar de yildiz-online yildiz-online - Membre émérite https://www.developpez.com
le 22/02/2018 à 16:01
tu peux sauter et passer à Java 9
On ne choisi pas la version de java à mettre en production sur le simple critère "c'est sorti", il faut faire l'état des lieux de l'écosystème et il n'est pas encore complètement mature, et surtout java 9 n'est pas une LTS, son support se termine ce mois de mars, c'est un gros risque de migrer avant la 18.9
Avatar de tchize_ tchize_ - Expert éminent sénior https://www.developpez.com
le 22/02/2018 à 20:27
autant pour la maturité du framework, je suis d'accord avec toi, gros risque. Pour ce qui est du LTS, ça ne concerne pas l'open JDK, juste les VMs livrées par oracle. Donc si tu déploie que de l'openjdk tu t'en tappe un peu les baloches des notifs EOL d'oracle
Avatar de yildiz-online yildiz-online - Membre émérite https://www.developpez.com
le 22/02/2018 à 20:38
OpenJdk deviendra bientot le standard redhat, mais c'est encore tout neuf, donc dans la majorité des parcs serveur t'auras de l'oracle
Avatar de tchize_ tchize_ - Expert éminent sénior https://www.developpez.com
le 22/02/2018 à 21:00
Mouais, on dois pas croiser les mêmes parcs du coup
Avatar de bouye bouye - Rédacteur/Modérateur https://www.developpez.com
le 20/03/2018 à 22:19
C'est la toute première fois depuis mes début qu'une nouvelle version sort alors que :
  1. Je ne maîtrise pas la précédente ;
  2. J'ai aucun outil ou IDE qui fonctionne correctement avec la précédente version ;
  3. Du coup je n'ai même pas commencé a porter des apps sur la version précédente.


Avatar de ben51 ben51 - Nouveau membre du Club https://www.developpez.com
le 21/03/2018 à 11:40
C'est normale que sur le sita java.com c'est toujours le JRE 8 qui est proposé au téléchargement ?
Avatar de prikama prikama - Nouveau membre du Club https://www.developpez.com
le 21/03/2018 à 11:47
je n'aime plus ces technos qui changent rapidement, genre comme angular chaque deux jours une version, laissez au moins le temps pour les gens pour écrire leurs problèmes dans stackoverflow
Contacter le responsable de la rubrique Accueil