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