LCC 313 - 313 CCL
Description
Katia, Guillaume, Emmanuel et Antonio discutent Kotlin, Micronaut, Spring Boot, Quarkus, Langchain4j, LLMs en Java, builds reproductible et la question AMA du jour, comment fait-on carrière de dev à 40 ans ?
Enregistré le 14 juin 2024
Téléchargement de l'épisode LesCastCodeurs-Episode-313.mp3
News
Langages
Android avec Kotlin Multiplatform our Flutter avec Dart ? https://developers.googleblog.com/en/making-development-across-platforms-easier-for-developers/
- Des licenciements ont continué chez Google et l'équipe Flutter/Dart comme plein d'autres ont été touchées, mais sur les réseaux sociaux les gens ont pensé que Google désinvestissait dans Flutter et Dart.
- Par ailleurs, côté Android, ils poussent plutôt du côté de Kotlin et KMP, mais naturellement aussi les gens se sont demandé si Google avait pris parti pour pousser plus Kotlin/KMP plutôt que Flutter/Dart.
- Pour essayer de mieux faire comprendre aux développeurs l'intérêt des deux plateformes, et leurs avantages et inconvénients, les directeurs des deux plateformes ont rédigé un article commun.
- Si l'on souhaite une expérience plus proche du hardware et des dernières nouveautés d'Android, et d'avoir aussi une UI/UX vraiment native Android, mieux vaut aller du côté de Kotlin/KMP.
- Si l'on souhaite par contre une expérience multiplateforme Web, mobile, desktop avec une UX commune cross-plateforme, avec également le partage de business logic à partir d'une même base de code, Flutter et Dart sont plus adaptés.
Recap de KotlinConf https://x.com/gz_k/status/1793887581433971083?s=46&t=C18cckWlfukmsB_Fx0FfxQ
- RPC multiplatform
- la pres Grow with the flow montrant la reecriture en kotlin plus simple que des solutions complexes ailleurs
- power-assert pour ecrire des tests
- Kotlin 2.0 et les evolutions majeures
- Kotlin multiplatforme mainteant stable
- Kotlin Compose Multiplatform continue a amturer
- Retour d'experience de la migration d'android jetpack vers Kotlin Multiplatform
- use cases de coroutines et scope
Librairies
Quarkus veut aller dans une fondation https://quarkus.io/blog/quarkus-in-a-foundation/
- ameliorer l'adoption (encore plus), ameliorer la transparence, et la collaboration, encourager la participatiopn multi vendeur
- Premiere etape : une gouvernance plus overte
- Deuxieme etape: bouger dans uen foundation
- Echange avec la communaute sur la proposition et les fondations cibles
- Des criteres pour al foudnation (notamment la rapidite de delivery
Quarkus 3.11 https://quarkus.io/blog/quarkus-3-11-0-released/
- Websocket.next en cours
- Dev services pour observabilite (grafana, jaegel, open telemetry
- extension infinispan cache
- #38448 - Observability extensions - Dev Services, Dev Resources, LGTM
- #39836 - Infinispan Cache Extension
- #40309 - WebSockets Next: client endpoints
- #40534 - WebSockets Next: initial version of security integration
- #40273 - Allow quarkus:run to launch Dev Services
- #40539 - Support for OIDC session expired page
- #40600 - Introduce
OidcRedirectFilter
LangChain4j 0.31 est sorti https://github.com/langchain4j/langchain4j/releases/tag/0.31.0
- Recherche Web pour le RAG avec Google et Tavily
- RAG avec les bases de données SQL (expérimental)
- Récupération des resources remontées par le RAG lorsque AiServices retourne un Result
- Observabilité LLM pour OpenAI pour être notifié des requêtes, réponses et erreurs
- Intégration de Cohere (embedding), Jina (embedding et re-ranking scoring), Azuere CosmosDB comme embedding store
- Mise à jour de Gemini avec le parallel function calling et les instructions système
Spring Boot 3.3.0 est sorti https://spring.io/blog/2024/05/23/spring-boot-3-3-0-available-now
- support Class Data Sharing
- Micrometer sipport de spantag etc
- Amelioration Spring Security comme JwtAuthenticationCovnerter
- support docker compose pour les images container bitnami
- Virtual thread pour les websockets
- Support sBOM via an actuator
- SNI for embedded web servers
- une nouvelle doc via antora
Micronaut 4.5 est sortie https://github.com/micronaut-projects/micronaut-platform/releases/tag/v4.5.0
- Le serveur basé sur Netty inclus la détection d'opération bloquante et les modules l'utilisant indiqueront à l'utilisateur quand certaines opérations peuvent être redirigée plutôt sur un virtual thread ou dans le thread pool IO
- Micronaut Data inclus le support de la multitenance avec partitionnement par discriminateur pour JDBC et R2DBC
- Micronaut Data rajoute le pagination par curseur pour JDBC et R2DBC (important aussi pour Jakarta Data)
- Support des annotations Jakarta Servlet pour configurer par exemple les servelet filters
- Support virtual thread et HTTP/2
- Un nouveau module JSON Schema pour générer des JSON Schemas pour les records Java
- Un nouveau module Source Gen pour faire de la génération de source pour Java et Kotlin cross-language
- Un nouveau module Guice pour importer des modules Guice existants
Web
Angular 18 est sorti https://blog.angular.dev/angular-v18-is-now-available-e79d5ac0affe
- Support expérimental pour la détection de changement sans zone
- Angular.dev est désormais le nouveau site pour les développeurs Angular
- Material 3, les "deferrable views", le "built-in control flow" sont maintenant stables et intègrent une série d'améliorations
- Améliorations du rendu côté serveur telles que le support de l'hydratation i18n, un meilleur débogage, le support de l'hydratation dans Angular Material, et la event replay qui utilise la même bibliothèque que Google Search.
Data et Intelligence Artificielle
Une version pure Java du LLM Llama3 de Meta https://github.com/mukel/llama3.java/tree/main
- utilise la future API Vector de Java
JLama, un moteur d'exécution de LLM en Java avec l'api vector https://www.infoq.com/news/2024/05/jlama-llm-inference-java/
- basé sur llama.c qui est un moteur d'inference de LLM (l'execution des requetes)
- jlama implementé avec vector APIs et PamanaTensorOperations
- plusisures alternatives (native binding, iml0ementation pure en java, scala, kotlin)
Target Speech Hearing https://www.infoq.com/news/2024/05/target-speech-hearing/
- Nouveau algo Deep Learning de l'Université de Washington permet d'écouter une seule personne de ton choix et effacer tout le bruit autour
- le système nécessite que la personne portant les écouteurs appuie sur un bouton tout en regardant quelqu'un parler ou simplement en le fixant pendant trois à cinq secondes
- Permet à un modèle d'apprendre les schémas vocaux du locuteur et de s'y attacher pour pouvoir les restituer à l'auditeur, même s'il se déplace et cesse de regarder cette personne.
- Selon les chercheurs, cela constitue une avancée significative par rapport aux écouteurs à réduction de bruit existants, qui peuvent annuler efficacement tous les sons, mais ne peuvent pas sélectionner les locuteurs en fonction de leurs caractéristiques vocales.
- Actuellement, le système ne peut enregistrer qu'un seul locuteur à la fois. Une autre limitation est que l'enregistrement ne réussira que si aucune autre voix forte ne provient de la même direction.
- L'équipe a mis en open source leur code et leur jeu de données afin de faciliter les travaux de recherche futurs pour améliorer l'audition de la parole cible.
Outillage
Utiliser LLM pour migrer du framework de testing https://www.infoq.com/news/2024/06/slack-automatic-test-conversion/
- Slack a migré 15.000 tests de Enzyme à React Testing Library avec un succès de 80%
- Migration nécessaire pour le manque de support de Enzyme pour React 18
- L'équipe a essayé d'automatiser la conversion avec des transformations AST, mais n'a atteint que 45 % de succès à c




