Gros épisode qui couvre un large spectre de sujets : Java, Scala, Micronaut, NodeJS, l’IA et la compétence des développeurs, le sampling dans les LLMs, les DTO, le vibe coding, les changements chez Broadcom et Red Hat ainsi que plusieurs nouvelles sur les licences open source.
Enregistré le 7 mai 2025
Téléchargement de l’épisode LesCastCodeurs-Episode-325.mp3 ou en vidéo sur YouTube.
News
Langages
A l’occasion de JavaOne et du lancement de Java 24, Oracle lance un nouveau site avec des ressources vidéo pour apprendre le langage https://learn.java/
- site plutôt à destination des débutants et des enseignants
- couvre la syntaxe aussi, y compris les ajouts plus récents comme les records ou le pattern matching
- c’est pas le site le plus trendy du monde.
Martin Odersky partage un long article sur l’état de l’écosystème Scala et les évolutions du language https://www.scala-lang.org/blog/2025/03/24/evolving-scala.html
- Stabilité et besoin d’évolution : Scala maintient sa position (~14ème mondial) avec des bases techniques solides, mais doit évoluer face à la concurrence pour rester pertinent.
- Axes prioritaires : L’évolution se concentre sur l’amélioration du duo sécurité/convivialité, le polissage du langage (suppression des “rugosités”) et la simplification pour les débutants.
- Innovation continue : Geler les fonctionnalités est exclu ; l’innovation est clé pour la valeur de Scala. Le langage doit rester généraliste et ne pas se lier à un framework spécifique.
- Défis et progrès : L’outillage (IDE, outils de build comme sbt, scala-cli, Mill) et la facilité d’apprentissage de l’écosystème sont des points d’attention, avec des améliorations en cours (partenariat pédagogique, plateformes simples).
Des strings encore plus rapides ! https://inside.java/2025/05/01/strings-just-got-faster/
- Dans JDK 25, la performance de la fonction String::hashCode a été améliorée pour être principalement constant foldable.
- Cela signifie que si les chaînes de caractères sont utilisées comme clés dans une Map statique et immuable, des gains de performance significatifs sont probables.
- L’amélioration repose sur l’annotation interne @Stable appliquée au champ privé String.hash.
- Cette annotation permet à la machine virtuelle de lire la valeur du hash une seule fois et de la considérer comme constante si elle n’est pas la valeur par défaut (zéro).
- Par conséquent, l’opération String::hashCode peut être remplacée par la valeur de hash connue, optimisant ainsi les lookups dans les Map immuables.
- Un cas limite est celui où le code de hachage de la chaîne est zéro, auquel cas l’optimisation ne fonctionne pas (par exemple, pour la chaîne vide “”).
- Bien que l’annotation @Stable soit interne au JDK, un nouveau JEP (JEP 502: Stable Values (Preview)) est en cours de développement pour permettre aux utilisateurs de bénéficier indirectement de fonctionnalités similaires.
AtomicHash, une implémentation Java d’une HashMap qui est thread-safe, atomique et non-bloquante https://github.com/arxila/atomichash
- implémenté sous forme de version immutable de Concurrent Hash Trie
</