
Talan était sponsor de l’édition 2025 de Devoxx Paris. Nous en avons profité pour aller voir plusieurs conférences.
Voici un résumé des conférences qui nous ont marquées, sur la thématique du développement.
Générateurs et itérateurs en Go
Nouvelle fonctionnalité dans les dernières versions de Go (1.23) : utiliser des itérateurs pour parcourir les données (grâce au mot clé range). L’origine de celle-ci vient d’un souhait d’uniformisation des librairies.
Plongée au coeur des PDF
Le format PDF a très peu évolué en 20 ans et de nombreux outils proposent de la compression sans perte. Le présentateur explique les techniques qui se cachent dessous et ses propres optimisations sur son produit, Diet PDF.
Bring the action : Using GraalVM in production
GraalVM est une distribution du JDK qui permet de compiler un code Java Ahead of time. Cette stratégie permet un gain de performance.
Mais comment passer une application existante sous GraalVM ? Alina Yurenko a présenté durant cette conférence un exemple de la migration d’une application Spring boot vers GraalVM tout en adressant la problématique de compatibilité des libraires. Une mesure des performances des deux versions de l’application a permis de voir une amélioration sur le temps de démarrage et la consommation mémoire avec la version GraalVM.
Comment rendre son code Java plus expressif et robuste avec le pattern matching
Sébastien Buchoux, ingénieur logiciel chez Onepoint, nous a présenté des exemples de code où le pattern matching améliore la robustesse et la visibilité du code.
Créer des applications intelligentes avec Quarkus et Langchain
Zineb Bendhiba et Clément Escoffier de Red Hat nous présentent des cas d’utilisations de LangChain4j avec la sur-couche Quarkus qui permet notamment de faire rapidement des APIs utilisant l’IA.
Ils parcourent d’abord les annotations de base de LangChain4j avant de rentrer dans des concepts un peu plus avancés (et la manière de les implémenter avec ces frameworks) : Frozen Retrieved Augmented Generation, RAG, Contextual RAG, Function Calling (@Tool), Guardrails (qui permettent de sécuriser les appels de nos APIs) et Model Context Protocol (MCP) permettant de faire communiquer tout un écosystème de briques d’IA.
Pour que asynchrone ne rime pas avec desynchro
Long LE, ingénieur logiciel chez BforBank, nous a présenté les difficultés qu’il a rencontré et les solutions qu’il a mises en place avec son équipe sur des projets qui nécessitaient de faire communiquer et interagir en harmonie des systèmes synchrones basés sur des interfaces REST et des systèmes asynchrones basées sur une architecture event-driven.
Memory API : patterns, performance et cas d’utilisation
Certaines applications Java ont besoin d’accéder directement à la mémoire off-heap. Jusqu’à présent cela se faisait en utilisant les ByteBuffer, une API introduite dans Java 1.4 et qui a peu changé depuis.
Memory API est la nouvelle API de java qui permet un accès à la mémoire. José Paumard et Remi Forax, contributeurs aux développements de la nouvelle API, nous ont présenté des démos permettant de réserver, gérer et libérer de la mémoire en Java puis nous ont présenté Jextract qui permet de convertir du code C en code java.
Meet with an OSS project: Quarkus
Rencontre avec l’équipe derrière Quarkus. L’équipe a présenté l’histoire de Quarkus, les possibilités offertes par ce framework et les évolutions en cours de développement. S’en est suivi un échange libre avec les utilisateurs du framework. Intéressant d’entendre le retour d’expérience de développeurs qui utilisent Quarkus dans le monde professionnel pour mettre en place des applications aussi diversifiées que des applications desktop, des micro-services ou encore des FAAS.
Debugage dans le navigateur : le retour
Dix ans après sa première conférence, Christophe Jollivet revient sur les outils de debug des navigateurs.
En 2025, seuls trois moteurs de rendu subsistent : Blink, WebKit et Gecko. Chrome propose une IA intégrée (à manier avec prudence), Firefox mise sur la clarté et la simplicité et Safari propose une panoplie d’outils performants (chronologie, calques, audit…), bien que désactivés par défaut et avec un support limité des frameworks. Les plugins comme React DevTools ou Angular DevTools sont devenus essentiels pour déboguer.
Une session concrète, illustrée par des démos sur le site web Devoxx2025.
L’API Gatherer : l’outil qui manquait à vos streams
L’API Gatherer, publiée dans le JDK 24, permet de simplifier l’agrégation de données lors du traitement de streams. Elle sépare la collecte des données de leur traitement final, ce qui la rend plus flexible que les collectors classiques. L’API Gatherer est conçue pour fonctionner avec les streams, et permet de faciliter des cas complexes comme le groupement dynamique ou le buffering. Cette API permet d’écrire des traitements de données plus clairs et faciles à comprendre. Le présentateur explique des notions comme l’état mutable, l’intégrateur, la combinaison ou les streams parallèles, essentielles pour bien utiliser cette API.
Marre des null en Java, découvrez nullaway
Dans cette présentation, Alexandre Navarro présente NullAway, un outil qui permet de détecter les NullPointerExceptions dès la compilation.Il montre comment utiliser les annotations @Nullable et @NonNull avec Error Prone, tout en partageant des bonnes pratiques pour éviter les nulls dans le code Java.
Be more productive with IntelliJ IDEA
Marit van Dijk (JetBrains) partage une sélection de raccourcis clavier et de fonctionnalités pour coder plus vite dans IntelliJ IDEA. Un bon rappel pour se rafraîchir la mémoire !
Les super-pouvoirs méconnus de Docker Desktop
La présentation présente de nouvelles fonctionnalités de Docker Desktop, un outil clé pour moderniser le DevOps. Il aide à résoudre des problèmes comme les builds lents, les déploiements Kubernetes ou la sécurité des images. Les intervenants expliquent comment il simplifie le travail des développeurs et des admins. Des démos concrètes illustrent ses fonctions utiles.
Mockoon : Les bouchons contre-attaquent !
Le présentateur a proposé une démonstration de l’utilisation de Mockoon, un outil de simulation d’API. Il a montré la facilité de mise en place à partir d’un fichier Swagger, d’une réponse JSON ou encore via un proxy interceptant les réponses directement. L’outil peut être utilisé en mode stateless ou avec état, selon les besoins. Une comparaison avec Wiremock a également été évoquée. Une présentation simple et intéressante qui met en avant la rapidité et la flexibilité de Mockoon pour créer des environnements de test.
Atelier : 10 tests simples pour améliorer l’accessibilité de votre site
20% de personnes se retrouvent une fois en situation de handicap temporaire dans sa vie. Autrement dit, au moins une personne autour de nous est en situation de handicap, d’où l’importance de concevoir des sites accessibles. Cet atelier a présenté une méthode simple, basée sur une checklist du W3C, permettant d’évaluer l’accessibilité d’un site à l’aide de 10 tests rapides, accessibles même sans profil technique. Nous avons exploré ces tests en direct avec des outils comme Web Developer, Heading Maps ou encore les outils d’inspection des navigateurs. Pour en savoir plus, la présentation complète et la liste des outils sont disponibles ici.
15 do’s and don’ts avec Apache Kafka
Cette conférence présentée par Stéphane Derosiaux offre des conseils pratiques pour une utilisation efficace de Kafka. Elle aborde des sujets tels que la gestion des partitions, la configuration des paramètres critiques ainsi que la gestion des messages invalides via des stratégies comme les Dead Letter Queues.
Guide de survie pour créer son authentification à l’intention des développeurs
La sécurité d’une application web repose en grande partie sur une bonne gestion de l’authentification et de l’autorisation, deux concepts souvent confondus : la première vérifie l’identité de l’utilisateur, tandis que la seconde détermine ses droits d’accès. Pour renforcer l’authentification, des algorithmes comme Argon2 sont utilisés pour le hachage sécurisé des mots de passe, réduisant les risques d’attaques par credential stuffing. Selon les besoins, l’auth peut être stateful (avec session côté serveur, souvent via un HttpOnly cookie) ou stateless (avec des tokens comme JWT). On peut aussi déléguer cette authentification à un auth provider externe, comme OAuth ou OpenID Connect, dans un modèle de délégation d’authentification.
Alerte, tout brûle ! Maîtrisez les incidents techniques
Cette présentation a été animée par Alexis « Horgix » Chotard, Laurent Leca et Luc Chmielowski. Chacun d’eux ayant des rôles différents : ingénieur système, manager et ingénieur SRE (Site Reliability Engineer) respectivement. Ils ont commencé leur conférence par un exemple de projet, au fur et à mesure de l’évolution de leur projet ils ont rencontré des incidents, qui les a amenés à des situations de crises et a permis une amélioration continue.
En JavaScript, il y a un paquet pour tout… et souvent pour rien
Cette présentation portait sur différents outils liés aux packages Node.js, notamment e18e.dev et npmGraph, qui permettent d’explorer en profondeur la structure et les dépendances d’un package.
Elle a mis en avant de nombreux outils pratiques pour analyser, comprendre et optimiser les packages dans l’écosystème Node.js
Explorons comment fonctionne la réactivité des frameworks frontend modernes
Cette présentation aborde les différentes approches utilisées par les Framework frontend pour implémenter la réactivité des pages web. Elle compare notamment :
- Les Framework basés sur une comparaison clé-valeur
- Ceux utilisant l’observabilité des valeurs
- Et ceux reposant sur des systèmes de signaux
Dagger Modules : un couteau suisse pour moderniser vos pipelines de CI/CD
Cette présentation explore Dagger, un moteur de workflow qui simplifie les pipelines CI/CD en les rendant modulaires, testables localement et portables sur toutes les plateformes. Face à la complexité des outils traditionnels (YAML, dépendances, débogage difficile), Dagger propose d’écrire les pipelines comme du code exécutable, offrant plus de contrôle et de maintenabilité. Le speaker se concentre sur le SDK Java et montre comment utiliser les Dagger Functions et Modules pour créer des composants réutilisables et adaptables. Une démonstration illustre comment convertir un workflow existant en modules Dagger.
Angular 19 – L’ère des applications complètes basées sur les signaux
La version 19 d’Angular introduit des API basées sur les signaux et des améliorations de l’expérience développeur, permettant de créer des applications plus performantes. Des concepts comme input signals, output functions, Signal Queries, computed signals, et linkedSignal font leur apparition. Lors de cet atelier dont la partie pratique est disponible ici, nous avons pu découvrir concrètement ces nouveautés.
Et si on faisait du simulation-driven development ?
Le Simulation-Driven Development (ou développement dirigé par la simulation) est une approche de développement inspirée du test-driven development (TDD), mais avec une différence majeure : au lieu d’utiliser des cas de test avec des variables définies, on cherche à randomiser les entrées pour observer les sorties.
Cela permet de tester la robustesse du système face à l’imprévisibilité des entrées utilisateur ou d’une boîte noire dont le comportement ne peut être anticipé.
Cette méthode repose sur le principe que les pannes sont normales et inévitables, aussi bien dans les petites que dans les grandes architectures. Simuler l’imprévisible à l’aide de données aléatoires permet ainsi de réduire les risques de surprises en production.
Vous pouvez retrouver plusieurs articles sur d’autres thématiques abordées durant Devoxx Paris 2025 :