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 !

Oracle annonce la sortie officielle de Java 11 :
Tour d'horizon des principales nouveautés de cette version LTS

Le , par Michael Guilloux

1.4KPARTAGES

17  0 
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

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
Vous avez lu gratuitement 541 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.

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

Avatar de GLDavid
Expert confirmé 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.

@++
3  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 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 émérite 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 expert 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 
Avatar de grunt2000
Membre éclairé https://www.developpez.com
Le 27/09/2018 à 13:19
Pardonnez-moi d'être une freizh, mais je n'arrive pas à comprendre quelle est la différence entre la version open jdk et celle d'Oracle dans le code.

Deux équipes concurrentes font la course à chaque fois pour implémenter des fonctionnalités de chaque côté,
Code : Sélectionner tout
1
2
3
4
// Open JDK
public void increase() {
   this.value = this.value + 1;
}
Code : Sélectionner tout
1
2
3
4
// Oracle
public void increase() {
   this.value = 1 + this.value;
}
... en se tenant prêtes pour livrer toutes deux le 25 Septembre ?

ou bien : c'est le même code mais on fait un package payant pour Oracle, et un gratuit pour open-jdk, ou qu'est-ce qui change ?

Concrètement, c'est quoi les différences binaires entre les deux versions ?
0  0 
Avatar de darklinux
Membre extrêmement actif https://www.developpez.com
Le 27/09/2018 à 13:49
Il n ' y en a aucune , mais OpenJDK est la version de référence à Java
0  0 
Avatar de grunt2000
Membre éclairé https://www.developpez.com
Le 27/09/2018 à 14:58
Citation Envoyé par darklinux Voir le message
Il n ' y en a aucune , mais OpenJDK est la version de référence à Java
Du coup, comment une version OpenJDK se transforme en version Oracle ?
Parce qu'à ce compte, je vous fais aussi une version grunt2000 si vous voulez : s'il suffit de copier le binaire sur son site web.

D'où vient que c'est Oracle qui semble décider de ce qui sera implémenté dans Java, alors que ça devrait être du coup, si c'est OpenJDK le chef de file, et pourquoi les gens iraient chez Oracle acheter un JDK du coup, s'il est à l'exact identique de l'autre ?
0  0 
Avatar de
https://www.developpez.com
Le 27/09/2018 à 15:14
Citation Envoyé par grunt2000 Voir le message
Du coup, comment une version OpenJDK se transforme en version Oracle ?
Parce qu'à ce compte, je vous fais aussi une version grunt2000 si vous voulez : s'il suffit de copier le binaire sur son site web.

D'où vient que c'est Oracle qui semble décider de ce qui sera implémenté dans Java, alors que ça devrait être du coup, si c'est OpenJDK le chef de file, et pourquoi les gens iraient chez Oracle acheter un JDK du coup, s'il est à l'exact identique de l'autre ?
L'Open JDK est maintenu par Oracle, la version "Oracle" du JDK contient des modifications de licence, des ajustements de performances ou des implémentations spécifiques à certains environnements. Les notions de support ne sont pas les mêmes non plus.
0  0 
Avatar de grunt2000
Membre éclairé https://www.developpez.com
Le 28/09/2018 à 12:47
Juste pour que je comprenne bien, parce que ça ne m'est pas clair : pareil mais implémentation différente ?

Est-ce que la situation est celle-ci :

Oracle OpenJDK
Classes Mêmes CRC que OpenJDK Mêmes CRC que Oracle
Exécutables java.exe et javac.exe même taille et CRC/SHA-1/MD5... que OpenJDK java.exe et javac.exe même taille et CRC/SHA-1/MD5... que Oracle

Ou bien :
Les classes distribuées et les exécutables distribués peuvent différer binairement
et alors : comment précisément ?
1  1