Java 14 est disponible en version définitive avec de nouvelles fonctionnalités de productivité des développeurs,
Dont Switch Expressions, Records et autres

Oracle a adopté une cadence de publication de six mois pour Java depuis deux ans, et ce cadre « permet aux développeurs de gérer plus facilement leur adoption de l'innovation grâce à un flux constant de changements attendus », a dit mardi Sharat Chander, directeur de la gestion des produits JAVA SE dans un article de blog lors de la publication générale de la version 14 de Java. Java 14 (Oracle JDK 14) représente la cinquième sortie de fonctionnalités selon cette cadence.

Oracle poursuit son engagement d’apporter Java 14 pour tous les développeurs et entreprises, en ajoutant à la dernière version de nouvelles fonctionnalités pour améliorer la productivité des développeurs. Certaines améliorations sont introduites dans les modules d'incubation, un moyen de mettre les API non finales et les outils non finaux entre les mains des développeurs, ce qui permet aux utilisateurs d'offrir un retour d'information qui peut en fin de compte améliorer la qualité de la plateforme Java, a déclaré M. Chander.

Nom : j01.jpg
Affichages : 40549
Taille : 19,5 Ko

De même, certaines améliorations sont introduites dans les fonctions de prévisualisation, le langage ou les fonctions VM de la plateforme Java SE qui sont entièrement spécifiées, entièrement mises en œuvre, et cependant impermanentes. M. Chander déclare que ce type d’améliorations est disponible dans une version de fonctionnalité du JDK afin d’amener les développeurs à faire à un retour d'information basé sur une utilisation réelle.

Enfin, certaines modifications visent à réduire la taille et la portée du JDK par le biais de la "Deprecation", qui est une technique permettant de communiquer des informations sur le cycle de vie d'une API : « pour encourager les applications à s'éloigner de l'API, pour décourager les applications de créer de nouvelles dépendances à l'API et pour informer les développeurs des risques d'une dépendance continue à l'API », d’après M. Chander. Oracle a dit, plus tôt en mars, que JDK 14 allait apporter plus de fonctionnalités que les deux versions précédentes combinées.

Les nouvelles fonctionnalités dans Java 14

D’après un communiqué de presse publié par Oracle mardi, le dernier kit de développement Java (JDK) offre de nouvelles fonctionnalités, notamment deux nouvelles fonctions de prévisualisation très attendues, dont Pattern Matching pour instanceof (JEP 305) et Records (JEP 359), ainsi qu'une deuxième prévisualisation, Text Blocks (JEP 368).

En outre, la dernière version de Java ajoute la prise en charge du langage Java pour les expressions de commutation et dévoile de nouvelles API pour la surveillance continue des données de JDK Flight Recorder. Oracle JDK 14 étend également la disponibilité du Z Garbage Collector à faible latence à macOS et Windows, et ajoute, dans des modules incubateurs, le conditionnement d'applications Java autonomes et une nouvelle API d'accès à la mémoire étrangère pour un accès sûr et efficace à la mémoire en dehors du tas Java, d’après le communiqué de presse d’Oracle.

« Java 14 est une nouvelle validation des avantages de la cadence de publication de six mois, donnant aux développeurs l'accès à des fonctionnalités qu'ils auraient autrement attendu des années pour mettre la main dessus », a déclaré Georges Saab, vice-président du développement de la plateforme Java d’Oracle. « Non seulement le JDK 14 comporte un certain nombre d'améliorations qui permettront d'accroître la productivité des développeurs, mais nous voyons également le premier contenu important provenant de projets comme le Projet Panama, avec une amélioration de l'API d'accès aux mémoires étrangères (JEP 370), et des améliorations continues du Projet Amber, avec Pattern Matching (JEP 305) et Records (JEP 359). Ces améliorations significatives témoignent de tout le travail accompli dans le cadre de ces projets novateurs », a-t-il ajouté.

Le dernier kit de développement Java livré mardi est le fruit d’une collaboration étendue entre les ingénieurs Oracle et les membres de la communauté mondiale des développeurs Java via la communauté OpenJDK et le processus de la communauté Java. En effet, sur les 1 986 problèmes du JIRA marqués comme corrigés dans le JDK 14, 1 458 ont été ajoutés par des travailleurs d’Oracle, tandis que 528 ont été apportés par des développeurs individuels et des développeurs travaillant pour d'autres organisations.

Nom : j02.png
Affichages : 4196
Taille : 97,5 Ko

Voici énumérées, ci-dessous, les nouvelles fonctionnalités offertes par Java 14 :

JEP 305 : Pattern Matching for instanceof (Aperçu) – Cette fonction encore en prévisualisation améliore Java avec le pattern matching pour l'opérateur de l'instanceof. Elle améliore la productivité des développeurs en éliminant le besoin de code "boilerplate" et permet un code de type sûr plus concis.

JEP 343 : Outil de conditionnement (incubateur) – Fournit aux développeurs un moyen de conditionner les applications Java pour les distribuer dans des formats spécifiques sur la plateforme. Cela aide les développeurs d'applications modernes où les contraintes exigent que les runtimes et les applications soient regroupées en un seul livrable. C’est un outil qui est introduit dans un module d'incubation.

JEP 345 : NUMA-Aware Memory Allocation for G1 – Cette fonctionnalité améliore les performances globales du Garbage Collector G1 sur les systèmes d'accès non uniforme à la mémoire (NUMA).

JEP 349 : Streaming d'événements JFR – Expose les données de JDK Flight Recorder (JFR) pour une surveillance continue. Cela simplifiera l'accès aux données JFR pour divers outils et applications et stimulera d'autres innovations.

JEP 352 : Non-Volatile Mapped Byte Buffers – Cette fonction ajoute un mode de mappage de fichier pour JDK lors de l'utilisation de la mémoire non volatile. La nature persistante de la mémoire non volatile modifie diverses hypothèses de persistance et de performance qui sont mises à profit avec cette fonction.

JEP 358 : Helpful NullPointerExceptions – Améliore la convivialité des NullPointerExceptions en décrivant précisément quelle variable était nulle et d'autres informations utiles. Cela augmentera la productivité des développeurs et améliorera la qualité de nombreux outils de développement et de débogage.

JEP 359 : Records (Aperçu) - Cette fonction en prévisualisation fournit une syntaxe compacte pour déclarer les classes qui contiennent des données peu immuables. Elle peut réduire considérablement le code passe-partout dans les classes de ce type, mais le plus grand avantage est de permettre la modélisation des données en tant que données. Il devrait être facile, clair et concis de déclarer ces agrégats de données nominales peu immuables.

JEP 361 : Switch Expressions (Standard) - Cette fonction, après avoir passé du temps en tant que prévisualisation dans les versions JDK 12 et JDK 13, est maintenant ajoutée en tant que fonction standard. Elle permet d'utiliser switch soit comme une déclaration, soit comme une expression. Cette fonction simplifie le codage quotidien et a préparé le terrain pour la fonction Pattern Matching (JEP 305) présentée en prévisualisation dans cette version.

JEP 364 : ZGC sur macOS et JEP 365 : ZGC sur Windows – Ce déploiement est nécessaire à cause de la plupart des utilisateurs qui ont non seulement besoin de la ZGC, mais également de l'évolutivité des environnements Linux. Il existe également certaines applications de bureau ciblant Windows et macOS qui bénéficieront de la ZGC.

JEP 368 : Text Blocks (deuxième prévisualisation) – Après avoir reçu les commentaires des utilisateurs finaux lorsque la fonction Text Blocks a été introduite pour la première fois comme fonction de prévisualisation dans le cadre de Java 13, des améliorations ont été apportées et Text Blocks est à nouveau proposé comme fonction d'aperçu dans Java 14 dans le but de devenir un standard dans une future version du JDK. Cette fonction permet d'exprimer facilement des chaînes de caractères qui couvrent plusieurs lignes de code source. Il améliore la lisibilité des chaînes de caractères dans les programmes Java qui désignent du code écrit dans des langages autres que Java ; il prend en charge la migration des chaînes de caractères littérales en stipulant que toute nouvelle construction peut exprimer le même ensemble de chaînes de caractères qu'une chaîne littérale.

JEP 370 : API d'accès à la mémoire étrangère (Incubateur) – API permettant aux programmes Java d'accéder efficacement et en toute sécurité à la mémoire étrangère en dehors du tas Java.

Selon le communiqué de presse, Oracle propose également l'abonnement Oracle Java SE, pour les utilisateurs et les entreprises à la recherche d'un support commercial. Oracle est reconnaissant aux développeurs travaillant pour des organisations telles que ARM, Google, NTT Data, Red Hat et SAP pour leurs contributions notables à Java 14. Il n’oublie pas aussi les contributions de plus petites organisations telles que Bellsoft, Longsoon, et les développeurs indépendants qui ont collectivement contribué à 3 % des corrections du JDK 14.

Source : Communiqué de presse d’Oracle

Et vous ?

Que pensez-vous de Java 14 ?
Quelles sont les nouvelles fonctionnalités qui retiennent votre attention ?

Lire aussi

La version stable du Java Developpement Kit 14 est prévue pour février 2020, petit aperçu de fonctionnalités en préversion
JDK 14 : un aperçu des nouvelles fonctionnalités de Java 14, une version admissible est prévue pour le 6 février 2020
La version définitive du JDK 13 est publiée avec la prise en charge d'Unicode 12.1, et de nombreuses améliorations
Entre Java et Kotlin, lequel de ces langages est le meilleur pour le développement d'applications Android ?