LCC 330 - Nano banana l'AI de Julia
Épisode de Les Cast Codeurs Podcast par Emmanuel Bernard, Guillaume, Antonio, Arnaud, Katia · 15 septembre 2025 · 1 h 49 min
Katia, Emmanuel et Guillaume discutent Java, Kotlin, Quarkus, Hibernate, Spring Boot 4, intelligence artificielle (modèles Nano Banana, VO3, frameworks agentiques, embedding). On discute les vulnerabilités OWASP pour les LLMs, les personalités de codage des différents modèles, Podman vs Docker, comment moderniser des projets legacy. Mais surtout on a passé du temps sur les présentations de Luc Julia et les différents contre points qui ont fait le buzz sur les réseaux.
Enregistré le 12 septembre 2025
Téléchargement de l'épisode LesCastCodeurs-Episode-330.mp3 ou en vidéo sur YouTube.
News
Langages
Dans cette vidéo, José détaille les nouveautés de Java entre Java 21 et 25 https://inside.java/2025/08/31/roadto25-java-language/
Aperçu des nouveautés du JDK 25 : Introduction des nouvelles fonctionnalités du langage Java et des changements à venir [00:02].
Programmation orientée données et Pattern Matching [00:43] :
Évolution du "pattern matching" pour la déconstruction des "records" [01:22].
Utilisation des "sealed types" dans les expressions switch pour améliorer la lisibilité et la robustesse du code [01:47].
Introduction des "unnamed patterns" (_) pour indiquer qu'une variable n'est pas utilisée [04:47].
Support des types primitifs dans instanceof et switch (en preview) [14:02].
Conception d'applications Java [00:52] :
Simplification de la méthode main [21:31].
Exécution directe des fichiers .java sans compilation explicite [22:46].
Amélioration des mécanismes d'importation [23:41].
Utilisation de la syntaxe Markdown dans la Javadoc [27:46].
Immuabilité et valeurs nulles [01:08] :
Problème d'observation de champs final à null pendant la construction d'un objet [28:44].
JEP 513 pour contrôler l'appel à super() et restreindre l'usage de this dans les constructeurs [33:29].
JDK 25 sort le 16 septembre https://openjdk.org/projects/jdk/25/
Scoped Values (JEP 505) - alternative plus efficace aux ThreadLocal pour partager des données immutables entre threads
Structured Concurrency (JEP 506) - traiter des groupes de tâches concurrentes comme une seule unité de travail, simplifiant la gestion des threads
Compact Object Headers (JEP 519) - Fonctionnalité finale qui réduit de 50% la taille des en-têtes d'objets (de 128 à 64 bits), économisant jusqu'à 22% de mémoire heap
Flexible Constructor Bodies (JEP 513) - Relaxation des restrictions sur les constructeurs, permettant du code avant l'appel super() ou this()
Module Import Declarations (JEP 511) - Import simplifié permettant d'importer tous les éléments publics d'un module en une seule déclaration
Compact Source Files (JEP 512) - Simplification des programmes Java basiques avec des méthodes main d'instance sans classe wrapper obligatoire
Primitive Types in Patterns (JEP 455) - Troisième preview étendant le pattern matching et instanceof aux types primitifs dans switch et instanceof
Generational Shenandoah (JEP 521) - Le garbage collector Shenandoah passe en mode générationnel pour de meilleures performances
JFR Method Timing & Tracing (JEP 520) - Nouvel outillage de profilage pour mesurer le temps d'exécution et tracer les appels de méthodes
Key Derivation API (JEP 510) - API finale pour les fonctions de dérivation de clés cryptographiques, remplaçant les implémentations tierces
Améliorations du traitement des annotations dans Kotlin 2.2 https://blog.jetbrains.com/idea/2025/09/improved-annotation-handling-in-kotlin-2-2-less-boilerplate-fewer-surprises/
Avant Kotlin 2.2, les annotations sur les paramètres de constructeur n'étaient appliquées qu'au paramètre, pas à la propriété ou au champ
Cela causait des bugs subtils avec Spring et JPA où la validation ne fonctionnait qu'à la création d'objet, pas lors des mises à jour
La solution précédente nécessitait d'utiliser explicitement @field: pour chaque annotation, créant du code verbeux
Kotlin 2.2 introduit un nouveau comportement par défaut qui applique les annotations aux paramètres ET aux propriétés/champs automatiquement
Le code devient plus propre sans avoir besoin de syntaxe @field: répétitive
Pour l'activer, ajouter -Xannotation-default-target=param-property dans les options du compilateur Gradle
IntelliJ IDEA propose un quick-fix pour activer ce comportement à l'échelle du projet
Cette amélioration rend l'intégration Kotlin plus fluide avec les frameworks majeurs comme Spring et JPA
Le comportement peut être configuré pour garder l'ancien mode ou activer un mode transitoire avec avertissements
Cette mise à jour fait partie d'une initiative plus large pour améliorer l'expérience Kotlin + Spring
Librairies
Sortie de Quarkus 3.26 avec mises à jour d'Hibernate et autres fonctionnalités - https://quarkus.io/blog/quarkus-3-26-released/
mettez à jour vers la 3.26.x car il y a eu une regression vert.x
Jalon important vers la version LTS 3.27 prévue fin septembre, basée sur cette version
Mise à jour vers Hibernate ORM 7.1, Hibernate Search 8.1 et Hibernate Reactive 3.1
Support des unités de persistance nommées et sources de données dans Hibernate Reactive
Démarrage hors ligne et configuration de dialecte pour Hibernate ORM même si la base n'est pas accessible
Refonte de la console HQL dans Dev UI avec fonctionnalité Hibernate Assistant intégrée
Exposition des capacités Dev UI comme fonctions MCP pour pilotage via outils IA
Rafraîchissement automatique des tokens OIDC en cas de réponse 401 des clients REST
Extension JFR pour capturer les données runtime (nom app, version, extensions actives)
Bump de Gradle vers la version 9.0 par défaut, suppression du support des classes config legacy
Guide de démarrage avec Quarkus et A2A Java SDK 0.3.0 (pour faire discuter des agents IA avec la dernière version du protocole A2A) https://quarkus.io/blog/quarkus-a2a-java-0-3-0-alpha-release/
Sortie de l'A2A Java SDK 0.3.0.Alpha1, aligné avec la spécification A2A v0.3.0.
Protocole A2A : standard ouvert (Linux Foundation), permet la communication inter-agents IA polyglottes. Version 0.3.0 plus stable, introduit le support gRPC.
Mises à jour générales : changements significatifs, expérience utilisateur améliorée (côté client et serveur).
Agents serveur A2A :
Support gRPC ajouté (en plus de JSON-RPC). HTTP+JSON/REST à venir.
Implémentations basées sur Quarkus (alternatives Jakarta existent).
Dépendances spécifiques pour chaque transport (ex: a2a-java-sdk-reference-jsonrpc, a2a-java-sdk-reference-grpc).
AgentCard : décrit les capacités de l'agent. Doit spécifier le point d'accès primaire et tous les transports supportés (additionalInterfaces).
Clients A2A :
Dépendance principale : a2a-java-sdk-client.
Support gRPC ajouté (en plus de JSON-RPC). HTTP+JSON/REST à venir.
Dépendance spécifique pour gRPC : a2a-java-sdk-client-transport-grpc.
Création de client : via ClientBuilder. Sélectionne automatiquement le transport selon l'AgentCard et la configuration client. Permet de spécifier les transports supportés par le client (withTransport).
Comment générer et éditer des images en Java avec Nano Banana, le "photoshop killer" de Google https://glaforge.dev/posts/2025/09/09/calling-nano-banana-from-java/
Objectif : Intégrer le modèle Nano Banana (Gemini 2.5 Flash Image preview) dans des applications Java.
SDK utilisé : GenAI Java SDK de Google.
Compatibilité : Supporté par ADK for Java ; pas encore par LangChain4j (limitation de multimodalité de sortie).
Capacités de Nano Banana :
Créer de nouvelles images.
Modifier des images existantes.
Assembler plusieurs images.
Mise en œuvre Java :
Quelle dépendance utiliser
Comment s'authentifier
Comment configurer le modèle
Nature du modèle : Nano Banana est un modèle de chat qui peut retourner du texte et une image (pas simplement juste un modèle générateur d'image)
Exemples d'utilisation :
Création : Via un simple prompt textuel.
Modification : En passant l'image existante (tableau de bytes) et les instructions de modification (prompt).
Assemblage : En passant plusieurs images (en bytes) et les instructions d'intégration (prompt).
Message clé : Toutes ces fonctionnalités sont accessibles en Java, sans nécessiter Python.
Autres épisodes de « Les Cast Codeurs Podcast »
- LCC 344 - Feature flags - 2^n raisons de ne pas dormir la nuit 20 octobre 2026
- LCC 343 - Trois IA, une seule prise électrique 14 septembre 2026
- LCC 342 - Bun en Rust, TypeScript en Go 21 juillet 2026
- LCC 341 - Endives ou Chicorée ? 22 juin 2026
- LCC 340 - Episode on l'voit on l'voit pas 12 mai 2026
- LCC 339 - Clotûre de Devoxx France 2026 par les cast codeurs 29 avril 2026
- LCC 338 - Le soulèvement des bots de skills 20 mars 2026
- LCC 337 - Datacenters Carrier Class dans l'espace 16 février 2026
- LCC 336 - Interview Kotlin avec Arnaud Giuliani 6 février 2026
- LCC 335 - 200 terminaux en prod vendredi 16 janvier 2026
- LCC 334 - Interview de Muriel Ekovich sur les biais cognitifs 24 décembre 2025
- LCC 333 - A vendre OSS primitif TBE 15 décembre 2025
- LCC 332 - Groquik revient, Emmanuel s'en va 18 novembre 2025
- LCC 331 - Le retour des jackson 5 6 novembre 2025
- LCC 329 - L'IA, ce super stagiaire qui nous fait travailler plus 14 août 2025
À propos du podcast
Les Cast Codeurs : le podcast en français de, par et pour les développeurs. Prenez connaissance des dernières nouvelles de la sphère Java et du développement en général. Plongez sur un sujet précis avec les épisodes interview. Supportez les radotages de vos hôtes : Emmanuel Bernard (ex Red Hat,…
Épisodes similaires
- Acte III: « Tous les policiers sont mobilisés, de la plus petite ville à Paris » assure Agathe Foucault, porte-parole de la police nationale – L'interview politique du week-end
- Récolte, variétés, vente directe : les secrets de La Pommeraie de Charlotte à Cavaillon – Les circuits courts en France
- L’École Française Digitale : un enseignement flexible qui s’adapte | Delphine Ithembela, cofondatrice de l’École Française Digitale – L'invité de PME Radio
- Attentat de Trappes : une idéologie peut-elle facilement conduire à un passage à l’acte – Radical, le podcast de l'Observatoire des radicalités
- Mobilisations : «Je constate une déliquescence de la France, on ne pourra pas revenir en arrière», s'alarme un commercant – Eliot Deval et vous
Tous les épisodes de Les Cast Codeurs Podcast · Plus de podcasts Actualités