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

SFEIR est AWS Authorized Training Partner

SFEIR est désormais Training Partner de AWS

Actualités, Communiqués de presse

SFEIR est désormais Training Partner de AWS   SFEIR accède à l’AWS Training Partner Program visant à former les professionnels de l’informatique au cloud AWS en France.   Paris, le 15 Novembre 2022 – SFEIR, société de conseil en stratégie...

Lire la suite

Partenariat SFEIR Scaled Agile

SFEIR et WEnvision signent un partenariat stratégique avec Scaled Agile pour développer son offre de formation

Actualités, Communiqués de presse

SFEIR et WEnvision signent un partenariat stratégique avec Scaled Agile pour développer son offre de formation PARIS, le 7 novembre 2022 - le Groupe SFEIR, cabinet indépendant de conseil et d’expertise technologique  annonce un partenariat avec Scaled Agile éditeur du...

Lire la suite

Nomination de Renaud Chevalier

La nomination de Renaud Chevalier au poste de Consulting Director - Product & Organization au sein de WEnvision

Actualités, Communiqués de presse

La nomination de Renaud Chevalier au poste de Consulting Director - Product & Organization au sein de WEnvision   Renaud Chevalier rejoint l’équipe fondatrice de WEnvision au poste de Consulting Director - Product & Organization , venant renforcer la montée en puissance du...

Lire la suite

Rejoignez-nous

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

Parlez à un expert

Social

Contact