LCC 331 - Le retour des jackson 5
Description
Dans cet épisode, Arnaud et Guillaume discutent des dernières évolutions dans le monde de la programmation, notamment les nouveautés de Java 25, JUnit 6, et Jackson 3. Ils abordent également les récents développements en IA, les problèmes rencontrés dans le cloud, et l'état actuel de React et du web. Dans cette conversation, les intervenants abordent divers sujets liés à la technologie, notamment les spécifications de Wasteme, l'utilisation des UUID dans les bases de données, l'approche RAG en intelligence artificielle, les outils MCP, et la création d'images avec Nano Banana. Ils discutent également des complexités du format YAML, des récents dramas dans la communauté Ruby, de l'importance d'une bonne documentation, des politiques de retour au bureau, et des avancées de Cloud Code. Enfin, ils évoquent l'initiative de cafés IA pour démystifier l'intelligence artificielle.
Enregistré le 24 octobre 2025
Téléchargement de l'épisode LesCastCodeurs-Episode-331.mp3 ou en vidéo sur YouTube.
News
Langages
GraalVM se détache du release train de Java https://blogs.oracle.com/java/post/detaching-graalvm-from-the-java-ecosystem-train
Un article de Loic Mathieu sur Java 25 et ses nouvelles fonctionalités https://www.loicmathieu.fr/wordpress/informatique/java-25-whats-new/
Sortie de Groovy 5.0 ! https://groovy-lang.org/releasenotes/groovy-5.0.html
- Groovy 5: Évolution des versions précédentes, nouvelles fonctionnalités et simplification du code.
- Compatibilité JDK étendue: Full support JDK 11-25, fonctionnalités JDK 17-25 disponibles sur les JDK plus anciens.
- Extension majeure des méthodes: Plus de 350 méthodes améliorées, opérations sur tableaux jusqu'à 10x plus rapides, itérateurs paresseux.
- Améliorations des transformations AST: Nouveau
@OperatorRename, génération automatique de@NamedParampour@MapConstructoretcopyWith. - REPL (groovysh) modernisé: Basé sur JLine 3, support multi-plateforme, coloration syntaxique, historique et complétion.
- Meilleure interopérabilité Java: Pattern Matching pour
instanceof, support JEP-512 (fichiers source compacts et méthodesmaind'instance). - Standards web modernes: Support Jakarta EE (par défaut) et Javax EE (héritage) pour la création de contenu web.
- Vérification de type améliorée: Contrôle des chaînes de format plus robuste que Java.
- Additions au langage: Génération d'itérateurs infinis, variables d'index dans les boucles, opérateur d'implication logique
==>. - Améliorations diverses: Import automatique de
java.time.**,varavec multi-assignation, groupes de capture nommés pour regex (=~), méthodes utilitaires de graphiques à barres ASCII. - Changements impactants: Plusieurs modifications peuvent nécessiter une adaptation du code existant (visibilité, gestion des imports, comportement de certaines méthodes).
- **Exigences JDK*: Construction avec JDK17+, exécution avec JDK11+.
Librairies
Intégration de LangChain4j dans ADK pour Java, permettant aux développeurs d'utiliser n'importe quel LLM avec leurs agents ADK https://developers.googleblog.com/en/adk-for-java-opening-up-to-third-party-language-models-via-langchain4j-integration/
- ADK pour Java 0.2.0 : Nouvelle version du kit de développement d'agents de Google.
- Intégration LangChain4j : Ouvre ADK à des modèles de langage tiers.
- Plus de choix de LLM : En plus de Gemini et Claude, accès aux modèles d'OpenAI, Anthropic, Mistral, etc.
- Modèles locaux supportés : Utilisation possible de modèles via Ollama ou Docker Model Runner.
- Améliorations des outils : Création d'outils à partir d'instances d'objets, meilleur support asynchrone et contrôle des boucles d'exécution.
- Logique et mémoire avancées : Ajout de callbacks en chaîne et de nouvelles options pour la gestion de la mémoire et le RAG (Retrieval-Augmented Generation).
- Build simplifié : Introduction d'un POM parent et du Maven Wrapper pour un processus de construction cohérent.
JUnit 6 est sorti https://docs.junit.org/6.0.0/release-notes/
- :sparkles: Java 17 and Kotlin 2.2 baseline
- :sunrise_over_mountains: JSpecify nullability annotations
- :airplane_departure: Integrated JFR support
- :suspension_railway: Kotlin suspend function support
- :octagonal_sign: Support for cancelling test execution
- :broom: Removal of deprecated APIs
JGraphlet, une librairie Java sans dépendances pour créer des graphes de tâches à exécuter https://shaaf.dev/post/2025-08-25-think-in-graphs-not-just-chains-jgraphlet-for-taskpipelines/
- JGraphlet: Bibliothèque Java légère (zéro-dépendance) pour construire des pipelines de tâches.
- Principes clés: Simplicité, basée sur un modèle d'exécution de graphe.
- Tâches: Chaque tâche a une entrée/sortie, peut être asynchrone (
Task) ou synchrone (SyncTask). - Pipeline: Un
TaskPipelineconstruit et exécute le graphe, gère les I/O. - Modèle Graph-First: Le flux de travail est un Graphe Orienté Acyclique (DAG).
- Définition des tâches comme des nœuds, des connexions comme des arêtes.
- Support naturel des motifs fan-out et fan-in.
- API simple:
addTask("id", task),connect("fromId", "toId"). - Fan-in: Une tâche recevant plusieurs entrées reçoit une
Map(clés = IDs des tâches parentes). - Exécution:
pipeline.run(input)retourne unCompletableFuture(peut être bloquant via.join()ou asynchrone). - Cycle de vie:
TaskPipelineestAutoCloseable, garantissant la libération des ressources (try-with-resources). - Contexte:
PipelineContextpour partager des données/métadonnées thread-safe entre les tâches au sein d'une exécution. - Mise en cache: Option de mise en cache pour les tâches afin d'éviter les re-calculs.
Au tour de Microsoft de lancer son (Microsoft) Agent Framework, qui semble être une fusion / réécriture de AutoGen et de Semnatic Kernel https://x.com/pyautogen/status/1974148055701028930
- Plus de détails dans le blog post : https://devblogs.microsoft.com/foundry/introducing-microsoft-agent-framework-the-open-source-engine-for-agentic-ai-apps/
- SDK & runtime open-source pour systèmes multi-agents sophistiqués. Unifie Semantic Kernel et AutoGen.
- Piliers :
- Standards ouverts (MCP, A2A, OpenAPI) et interopérabilité.
- Passerelle recherche-production (patterns AutoGen pour l'entreprise).
- Extensible, modulaire, open-source, connecteurs intégrés.
- Prêt pour la production (observabilité, sécurité, durabilité, "human in the loop").
- Relation SK/AutoGen : S'appuie sur eux, ne les remplace pas, simplifie la migration.
- Intégrations futures : Alignement avec Microsoft 365 Agents SDK et Azure AI Foundry Agent Service.
Sortie de Jackson 3.0 (bientôt les Jackson Five !!!) https://cowtowncoder.medium.com/jackson-3-0-0-ga-released-1f669cda529a
- Jackson 3.0.0 a été publié le 3 octobre 2025.
- Objectif : base propre pour le développement à long terme, suppression de la dette technique, architecture simplifiée, amélioration de l'ergonomie.
- Principaux changements :
- Baseline Java 17 requise (vs Java 8 pour 2.x).
- Group ID Maven et package Java renommés en
tools.jacksonpour la coexistence avec Jackson 2.x. (Exception:jackson-annotationsne change pas). - Suppression de toutes les fonctionnalités
@Deprecatedde Jackson 2.x et renommage de plusieurs entités/méthodes clés. - Modification des paramètres de configuration par défaut (ex:
FAIL_ON_UNKNOWN_PROPERTIESdésactivé). ObjectMapperetTokenStreamFactorysont désormais immutables, la configuration se




