SFEIRCode

SFEIRCode

2 Nov, 2022

Java 19 : le point sur les nouveautés

Rubrique

CodeShake
Java 19 : le point sur les nouveautés

Anthony Pena, Développeur Web et Staff Engineer chez SFΞIR Nantes, nous partage les nouveautés de Java 19. Cet article est issu de son blog.

La version 19 de Java est sortie : pas de nouveautés à proprement parler, mais différents travaux en preview et incubation avancée.

Meilleurs Pattern Matching des Record

Exemple de code regroupant les nouveautés des JEPS 405 et 427.

La première intègre enfin le matching en profondeur sur les Record. Concrètement, si vous avez un Record qui est composé d'un Record vous pouvez directement extraire ses membres en profondeur. C'est très pratique pour un if car on évite de multiplier les lignes, mais ça l'est aussi pour un switch où on évitera d'imbriquer des switchs, on pourra garder un seul switch et valider tous les cas sur un seul niveau. On y gagne donc en lisibilité, même si je regrette toujours le choix d'avoir introduit le when pour définir les valeurs dans ce genres de cas…

Nouveauté Java 19

Nouvelle manière de gérer les tâches concurrentes

Je regroupe encore 2 JEPS, les 425 et 428. La première vient proposer un nouveau type de thread (les virtual thread) et la seconde une nouvelle manière de gérer plusieurs tâches concurrentes en se basant sur les virtual thread.

Du côté des virtual threads, c'est très simple : on vient proposer des threads qui ne génèrent plus directement des threads au niveau CPU, mais plutôt quelque chose qui se rapproche des goroutines (en Go) et des coroutines (en Kotlin). Des threads très légers gérés par la JVM directement et qui vont utiliser des threads au bon vouloir de la JVM. On peut se dire qu'on perd en contrôle, mais l'idée, c'est plutôt de déléguer à la JVM une tâche qu'elle fait très bien : gérer la partie hardware pour l'exploiter au mieux en fonction de ce dont on a besoin.

Exemple tiré de la JEPS :

Nouveauté Java 19

Comme avec les Executors classiques, on retrouve une factory. On n'a pas à s'occuper du tout de comment sera exécuté notre code, juste, il le sera. Comme par définition les virtual thread se veulent légers, on peut en générer un grand nombre.

Qui dit gérer un grand nombre de tâches, dit qu'on va vouloir gérer les réponses des tâches pour rassembler les réponses et ce n'est pas toujours simple à faire. D'où l'idée de proposer une nouvelle API (attention, elle est en incubation donc sujette à de gros changement dans l'avenir).

Nouveauté Java 19

Plutôt que créer un nouvel Executor comme plus haut, on va créer une instance de StructuredTaskScope, qui va gérer pour nous l'attente des résultats, et nous donner simplement des Future qu'on pourra traiter. L'idée, plus que de révolutionner la gestion du multi-threading, est de fournir un outil pour faciliter son utilisation, en particulier pour ce qui est de gérer le fait qu'une des tâches peut échouer. En effet, en cas d'échec, on aura une gestion automatique de l'annulation de l'autre tâche.

Conclusion

Côté développeur, on n'a finalement pas grand-chose à se mettre sous la dent avec cette nouvelle version. La seule JEPS qui est intégrée sans drapeau est le support de l'architecture RISC-V (c'est une bonne nouvelle, mais ça ne va pas changer notre quotidien). On voit encore qu'il y a des gros travaux de fonds qui vont amener de belles choses dans le futur, mais ce n'est pas pour cette version 19.

Sources :

 

A propos de l'auteur Antony Pena :

"Codeur et blogueur le jour et dévoreur de manga la nuit, vous me verrez souvent parler de Java, JavaScript, Typescript, Rust ou de test, parfois un peu (beaucoup) de jeux-vidéos ou de bricolage de console."

Restez informés

Recevez chaque mois nos dernières actus techs et événements à venir.

Social

Un peu de lecture

vignette vidéo best of 2022 SFEIR

Best of SFEIR 2022 : la vidéo !

Actualités

Découvrez notre Best of 2022 en vidéo Pas facile de faire tenir en un peu plus de 2 min une année d’events, de talks, de certifications, de formations, de partages open source, de nouveaux sites web, de partenariats technologiques toujours...

Lire la suite

L'Oréal x SFEIR : Un Data Catalog pour profiter du potentiel maximal de la data

Actualités, Témoignages

L’Oréal est leader mondial de la cosmétique avec un historique de plus de 110 ans, une présence dans 150 pays, un éventail de produits représentant 35 marques vendues sur la marché international et plusieurs petites marques vendues localement.   Les...

Lire la suite

Le Groupe SFEIR signe un partenariat stratégique avec dbt Labs pour parfaire son expertise dans les outils de transformation de la donnée

Actualités, Communiqués de presse

PARIS, le 09 Janvier 2023 - Le Groupe SFEIR, société de conseil en stratégie numérique et en développement d'innovations technologiques, annonce un partenariat avec dbt Labs, le pionnier de l'ingénierie analytique qui propose une solution de transformation de données, accessible...

Lire la suite

Rejoignez-nous

Première communauté Dev d’Europe
600 développeurs unis par la passion

Parlez à un expert

Social

Contact