LCC 321 - Les évènements écran large

Épisode de Les Cast Codeurs Podcast par Emmanuel Bernard, Guillaume, Antonio, Arnaud, Katia · 21 janvier 2025 · 1 h 14 min

Arnaud et Emmanuel discutent des versions Java, font un résumé de l'ecosystème WebAssembly, discutent du nouveau Model Context Protocol, parlent d'observabilité avec notamment les Wide Events et de pleins d'autres choses encore.

Enregistré le 17 janvier 2025

Téléchargement de l'épisode LesCastCodeurs-Episode–321.mp3 ou en vidéo sur YouTube.

News

Langages

java trend par InfoQ https://www.infoq.com/articles/java-trends-report–2024/

Java 17 finalement depasse 11 et 8 ~30/33%

Java 21 est à 1.4%

commonhaus apparait

GraalVM en early majority

Spring AI et langchain4j en innovateurs

SB 3 voit son adoption augmenter

Un bon résumé sur WebAssembly, les différentes specs comme WASM GC, WASI, WIT, etc https://2ality.com/2025/01/webassembly-language-ecosystem.html

WebAssembly (Wasm) est un format d'instructions binaires pour une machine virtuelle basée sur une pile, permettant la portabilité et l'efficacité du code.

Wasm a évolué à partir d'asm.js, un sous-ensemble de JavaScript qui pouvait fonctionner à des vitesses proches de celles natives.

WASI (WebAssembly System Interface) permet à Wasm de fonctionner en dehors des navigateurs Web, fournissant des API pour le système de fichiers, CLI, HTTP, etc.

Le modèle de composant WebAssembly permet l'interopérabilité entre les langages Wasm à l'aide de WIT (Wasm Interface Type) et d'ABI canonique.

Les composants Wasm se composent d'un module central et d'interfaces WIT pour les importations/exportations, facilitant l'interaction indépendante du langage.

Les interfaces WIT décrivent les types et les fonctions, tandis que les mondes WIT définissent les capacités et les besoins d'un composant (importations/exportations).

La gestion des packages Wasm est assurée par Warg, un protocole pour les registres de packages Wasm.

Une enquête a montré que Rust est le langage Wasm le plus utilisé, suivi de Kotlin et de C++; de nombreux autres langages sont également en train d'émerger.

Un algorithme de comptage a taille limitée ne mémoire a été inventé https://www.quantamagazine.org/computer-scientists-invent-an-efficient-new-way-to-count–20240516/

élimine un mot de manière aléatoire mais avec une probabilité connue quand il y a besoin de récupérer de l'espace

cela se fait par round et on augmente la probabilité de suppression à chaque round

donc au final, ne nombre de mots / la probabilité d'avoir été éliminé donne une mesure approximative mais plutot précise

Librairies

Les contributions Spring passent du CLA au DCO https://spring.io/blog/2025/01/06/hello-dco-goodbye-cla-simplifying-contributions-to-spring

d'abord manuel amis meme automatisé le CLA est une document legal complexe

qui peut limiter les contribuitions

le DCO vient le Linux je crois et est super simple

accord que la licence de la conmtrib est celle du projet

accord que le code est public et distribué en perpetuité

s'appuie sur les -s de git pour le sign off

Ecrire un serveur MCP en Quarkus https://quarkus.io/blog/mcp-server/ MCP est un protocol proposé paor Antropic pour integrer des outils orchestrables par les LLMs

MCP est frais et va plus loin que les outils

offre la notion de resource (file), de functions (tools), et de proimpts pre-built pour appeler l'outil de la meilleure façon

On en reparlera a pres avec les agent dans un article suivant

il y a une extension Quarkus pour simplifier le codage

un article plus detaillé sur l'integration Quarkus https://quarkus.io/blog/quarkus-langchain4j-mcp/

GreenMail un mini mail server en java https://greenmail-mail-test.github.io/greenmail/#features-api

Utile pour les tests d'integration

Supporte SMTP, POP3 et IMAP avec TLS/SSL

Propose des integrations JUnit, Spring

Une mini UI et des APIs REST permettent d'interagir avec le serveur si par exemple vous le partagé dans un container (il n'y a pas d'integration TestContainer existante mais elle n'est pas compliquée à écrire)

Infrastructure

Docker Bake in a visual way https://dev.to/aurelievache/understanding-docker-part–47-docker-bake–4p05

docker back propose d'utiliser des fichiers de configuration (format HCL) pour lancer ses builds d'images et docker compose

en gros voyez ce DSL comme un Makefile très simplifié pour les commandes docker qui souvent peuvent avoir un peu trop de paramètres

Datadog continue de s'etendre avec l'acquisition de Quickwit https://www.datadoghq.com/blog/datadog-acquires-quickwit/

Solution open-source de recherche des logs qui peut être déployée on-premise et dans le cloud https://quickwit.io/

Les logs ne quittent plus votre environment ce qui permet de répondre à des besoins de sécurité, privacy et réglementaire

Web

33 concepts en javascript https://github.com/leonardomso/33-js-concepts

Call Stack, Primitive Types, Value Types and Reference Types, Implicit, Explicit, Nominal, Structuring and Duck Typing, == vs === vs typeof, Function Scope, Block Scope and Lexical Scope, Expression vs Statement, IIFE, Modules and Namespaces, Message Queue and Event Loop, setTimeout, setInterval and requestAnimationFrame, JavaScript Engines, Bitwise Operators, Type Arrays and Array Buffers, DOM and Layout Trees, Factories and Classes, this, call, apply and bind, new, Constructor, instanceof and Instances, Prototype Inheritance and Prototype Chain, Object.create and Object.assign, map, reduce, filter, Pure Functions, Side Effects, State Mutation and Event Propagation, Closures, High Order Functions, Recursion, Collections and Generators, Promises, async/await, Data Structures, Expensive Operation and Big O Notation, Algorithms, Inheritance, Polymorphism and Code Reuse, Design Patterns, Partial Applications, Currying, Compose and Pipe, Clean Code

Data et Intelligence Artificielle

Phi 4 et les small language models https://techcommunity.microsoft.com/blog/aiplatformblog/introducing-phi–4-microsoft%e2%80%99s-newest-small-language-model-specializing-in-comple/4357090

Phi 4 un SML pour les usages locaux notamment

14B de parametres

belle progression de ~20 points sur un score aggregé et qui le rapproche de Llama 3.3 et ses 70B de parametres

bon en math (data set synthétique)

Comment utiliser Gemini 2.0 Flash Thinking (le modèle de Google qui fait du raisonnement à la sauce chain of thought) en Java avec LangChain4j https://glaforge.dev/posts/2024/12/20/lets-think-with-gemini–2-thinking-mode-and-langchain4j/

Google a sorti Gemini 2.0 Flash, un petit modèle de la famille Gemini

the "thinking mode" simule les cheminements de pensée (Chain of thoughts etc)

décompose beaucoup plus les taches coplexes en plusiewurs taches

un exemple est montré sur le modele se battant avec le probleme

Les recommendations d'Antropic sur les systèmes d'agents https://www.anthropic.com/research/building-effective-agents

défini les agents et les workflow

Ne recommence pas les frameworks (LangChain, Amazon Bedrock AI Agent etc) le fameux débat sur l'abstraction

Beaucoup de patterns implementable avec quelques lignes sans frameworks

Plusieurs blocks de complexité croissante

Augmented LLM (RAG, memory etc): Anthropic dit que les LLMs savent coordonner cela via MCP apr exemple

Second: workflow prompt chaining : avec des gates et appelle les LLMs savent coordonner successivement ; favorise la precision vs la latence vu que les taches sont décomposées en plusieurs calls LLMs

Workflow routing: classifie une entree et choisie la route a meilleure: separation de responsabilité

Workflow : parallelisation: LLM travaillent en paralllele sur une tache et un aggregateur fait la synthèse. Paralleisaiton avec saucissonage de la tache ou voter sur le meilleur réponse

Workflow : orchestrator workers: quand les taches ne sont pas bounded ou connues (genre le nombre de fichiers de code à changer) - les sous taches ne sont pas prédéfinies

Workflow: evaluator optimizer: nun LLM propose une réponse, un LLM l'évalue et demande une meilleure réponse au besoin

Autres épisodes de « Les Cast Codeurs Podcast »

À 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,…

Les Cast Codeurs Podcast

Épisodes similaires

Tous les épisodes de Les Cast Codeurs Podcast · Plus de podcasts Actualités