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élior