LCC 319 - le ramasse-miettes-charognes

Épisode de Les Cast Codeurs Podcast par Emmanuel Bernard, Guillaume, Antonio, Arnaud, Katia · 16 décembre 2024 · 1 h 10 min

Dans cet épisde en audio et en vidéo (youtube.com/lescastcodeurs), Guillaume et Emmanuel discutent des 15 ans de Go, d'une nouvelle approche de garbage collecting, de LLMs dans les applications Java, dobservabilité, d'une attaque de chaine d'approvisionnement via javac et d'autres choses.

Enregistré le 13 décembre 2024

Téléchargement de l'épisode LesCastCodeurs-Episode-319.mp3

News

Langages

Go fête son 15ème anniversaire ! https://go.dev/blog/15years

discute les 15 ans

la corrections de gotchas dans les for loops (notamment les variables étaient loop scoped)

le fait que la compile echoue si on attend une version de go superieure seulement depuis go 1.21 en parallele de la gestion de la chaine d'outil (c'est en 2023 seulement!)

opt-in telemetrie aussi recent

Construire OpenJDK à partir des sources sur macOS https://www.morling.dev/blog/building-openjdk-from-source-on-macos/

de maniere surprenante ce n'est pas tres compliqué

Papier sur l'aproche Mark-scavenge pour un ramasse miette https://inside.java/2024/11/22/mark-scavenge-gc/

papier de recherche

utiliser l'accessibilité pour preuve de vie n'est pas idéal: un objet peut etre atteignable mais ne sera jamais accedé par le programme

les regions les plus pauvres en objets vivant voient leurs objets bouger dans uen autre region et la regio libéré, c'est le comportement classique des GC

deux methodes: mark evaguate qui le fait en deux temps et la liveness peut evoluer ; et scavenge qui bouge l'objet vivant des sa decouverte

ont fait tourner via ZGC des experience pour voir les objects consideres vivants et bougés inutilement.

resultats montrent un gros taux d'objets bougés de maniere inutile

proposent un algo different

ils marquent les objets vivants mais ne les bougent pas avant le prochain GC pour leur donner une change de devenir unreachable

elimine beaucoup de deplacement inutiles vu que les objets deviennent non accessible en un cycle de GC

jusquà 91% de reduction ! Particulierement notable dans les machines chargées en CPU.

Les tokens d'accès court ou longs https://grayduck.mn/2023/04/17/refresh-vs-long-lived-access-tokens/

pourquoi des long access tokens (gnre refresh token) sont utilises pour des short lived dans oauth 2.0

refresh token simplifient la revocation: vu que seul le auth serveur a a verifier la révocation et les clients vérifient l'expiration et la validité de la signature

refresh token ne sont envoyés que entre endpoints alors que les access tokens se baladent pas mal: les frontières de confiance ne sont pas traversées

refresh token comme utilise infréquement, et donc peut etre protegee dans une enclave

les changements de grants sont plus simple tout en restant distribuable

histoire des access refresh token et access token permet de mieux tracer les abus / attaques

les inconvenients: c'est plus compliqué en flow, the auth serveur est un SPOF amis mitigeable

Java Advent est de retour https://www.javaadvent.com/calendar

backstage

Java integrite par defaut (et ses consequences sur l'ecosysteme)

timefold (sovler)

Les extensions JUNit 5

OpenTelemetry via Java Agent vs Micrometer

analyse statique de code

CQRS et les fonctionalités modernes de Java

java simple (sans compilatrion, sans objet

fullstack dev with quarkus as backend

José Paumard introduit et explique les Gatherers dans Java 24 dans cette vidéo https://inside.java/2024/11/26/jepcafe23/

Librairies

Micronaut 4.7, avec l'intégration de LangChain4j https://micronaut.io/2024/11/14/micronaut-framework-4-7-0-released/

Combiner le framework de test Spock et Cucumber https://www.sfeir.dev/back/spock-framework-revolutionnez-vos-tests-unitaires-avec-la-puissance-du-bdd-et-de-cucumber/

les experts peuvent écrire leurs tests au format Gherkin (de Cucumber) et les développeurs peuvent implémenter les assertions correspondantes avec l'intégration dans Spock, pour des tests très lisibles

Spring 6.2 https://spring.io/blog/2024/11/14/spring-framework-6-2-0-available-now

beans @Fallback

améliorations sur SpELet sur le support de tests

support de l'echape des property placeholders

une initioalisation des beans en tache de fond nouvelle

et pleins d'autres choses encore

Comment créer une application Java LLM tournant 100% en Java avec Jlama https://quarkus.io/blog/quarkus-jlama/

blog de Mario Fusco, Mr API et Java et Drools

utilise jlama + quarkus + langchain

Explique les avantage de l'approche pure Java comme le cycle de vie unique, tester les modeles rapidement, securite (tout est in process), monolithe ahahah, observabilité simplifiée, distribution simplifiée (genre appli embarquée) etc

Vert.x 5 en seconde incubation https://vertx.io/blog/eclipse-vert-x-5-candidate-2-released/

Support des Java modules (mais beacoup des modules vert.x eux-même ne le supportent pas

support io_uring dans vert.x core

le load balancing côté client

le modele des callbacks n'est plus supporté, vive les Futur

beaucoup d'améliorations autour de gRPC

et d'autres choses

Un article sur Spring AI et la multi modalite audio https://spring.io/blog/2024/12/05/spring-ai-audio-modality

permet de voir les evolutions des APIs de Spring AI

s'appluie sur les derniers modeles d'open ai

des examples comme par exemple un chatbot voix et donc comment enregistrer la voix et la passer a OpenAI

Comment activer le support experimental HTTP/3 dans Spring Boot https://spring.io/blog/2024/11/26/http3-in-reactor-2024

c'ets Netty qui fait le boulot

puis Spring Netty

l'article décrit les etapes pour l'utiliser dans vos applis Spring Boot ou Spring Cloud Gateway

l'article explique aussi le cote client (app cliente) ce qui est sympa

Infrastructure

Un survol des offres d'observabilité http://blog.ippon.fr/2024/11/18/observabilite-informatique-comprendre-les-bases-2eme-partie/

un survol des principales offres d'observabilité

Open source ou SaaS

et certains outsiders

Pas mal pour commencer à défricher ce qui vous conviendrait

blog de ippon

Web

Sortie de Angular 19 https://blog.ninja-squad.com/2024/11/19/what-is-new-angular-19.0/

stabilité des APIs Signal APIs

migration automatique vers signals

composants standalone par défaut

nouvelles APIs linkedSignal et resource

de grosses améliorations de SSR et HMR

un article également de Sfeir sur Angular 19 https://www.sfeir.dev/front/angular-19-tout-ce-quil-faut-savoir-sur-les-innovations-majeures-du-framework/

Angluar 19 https://www.sfeir.dev/front/angular-19-tout-ce-quil-faut-savoir-sur-les-innovations-majeures-du-framework/

composant standalone par default (limiter les problemes de dependances), peut le mettre en strict pour le l'imposer (ou planter)

signalement des imports inutilisés

@let pour les variables locales dans les templates

linkedSignal (experimental) pour lier des signaux entre eux (cascade de changement suite a un evenement

hydratation incrementale (contenu progressivement interactif avec le chargement - sur les parties de la page visible ou necessaires

et event replay, routing et modes de rendu en rendy hybride, Hot module replacement etc

The State of Frontend — dernière compilation des préférences des développeurs en terme de front https://tsh.io/state-of-frontend/

React en tête, suivi de Vue et Svelte. Angular seulement 4ème

Côté rendering framework, Next.js a la majorité absolue, ensuite viennent Nuxt et Astro

Zod est la solution de validation préférée

Pour la gestion de date, date-fns est en tête, suivi par moment.js

Côté state management, React Context API en première place, mais les suivants sont tous aussi pour React !

Grosse utilisation de lodash pour plein d'utilités

Pour fetcher des resources distantes, l'API native Fetch et Axios sont les 2 vaincoeurs

Pour le déploiement, Vercel est premier

Côté CI/CD, beaucoup de Github Actions, suivi par Gitlab CI

Package management, malgré de bonnes alternatives, NPM se taille toujours la part du lion

Ecrasante utilisation de Node.js comme runtime JavaScript pour faire du développement front

Pour ce qui est du typing, beaucoup utilisent TypeScript, et un peu de JSdoc, et la majorité des répondants pensent que TypeScript a dépassé JavaScript en usage

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