Java : Oracle publie la premi�re release candidate du JDK 12
avec toutes les fonctionnalit�s majeures annonc�es sauf les litt�raux de cha�nes bruts
L�annonce a �t� faite le 15 f�vrier par Oracle que la premi�re version Release Candidate du JDK 12 est disponible en t�l�chargement pour les plateformes Linux, Mac OS et Windows. Cette version RC1 a �t� lanc�e, dit la JEP (proposition d�am�lioration du JDK), dans le but de recenser les bogues qu�il pourrait y avoir ainsi que les diff�rentes suggestions de la communaut� avant sa date de disponibilit� g�n�rale pr�vue pour le 19 mars prochain. Passons en revue sa feuille de route depuis l�annonce de sa version b�ta en d�cembre � ce jour.
La publication de la version b�ta du JDK 12 remonte � d�cembre dernier. � ce moment, plusieurs fonctionnalit�s sont apparues dans le kit de d�veloppement et plusieurs autres ont �t� annonc�es pour la suite de sa mise au point. Cette version b�ta alignait neuf nouveaut�s principales et quelques fonctionnalit�s telles que la prise en charge d'Unicode 11, un nouveau format de cl� priv�e cod�e x25519 et x448 compatible avec la norme RFC 8410. Les neuf caract�ristiques qui ont �t� pr�sent�es sont les suivantes :
- Shenandoah : c�est un ramasse-miettes � faible temps de pause en effectuant le travail d��vacuation simultan�e entre les threads java en cours d�ex�cution. Les temps de pause sont ind�pendants de la taille du tas ;
- suite Microbenchmark : c�est un outil pour aider les d�veloppeurs � utiliser les microcrit�res existant d�j� dans le code source du JDK ou en cr�er de nouveaux ;
- expression de commutation : apporte quelques modifications � l�instruction switch pour la rendre plus flexible ;
- litt�raux de cha�nes bruts : permettent aux d�veloppeurs de pouvoir utiliser des cha�nes litt�rales brutes sans �chappement ;
- API de constantes JVM : permet d�ajouter une API pour les descriptions nominales des principaux art�facts de classes et de fichiers de classe, en particulier les constantes pouvant �tre charg�es � partir du pool de constantes ;
- un apport AArch64, pas deux : sert � supprimer toutes les sources li�es aux arm64port pour permettre � tous les contributeurs de concentrer leurs efforts sur une impl�mentation ARM 64 bits unique et d��liminer le travail en double requis par la maintenance de deux ports ;
- archives CDS par d�faut : sert � am�liorer le processus de g�n�ration JDK afin de g�n�rer une archive CDS (Class Data Sharing) � l�aide de la liste de classe par d�faut sur des plateformes 64 bits ;
- collections m�lang�es abandonn�es pour G1 : permet d�annuler les collections d��l�ments lorsqu�elles peuvent d�passer la cible de pause ;
- retournez rapidement la m�moire valid�e non utilis�e de G1 : am�liore le r�cup�rateur G1 pour qu�il puisse renvoyer automatiquement la m�moire heap de Java au syst�me d�exploitation lorsqu�il est inactif.
Seulement quelques jours apr�s cette publication, la JEP annon�ait qu�une des fonctionnalit�s mises en avant dans la version b�ta ne sera probablement plus prise en charge ou ne sera plus int�gr�e dans le JDK 12. Il s�agissait des litt�raux de cha�nes bruts pour lesquels la JEP a indiqu� n�avoir pas encore trouv� le bon moyen d�impl�menter cette fonctionnalit� au sein du JDK 12.
� En examinant les commentaires que nous avons re�us, je ne suis plus convaincue que nous ayons encore trouv� le bon compromis entre complexit� et expressivit�, ou que nous en avons suffisamment explor� l�espace de conception pour �tre s�r que la conception actuelle est la meilleure que nous puissions faire. En le retirant, nous pouvons continuer � affiner la conception, explorer plus d'options et viser un aper�u r�pondant r�ellement aux exigences du processus de fonction de pr�visualisation (JEP 12) �, avait �crit dans un mail, Brian Goetz, architecte du langage Java chez Oracle.
La JEP a mis en ex�cution cette annonce plus tard, vers la fin du mois de d�cembre, en supprimant d�finitivement cette fonctionnalit� de la pr�version du JDK 12. Pour se justifier, la JEP avait list� plusieurs raisons � cette suppression. On pourrait citer par exemple le fait que les litt�raux de cha�ne peuvent s��tendre sur plusieurs lignes et n'interpr�te pas les s�quences d'�chappement telles que les \n correspondant aux �chappements Unicode de la forme \uXXXX ou le fait que les litt�raux de cha�nes bruts en g�n�ral ne prennent pas directement en charge l'interpolation de cha�ne. De nombreux autres probl�mes (par exemple les d�limiteurs) li�s aux litt�raux de cha�nes bruts avaient �t� cit�s par la JEP sur le site du OpenJDK.
Par comparaison � ses pairs, la JEP indiquait que les langages de programmation tels que C++, Groovy, JavaScript, Python pour ne citer que ceux-l� utilisent des litt�raux de cha�ne bruts et donc, qu'elle �tudie ces langages pour les d�limiteurs qu�ils utilisent ou pour rechercher des repr�sentations de cha�nes. Un groupe d�internautes avaient conseill� � la JEP de regarder dans Python 3.7 pour en tricher l�impl�mentation des litt�raux de cha�nes bruts qu�ils jugent �tre une r�ussite. � En fait, je craignais que Java ne soit trop influenc� par C# en ce qui concerne les cha�nes. Les d�veloppeurs Java devraient regarder dans Python 3.7 et non pas C# pour de belles syntaxes de cha�nes �, avait-il �crit en commentaire.
D�autres par contre, �taient un peu cat�goriques sur le sujet. Un parmi eux avait �crit ceci : � En termes simples, je ne vois que tr�s peu de cas d�utilisation o� les cha�nes brutes pourraient �tre utiles, qui permettent ou encouragent de nombreuses mauvaises pratiques. Dans mon esprit, les cha�nes multilignes sont encore moins utiles et ajoutent une complexit� inutile (voir la section sur la gestion des marges). Je ne pense pas que �a vaille le coup �.
De nombreux tests �tant faits depuis d�cembre pass�, la RC1 vient donc d��tre publi�e. Elle est publi�e avec les 8 fonctionnalit�s majeures restantes depuis la suppression des litt�raux de cha�nes bruts. Ce sont : Shenandoah (le ramasse-miettes � temps de pause r�duit), l�API de constantes JVM, la suite Microbenchmark, l�annulation des collections mixtes pour G1, le retour rapide de la m�moire non utilis�e de G1, les archives CDS par d�faut, un apport AArch64 et les expressions de commutation. Toutes les fonctionnalit�s sont donc au rendez-vous � part bien s�r les litt�raux de cha�nes bruts. Vous pouvez acc�der au site de l�OpenJDK pour en apprendre davantage sur cette release candidate du JDK 12 et en savoir plus sur les fonctionnalit�s pr�cit�es.
En septembre 2017, Oracle avait annonc� qu�il y aura � l�avenir deux versions du JDK par an du fait que Java soit en concurrence directe avec d�autres plateformes qui sont mises � jour plus souvent. Apr�s la sortie du JDK 12 le 19 mars prochain, il y aura donc tr�s probablement une autre version du JDK courant cette ann�e. Ceci �tant dit, il semble qu�aucune fonctionnalit� n�est en vue d��tre ajout�e � cette version du JDK. Beaucoup d�internautes sur Reddit se disent impatients de pouvoir tester cette version du JDK et sont curieux de savoir ce que les prochaines versions de ce dernier r�servent � la communaut�.
Source : OpenJDK
Et vous ?
Que pensez-vous de la RC1 de JDK 12 ?
Cette version admissible comble-t-elle vos attentes ? Pourquoi ?
Quelles autres fonctionnalit�s souhaiteriez-vous avoir dans le JDK 12 ?
Voir aussi
Java : le JDK 12 est disponible en version b�ta, il prend en charge Unicode 11 et dispose d'un nouveau format de cl� priv�e cod� x25519 et x448
Java 12 ne prendra probablement pas en charge les litt�raux de cha�ne bruts, la proposition d'am�lioration JDK (JEP) sugg�re qu'on les supprime
Les litt�raux de cha�ne bruts ont �t� supprim�s de Java 12 comme l'a sugg�r� la proposition d'am�lioration JDK (JEP)
Partager