LCC 284 - De mal en pis - partie 1

Published: Sept. 12, 2022, 7:58 a.m.

Dans cet \xe9pisode, nous discutons bonnes pratiques Java, Groovy, WebAssembly, Micronaut. Nous discutons \xe9galement le changement de licence de Akka entre autre. La suite de cet \xe9pisode parlera de changement d\u2019\xe9tage gratuit chez Heroku et des vagues de licenciement dans le monde technologique. Pour rester sous les 1h d\u2019\xe9coute, nous avons d\xe9coup\xe9 les deux derniers \xe9pisodes nouvelles en 2 parties chacun. Qu\u2019en pensez vous ? Donnez-nous votre avis sur Twitter ou sur le Google Groups des cast codeurs.

Enregistr\xe9 le 9 septembre 2022

T\xe9l\xe9chargement de l\u2019\xe9pisode LesCastCodeurs-Episode\u2013284.mp3

News Langages

Jonathan Giles, un principal architecte de Java chez Microsoft, a un site qui partage des bonnes pratiques Java http://java.jonathangiles.net/

  • il couvre des bonnes pratiques Java de mani\xe8re g\xe9n\xe9rale, mais \xe9galement plus sp\xe9cifiquement pour les d\xe9veloppeurs de librairies Java
  • Des conseils sur la bonne utilisation des d\xe9pendances, des BOMs, des versions LTS de Java, des modules Java, de la surface des APIs publi\xe9es, de faire attention \xe0 null ou au boxing, et de comprendre les interfaces fonctionnelles
  • il y a beaucoup de contenu donc faites par petites doses
  • Certains sujets sont plus controvers\xe9s comme les modules Java
  • les recommendations sont assez succinctes
  • Je suppose que ce sont les recommendations que les \xe9quipes du Azure SDK suivent et qu\u2019il a ouvert. Donc merci \xe0 lui

Project Leyden https://www.infoq.com/news/2022/06/project-leyden-delays-aot/

  • Leyden n\u2019a pas progress\xe9 en deux ans
  • Accept\xe9 que GraalVM a d\xe9j\xe0 achev\xe9 les objectifs initiaux
  • Donc vont explorer un spectre plus faible de contraintes (et probalbment d\u2019optimisations
  • Prochaine LTS en Sept 2023 et Leyden ne sera pas mature, donc Leyden sera utilse ~ Sept 2027 (en terme d\u2019adoption) au plus t\xf4t.
  • SpringBoot pensent que CRaC (snapshot de la memoire sur disque pour demarrage plus rapide) sera tr\xe8s utile
  • module-info dans Spring pourn jlink est dans la roadmap
  • Lead de CRaC a fourni un prototype pour Quarkus: ameliore temps de demarrage pour OpenJDK mais pas la consommation memoire
  • jlink pour Quarkus, dans un context Kube, les gains d\u2019espace disque ne sont pas si interessant vs un layered image
  • Micronaut a des issues ouverst pour CRaC

Jos\xe9 Paumard couvre Loom et Structured Concurrency dans sa vid\xe9o de la s\xe9rie JEP Caf\xe9 https://inside.java/2022/08/02/jepcafe13/

Paul King montre l\u2019utilisation de diff\xe9rents frameworks de tests avec Groovy (Spock, JUnit5, Jacoco, Jqwik et Pitest) https://blogs.apache.org/groovy/entry/testing-your-java-with-groovy

  • Paul couvre aussi dans un autre article les comparateurs, et l\u2019utilisation de l\u2019API GINQ
  • https://blogs.apache.org/groovy/entry/comparators-and-sorting-in-groovy
  • La matrice spot est int\xe9ressante mais pas avec des noms de variable \xe0, b, c, d :)
  • L.article est super didactique et explique via un example concret quand utiliser quoi
  • Je trouve les property base testing pas si simple \xe0 utiliser et avec un coup de r\xe9flection >> au truc test\xe9. Mais peut \xeatre le cas est super simplistique pour l\u2019usage

Paul King continue de publier r\xe9guli\xe8rement des articles sur Groovy - https://blogs.apache.org/groovy/entry/working-with-sql-databases-with \u2014 acc\xe9der \xe0 des bases SQL avec Groovy et GraalVM - https://blogs.apache.org/groovy/entry/detecting-objects-with-groovy-the \u2014 d\xe9tection d\u2019objet avec le machine learning avec Deep Java Library et Apache MXNet

Sortie de Spock 2.2, premi\xe8re version GA avec le support officiel de Groovy 4 https://twitter.com/spockframework/status/1564999285250326529

  • Bah la seule info int\xe9ressante est d\xe9j\xe0 dans le titre, c\xe0d c\u2019est le support officiel de Groovy 4

Google lance un nouveau langage, appel\xe9 Carbon, comme un successeur de C++, mais en plus sympa ! https://github.com/carbon-language/carbon-lang

  • interessant, ils veut Ceyloniser ou Scalaizer Rust avec Carbon\u2019s Kotlin-like strategy. Not a bad bet
  • Rust n\u2019est pas assez compatible avec C++, c\u2019est probl\xe9matique, surtout pour des bo\xeetes comme Google avec d\u2019\xe9normes code bases en C++.
  • Donc pour du green-field, Rust c\u2019est bien. Ou c\u2019est bien aussi pour de l\u2019int\xe9gration avec du C. Mais pas avec du C++.

State of WebAssembly https://blog.scottlogic.com/2022/06/20/state-of-wasm\u20132022.html

  • On peut peut-\xeatre aussi rajouter l\u2019utilisation de WebAssembly chez Figma
  • https://neugierig.org/software/blog/2022/06/wasm-notes.html
  • rust reste le langage de pr\xe9dilection
  • Python monte
  • JavaScript est maintenant un langage viable
  • Wasmtime est le runtime le plus populaire
  • L\u2019utilisation de WASM pour Serverless et la contain\xe9risation et en tant que h\xf4te de plugin a beaucoup \xe9merg\xe9
  • Les api non browser sont ce dont a besoin web assembly
  • En fait compilent pas JavaScript mais un moteur JavaScript et faire l\u2019interpr\xe9tation
  • fonctionnalit\xe9s tr\xe8s demand\xe9es : threads, exceptions, GC, type r\xe9flection etc

Graal VM 22.2 https://medium.com/graalvm/graalvm\u201322\u20132-smaller-jdk-size-improved-memory-usage-better-library-support-and-more-cb34b5b68ec0

Alex Blewitt un Java Champion est d\xe9c\xe9d\xe9 pr\xe9matur\xe9ment https://www.infoq.com/news/2022/07/alex-blewitt/

  • notamment un contributeur \xe0 InfoQ
Librairies

Sortie de Micronaut 3.6 https://micronaut.io/2022/08/04/micronaut-framework\u20133\u20136\u20130-released/

  • Nouveau module Micronaut Test Resources avec une int\xe9gration TestContainers qui permet d\u2019avoir des ressources de test externes, par exemple pour un Redis, un Elasticsearch ou autre
  • C\xe9dric Champeau qui a travaill\xe9 sur cette fonctionnalit\xe9 a \xe9crit un blog post complet sur le sujet https://melix.github.io/blog//2022/08/micronaut-test-resources.html
  • Int\xe9gration avec OpenTelemetry (apr\xe8s Open Tracing et autre)
  • Micronaut Data rajoute Hibernate Reactive comme int\xe9gration
  • et plein d\u2019autres mises \xe0 jour des diff\xe9rents modules existants

Utiliser des serialiseurs. / deserialiseurs de messages Kafka dans votre application Quarkus https://quarkus.io/blog/kafka-serde/

  • explique quand on a besoin d\u2019un serialisateur custom (hors des types fondamentaux)
  • Explique que le support JSON existe par d\xe9faut
  • Explique comment utiliser Avro mais avec un sch\xe9ma registry
  • Et la version full custom

Akka change sa licence de ASL vers BSL (Business Source License) https://www.lightbend.com/blog/why-we-are-changing-the-license-for-akka

  • comme MariaDB, Cockroach Labs, Sentry, Materialized
  • BSL is source available et usage dev mais pas prod
  • Apr\xe8s 3 ans, les commits en BSL se convertissent en ASL (donc pas les nouveaux commits)
  • license commerciale disponible pour 2000$ par coeur
  • due au fait qu\u2019avec la maturiote de Akka les contributions ont diminu\xe9 et le support est revenu a LightBend de plus en plus meme si des societes grosse utilisent Akka dans leur infra critique
  • Gatling impact\xe9
  • M\xe9contentement de la communaut\xe9 Akka et Scala, par exemple cet article d\u2019Alexandru Nedelcu https://alexn.org/blog/2022/09/07/akka-is-moving-away-from-open-source
Nous contacter

Pour r\xe9agir \xe0 cet \xe9pisode, venez discuter sur le groupe Google https://groups.google.com/group/lescastcodeurs

Contactez-nous via twitter https://twitter.com/lescastcodeurs
Faire un crowdcast ou une crowdquestion
Soutenez Les Cast Codeurs sur Patreon https://www.patreon.com/LesCastCodeurs
Tous les \xe9pisodes et toutes les infos sur https://lescastcodeurs.com/