
Lors de la confĂ©rence Devoxx France 2026, j’ai assistĂ© Ă un talk venu tout droit d’une comète : la prĂ©sentation de TamboUI (prononcer “tambouille”), un tout nouveau framework Java dĂ©diĂ© aux interfaces utilisateur dans le terminal (ou Terminal User Interface TUI en anglais, plus anciennement connus sous le nom de Text-based User Interface).
Derrière ce nom amusant, deux pointures de l’Ă©cosystème Java : CĂ©dric Champeau (longtemps lead de Gradle, aujourd’hui dans les Ă©quipes Micronaut et GraalVM chez Oracle) et Max Rydahl Andersen (crĂ©ateur de JBang, co-dirige le projet Quarkus chez Red Hat). Autant dire que la gĂ©nĂ©alogie du projet est sĂ©rieuse.
Cet article revient sur les motivations, l’architecture et les APIs de TamboUI.

Lire la suite…
Conférence : Devoxx France 2026
Date : 24 avril 2026
Speakers : Riad Maouchi (Société Générale CIB) et Christopher Etancelin (Société Générale)
Format : Tools in action (30 min)
Supports : repo GitHub jcstress-devoxx-demo / replay YoutubeAu cours de ce Tools in action, Riad et Christopher nous font dĂ©couvrir un outil bien pratique Ă utiliser sur notre code multi-threads. Maintenu par Aleksey ShipilĂ«v (AWS), Java Concurrency Stress (JCStress) est le framework officiel d’OpenJDK permettant de reproduire des bugs de concurrence d’accès que d’autres outils n’arrivent pas Ă dĂ©tecter. Il met Ă l’Ă©preuve le code Java en explorant de manière systĂ©matique les diffĂ©rents entrelacements possibles entre threads. Il peut ainsi faire Ă©merger des bugs invisibles aux tests unitaires JUnit classiques : problèmes de visibilitĂ©, d’ordre d’exĂ©cution ou d’atomicitĂ©.

Lire la suite…
Conférence : Devoxx France 2026
Date : 24 avril 2026
Speakers : Clément de Tastes (SCIAM) et Rémi Forax (Université Gustave Eiffel)
Format : conférence (45 min)
Supports : repository GitHub mandelbrot-valhalla / replay YoutubeCe talk sur le futur de Java commence par nous plonger dans l’univers des fractales.
Le chou-fleur romanesco est une structure fractale : son motif se rĂ©pète quel que soit le niveau de zoom. ClĂ©ment a dĂ©veloppĂ© l’application JavaFX MandelbrotFx permettant d’afficher des fractales, dont la plus connue est très certainement la fractale de Mandelbrot.
L’implĂ©mentation Java de l’algorithme extraite de MandelbrotFractal.java utilise les types primitifs
doubleetint. Efficace, cette implĂ©mentation est relativement difficile Ă comprendre. Pour amĂ©liorer sa maintenance, on peut utiliser desrecorden dĂ©finissant le type Complex. Plus propre, ce code est cependant dix fois plus gourmand en ressources qu’avec les primitives. Beau, mais cher. C’est lĂ oĂą les Value Types vont venir Ă notre rescousse.
Lire la suite…
En 2025, j’ai eu l’opportunité de mettre en place Spring Modulith sur une nouvelle application web. Pour partager cette expérience avec mes collègues, j’ai préparé une démonstration live montrant comment intégrer Spring Modulith dans une application Spring Boot.
J’avais besoin pour cela d’une application simple et universelle. Vous commencez à me connaitre : mon choix s’est naturellement porté sur la version canonique de Spring Petclinic.
Pris au jeu, j’ai progressivement enrichi l’application afin d’illustrer plusieurs fonctionnalités clés de Spring Modulith. J’ai ensuite mis ce fork à disposition de la communauté Spring Petclinic dont le code source complet est disponible sur GitHub : spring-petclinic-modulith.
Dans ce billet, je vous propose de découvrir Spring Modulith, puis de suivre pas à pas comment l’application démo Spring Petclinic a été enrichie pour tirer parti de ses fonctionnalités.

Lire la suite…
Lors de la confĂ©rence Devfest Nantes 2025, j’ai assistĂ© au talk d’ Hoani Cross portant sur la prise de notes. Loin d’ĂŞtre nouveau, ce sujet m’a particulièrement interpellĂ©. Figurez-vous en effet qu’une partie des articles publiĂ©s sur ce blog (dont celui que vous avez sous les yeux) vient des notes rĂ©digĂ©es lors de confĂ©rences, de projets personnels ou bien encore de ma veille techno.
Dans son talk, Hoani nous prĂ©sente le logiciel Obsidian, la manière dont il l’utilise au quotidien pour noter et gĂ©rer son activitĂ©, qu’elle soit professionnelle ou personnelle.
Je suis sorti de sa prĂ©sentation quelque peu dĂ©sarçonnĂ©. Hoani utilise Obsidian comme un Bullet Journal (qu’on appelle aussi « bujo ») numĂ©rique pour compiler notes, pense-bĂŞtes, objectifs, rappels, tracking, plannings et coups de coeur. Son utilisation est vraiment avancĂ©e et très rĂ©gulière. Je ne me voyais pas passer autant de temps que lui sur Obsidian.L’autre domaine dans lequel Obsidian semble exceller consiste en la possibilitĂ© de se crĂ©er un Second Cerveau. Les notes peuvent ĂŞtre reliĂ©es ensemble Ă l’aide de Map Of Content (MOC). Une alternative aux hashtags et l’organisation hiĂ©rarchisĂ©e en dossiers et sous-dossiers.
Une note de type Map of Content s’assimile Ă une thĂ©matique, un sujet principal, auquel on rattache bidirectionnellement des notes et qui va faire office de table de matières et de tableau de bord. La crĂ©ation de sous-MOCs spĂ©cialisĂ©s reste possible. On se rapproche du web, des liens hypertextes et du mind mapping.
Dans ce billet, j’aimerais vous restituer la prestation d’Hoani et vous laisser dĂ©couvrir son utilisation Obsidian.
Lire la suite…La gestion de la nullabilité en Java a longtemps été source de bugs et de fragmentation. Contrairement à Kotlin par exemple, Java ne possède pas encore nativement de moyen d’exprimer la nullité d’un type. Qui n’aura donc jamais ragé contre une
NullPointerExceptionsurvenue en production ? En juin 2024, avec l’arrivée de la spécification JSpecify, soutenue par des acteurs majeurs comme Google, Microsoft, JetBrains, Oracle, Sonar ou bien encore Broadcom (Spring), l’écosystème Java dispose enfin d’une bibliothèque unifiée d’annotations de nullité. Pour bénéficier d’une détection efficace des NullPointerException dès la compilation, il est nécessaire de coupler JSpecify à des outils d’analyse statique comme NullAway (Uber) et ErrorProne (Google).Ce court article explique comment mettre en place sur un projet d’entreprise la configuration Maven correspondante qui fera casser votre build et votre CI lorsque vous essayerez de passer une variable
nullen paramètre d’une méthode qui ne les accepte pas.
Lire la suite…
Lors de la confĂ©rence Devoxx France 2025, j’ai participĂ© Ă un hands-on lab de 2h intitulĂ© Sortir des ORMs avec jOOQ. Acronyme de « Java Object Oriented Querying », jOOQ se prĂ©sente comme une alternative Ă JPA permettant d’Ă©crire des requĂŞtes SQL en Java via une fluent API. AnimĂ© par Sylvain Decout et Samuel Lefebvre, cet atelier visait Ă migrer une application Spring Boot / JPA vers jOOQ Ă l’aide du starter Spring Boot pour jOOQ. Pour les curieux, le repo de l’atelier est disponible sur Github : jooq-handson.
Fort de cette découverte, je me suis à mon tour prêté à l’exercice de migrer vers jOOQ la couche de persistance Spring Data JPA de l’application démo Spring Petclinic. Un nouveau fork est né : spring-petclinic-jooq. Bienvenue à ce dernier dans la communauté Spring Petclinic.
L’usage de jOOQ se rapproche de l’utilisation de JdbcTemplate. Le développeur maitrise le nombre de requêtes envoyées à la base de données relationnelle. Ce qui les différencie, c’est la syntaxe : pas de SQL, mais une API Java fluide et type-safe spécifique à jOOQ qu’il va falloir appréhender. Rassurez-vous, cette API se rapproche du SQL : on y retrouve les mots clés select, update, insertInto, where, from, join, on, as… A ceux-ci, on ajoute des mots clés spécifiques à jOOQ : paginate, fetch, convertFrom … La documentation de jOOQ est très complète. On y apprend comment écrire des requêtes complexes à base de window function ou de Common Table Expressions (CTE) et comment utiliser des fonctionnalités avancées de SQL que peu de frameworks ORM supportent nativement : JSON functions, PIVOT, MERGE, UNION …
Cet article a pour objectif d’expliquer les étapes adoptées pour migrer l’implémentation Spring Data JPA des repository vers jOOQ. Des exemples de code avant / après y sont proposés.
Lire la suite…
Date : 16 avril 2025
Conférence : Devoxx France 2025
Speaker : José Paumard (Oracle)
Format : Conférence 45 mn
Support : slides sur Speakerdeck / replay YoutubeJava Developer Advocate chez Oracle, JosĂ© Paumard nous prĂ©sente la nouvelle API Gatherers qui, depuis Java 24, vient se greffer sur l’API Stream Java sortie il y’a 11 ans avec Java 8.
Tout comme l’API Collector, José commence par rappeler que l’API Gatherers est indépendante de l’API Stream. Cette API a été introduite dans Java via la JEP 485 Stream Gatherers conduite par Viktor Klang. Les plus curieux pourront regarder la vidéo Youtube du Deep Dive qu’a animé Viktor lors de la conférence JavaOne qui s’est tenue en mars 2025.
L’article The Gatherer API permet également d’approfondir votre étude des Gatherers. Notez que le site dev.java permet désormais d’exécuter des snippets Java (pas directement dans le navigateur, mais sur un serveur Cloud).
Toutes les classes et interfaces de l’API Gatherers ont été ajoutées au package java.util.stream.

Lire la suite…
Conférence : Devoxx France 2025
Date : 17 avril 2025
Speakers : Cyrille Martraire (Arolla), Eric Le Merdy (QuickSign) remplaçant de Christian Sperandio (Arolla)
Format : ConfĂ©rence (45mn) / Replay YoutubeCette confĂ©rence a pour objectif d’ouvrir les portes en nous donnant les clĂ©s de l’architecture. Pour seconder Cyrille, Eric a du remplacer Christian au pied levĂ©.
Un constat est posé. Sur les dix dernières années, les systèmes ont changé : ils sont devenus modulaires, de plus en plus distribués. La modularité permise par le Cloud permet de répartir la charge. Il y’a de plus en plus d’interconnexions entre briques applicatives.
L’architecture bouge tout le temps, évolue constamment.
Que doit-on savoir ? Pour commencer, on ne saura jamais tout et il faudra vivre avec. Personne ne sait tout. Même le plus capé des architectes.
Comme fil conducteur, Cyrille et Eric prennent un exemple réel issu du monde des télécommunications.
Pour cahier des charges, le client précise que le système va recevoir des fichiers chaque minute et doit les intégrer tous les 15mn. Contexte : ces fichiers viennent d’équipements télécom.
Lire la suite…
Conférence : Devoxx France 2025
Date : 17 avril 2025
Speaker : Sébastien Deleuze (Broadcom)
Format : Conférence (45 mn) / Replay YoutubeSébastien est Core Commiter sur Spring Framework. Il intervient également sur des sujets transverses au portfolio Spring : support de Kotlin, null-safety (avec JSpecify) et les sujets d’optimisation. Dans ce talk, il a pour ambition de nous montrer comment améliorer l’efficacité de 80% des applications Spring, que ce soit de nouvelles applications ou des applications Legacy.
Les raisons d’améliorer l’efficacité de nos applications sont multiples :
- Baisser le cout de run des applications
- Développement durable pour diminuer la consommation d’énergie, de mémoire et de CPU
- Optimiser les applications pour les containers (sur le Cloud ou OnPremise)
Pour arriver à nos fins, Sébastien nous propose 3 technologies :
- CDS : techno relativement vieille mais qui s’est améliorée au fil des versions de Java
- AOT cache : Java 24 permet d’utiliser l’AOT cache qui est une version améliorée CDS. Sébastien prédit l’exploision de AOT Cache avec la LTS Java 25
- AOT cache with profiling : technologie expérimentale et prometeuse

Lire la suite…
