JDK 11 : trois nouveautés sont prévues ainsi que la suppression de JAVA EE, JavaFX et CORBA,
Dans le cadre des mises à jour semestrielles

Le , par Victor Vincent

235PARTAGES

8  0 
Dans le cadre de la nouvelle cadence de lancement de chaque six mois, adoptée pour l’édition standard de Java, Oracle est en train de peaufiner les dernières fonctionnalités de prochaine la version du JDK, la version 11, dont la sortie est prévue en septembre 2018. Cette version contrairement à JDK 10, est une version LTS pour « Long Term Support » ou version avec un support à long terme. Elle devrait avoir un support Oracle de premier niveau jusqu’en septembre 2023 et un support étendu incluant des correctifs et des alertes de sécurité jusqu’en 2026.

Succédant au JDK 10 lancé le 20 mars, seules trois nouvelles fonctionnalités sont annoncées à ce jour bien que d’autres puissent s’y greffer avant la date de sortie prévue.

  • Le format de fichier de classe Java qui sera étendu pour prendre en charge une nouvelle forme de pool de constante, CONSTANT_Dynamic.
  • Le mot clé « var » sera désormais utilisable lors de la déclaration des paramètres formels d'une expression lambda typée implicitement. En d’autres termes, une syntaxe à variable locale pour les paramètres lambda doit suivre la syntaxe d'une déclaration de paramètre formelle dans une expression implicitement typée avec la syntaxe d'une déclaration de variable locale.
  • Le « garbage collector » ou ramasse-miette Epsilon, annoncé en tant que collecteur "no-op", gérera l'allocation de mémoire sans implémenter de mécanismes de récupération de mémoire. Les cas d'utilisation d'Epsilon comprennent les tests de performance, la pression de la mémoire et l'interface de la machine virtuelle. Il pourrait également être utilisé pour des utilisations de courtes durées.



Parallèlement à ces ajouts, certaines fonctionnalités ne seront plus présentes. En effet dans la version Java 11, Java FX ainsi que les modules CORBA et Java JEE seront supprimés. La suppression de JavaFX étant en cours se prolongera dans cette version puisque n’étant pas liée au programme de mise à jour semestrielle de Java JDK. Déprécié depuis Java SE9, le retrait des modules Java EE et CORBA était une mesure prévue et sera effectif avec JDK11.
La suppression de CORBA peut être justifiée par deux facteurs. Premièrement, elle date des années 1990 et ne recèle plus aucun intérêt pour le développement d’applications Java modernes d’après Oracle. Enfin, les coûts de maintenance sont élevés comparés aux bénéfices rapportés. Cependant, cette suppression risque d’entrainer des dysfonctionnements sur des implémentations existantes. En effet, ces dernières risquent de ne pas fonctionner si elles n’incluent qu’une partie de l’API CORBA. Elles s’attendront à ce que le JDK leur fournisse le reste. De plus, il n’existe pas de versions tierces pour CORBA et il est peu probable qu’un tiers se décide à en prendre la charge.

Pour ce qui est de la plateforme JAVA EE, la suppression est due à des difficultés de maintenance qu’elle a entrainées dans JAVA SE au fil de ses évolutions. Sortie en décembre 2011, JAVA SE 6 était accompagnée d’une large panoplie des services web utiles au développeur. Parmi ceux-ci, on peut en citer quatre qui étaient dédiés à JAVA JEE : JAX-WS (Java API for XML-based Web Services,**JAXB (Java Architecture for XML Binding), JAF (JavaBeans Activation Framework) et Common Annotations for Java. Ces ajouts de fonctionnalités pour JAVA EE ont entrainé des complications pour JAVA SE notamment parce qu’ils incluaient des fonctionnalités sans rapport avec cette dernière. Ainsi Oracle affirme qu’avec des versions « standalone » disponibles sur des sites tiers, il n’est plus nécessaire de l’inclure dans JAVA SE ou dans le JDK. Cependant, certaines applications pourraient ne pas compiler si elles s’appuient sur un support prêt à l’emploi du JDK pour les API et outils Java EE. Des incompatibilités binaires et de source se produiraient lors de la migration de JDK 6,7 et 8 vers une version ultérieure. Oracle recommande aux développeurs concernés par ces risques de déployer sur des versions alternatives des technologies Java EE à la place.

Source : Mail List Open JDK, Open JDK

Et vous ?

Que pensez-vous de la suppression annoncée des trois modules cités plus haut de JDK 11 ?

Voir aussi

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

Java 8 ne va plus recevoir de mises à jour et correctifs de sécurité à partir de septembre à moins de passer à un support commercial

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

Avatar de Pill_S
Membre expert https://www.developpez.com
Le 28/03/2018 à 9:38
Suppression de... JavaFX? J'ai bien lu? C'est une blague??!

N'ayant jamais vraiment utilisé, je ne vais pas trop m'en plaindre, mais par contre ça me semblait un framework moderne pour développer du standalone... le successeur de swing... mis en avant par Oracle (au moins durant un temps...) comme LA solution à tous nos problèmes

ça devient un package séparé? ou c'est vraiment end of life?
2  0 
Avatar de GLDavid
Membre expert https://www.developpez.com
Le 28/09/2018 à 16:41
Bonjour

Enfin, Haley termine son propos en reconnaissant que l’absence du soutien des ingénieurs d’Oracle constituera un défi pour la communauté Java. Mais pour lui, ce défi devrait permettre à la communauté de prouver qu’elle peut toujours tenir sans cette entreprise. Un appel est donc lancé aux contributeurs pour assurer la pérennité d’OpenJDK.
J'appelle cela une liberation. Pour être franc et avoir été pendant longtemps un codeur Java, la nouvelle de l'acquisition de Java par Oracle m'a été désagréable et les évènements consequents ne m'ont pas rassurés. On savait qu'Oracle essaierait de tirer le maximum de bénéfices.
Là, je vois une prise de conscience et un appel à ce que Java soit clairement du domaine libre. En gros, OpenJDK serait la base et norme, Oracle peut faire ce qu'il veut autour de cette base.

@++
2  0 
Avatar de adiGuba
Expert éminent sénior https://www.developpez.com
Le 29/09/2018 à 20:27
C'est toutefois un cas un peu particulier, car il utilise une librairie de Java EE, et donc qui ne fait pas partie de l'API standard de Java SE...

La vrai solution serait de fournir une implémentation avec le programme.

Pour la grande majorité des programmes le fonctionnement reste identique qu'en Java 8 ou inférieur tant qu'on n'utilise pas les modules.
2  0 
Avatar de BugFactory
Membre expérimenté https://www.developpez.com
Le 28/03/2018 à 11:40
D'après
https://blogs.oracle.com/java-platfo...oadmap-updates
JavaFx sera disponible comme module séparé.

J'ai un projet JavaFx en production et ça ne me plait pas. JavaFx a besoin de davantage d'engagement de la part d'Oracle, pas moins.
1  0 
Avatar de adiGuba
Expert éminent sénior https://www.developpez.com
Le 29/03/2018 à 13:26
Personnellement je vois plutôt d'un très bon œil le fait que certains modules puissent être détaché du JRE.
Le JRE devrait vraiment se concentrer sur l'essentiel.

Et ce n'est pas forcément une mise à mort.
Au contraire le fait de séparer ces modules apporte même des avantages :
  • Ils pourront évoluer indépendamment de Java et avoir des cycles de release différent sans avoir à attendre la prochaine version de Java.
    Et ce même si avec le passage aux releases tous les 6 mois le problème est moins flagrant qu'avant...
  • Ils auront la possibilité de proposer des évolutions "incompatibles", ce qui est quasi-impossible dans le standard sans tout casser.
    Avec des modules distincts on peut tout à fait envisager cela sans trop de problème.


Reste juste les problèmes de déploiements soulevé par professeur shadoko... mais je ne saurais en dire plus vu que je n'ai pas encore touché à Java 9 !
1  0 
Avatar de Pill_S
Membre expert https://www.developpez.com
Le 29/03/2018 à 14:02
Tout dépend toujours du point de vue sous lequel on observe un événement...

Personnellement, je vois ça plutôt comme quelque chose de mauvais, quand tu dis:


Ils pourront évoluer indépendamment de Java et avoir des cycles de release différent sans avoir à attendre la prochaine version de Java.
... moi je retiens plutôt:

Et ce même si avec le passage aux releases tous les 6 mois le problème est moins flagrant qu'avant...
donc avantage limité, mais surtout:

Ils auront la possibilité de proposer des évolutions "incompatibles"
... et ça ça peut être plutôt méchant. Bien que n'ayant pas trop codé en C/C++, j'ai entendu tellement de fois les légendaires citations du genre "ouaaaaais quand tu prends la version 1.2 du compilateur avec la version 3.4 de telle librairie, ça fait que la version 5.6 de la dépendance truc a un bug alors faut upgrader machintruc en version 7.8 mais si tu fais ça tu pourras plus utiliser la syntaxe bidule-machin"...

On était plutôt épargné avec Java, étant donné que tout beaucoup était géré par Sun/Oracle, on utilisait un runtime cohérent. J'ai peur que cela soit en train de disparaitre et que tout devienne très bordelique avec un JRE explosé en de multiples dépendences, plus vraiment sous contrôle...

PS: souvenez-vous de Flex. ça lui a pas trop réussi d'être désolidarisé d'Adobe...
1  0 
Avatar de adiGuba
Expert éminent sénior https://www.developpez.com
Le 11/09/2018 à 18:16
Citation Envoyé par grunt2000 Voir le message
Personne n'est capable de migrer.
Il y a pourtant une solution simple : ne pas utiliser le système de module !

Tant que les modules ne seront pas largement adoptés par les librairies tierces, ce sera inutilisable (ou difficilement).

C'est pas vraiment anormal, on avait eu un peu les mêmes problèmes avec les Generics...
1  0 
Avatar de adiGuba
Expert éminent sénior https://www.developpez.com
Le 27/09/2018 à 20:46
L'OpenJDK c'est la version de référence (depuis je ne sais plus quelle version).
La version d'Oracle n'est juste qu'une des implémentations parmi d'autre (comme IBM).

Rien n'a vraiment changé de ce côté là. C'était déjà comme cela avant.

Ce qui a changé c'est que desormais le JDK d'Oracle est soumis à un accord commercial.
En clair il n'est plus gratuit... Contrairement à l'OpenJDK.

Bref pour continuer à l'utiliser gratuitement c'est par ici :
https://jdk.java.net/11/
1  0 
Avatar de esperanto
Membre éprouvé https://www.developpez.com
Le 01/10/2018 à 16:21
Citation Envoyé par GLDavid Voir le message
En gros, OpenJDK serait la base et norme, Oracle peut faire ce qu'il veut autour de cette base.
ça risque plutôt d'être l'inverse: tant qu'Oracle restera seul dépositaire de la spécification, c'est leur version qui sera considérée comme la base.
De plus les entreprises ont souvent tendance à installer la version d'Oracle plutôt que la version libre.
Ensuite Oracle peut très bien décider de ne plus diffuser gratuitement certaines évolutions de la spécification, de sorte que l'OpenJDK ne pourra plus suivre.

AJOUT
Et ce n'est pas que pure spéculation, il y a déjà un précédent. Quand Oracle a repris Java, une de leur premières mesures fut de ne plus fournir les protocoles de test de certification aux concurrents libres, notamment la machine virtuelle proposée par Apache.
Plus qu'à attendre que Red hat se fâche avec eux, et bientôt l'Open JDK sera considéré comme un concurrent.
1  0 
Avatar de Mickael_Istria
Membre émérite https://www.developpez.com
Le 01/10/2018 à 18:51
Citation Envoyé par esperanto Voir le message
ça risque plutôt d'être l'inverse: tant qu'Oracle restera seul dépositaire de la spécification, c'est leur version qui sera considérée comme la base.
De plus les entreprises ont souvent tendance à installer la version d'Oracle plutôt que la version libre.
Ensuite Oracle peut très bien décider de ne plus diffuser gratuitement certaines évolutions de la spécification, de sorte que l'OpenJDK ne pourra plus suivre.
Des gens disaient exactement la meme chose pour Java EE il y a 7-8 ans, et en plus pretendaient que c'etait une raison de choisir Spring!
En 2018, si quqleu'un redit ca, on repond "LOL".
On peut esperer qu'en 2023, en lisant ce message, on se dira "LOL" aussi.
1  0 
Contacter le responsable de la rubrique Accueil

Partenaire : Hébergement Web