Dans cet épisode, Katia, Emmanuel et Arnaud explorent de nouvelles approches du Builder pattern en Java, l’introduction du Pattern Matching des Primitives en Java, et les déboires de l’intelligence artificielle avec des attaques de la chaîne d’approvisionnement sur Pytorch. Ils abordent aussi les licenciements dans diverses entreprises technologiques, l’évolution du trafic de Stackoverflow et donnent de conseils pratiques pour les développeurs, notamment sur les commits conventionnels, la mise à jour de dépendances avec Dependabot, Renovate et le débogage des programmes Java. Ils terminent avec leur retour d’expérience sur la relecture des sujets de Devoxx France 2024.

Enregistré le 9 février 2024

Téléchargement de l’épisode LesCastCodeurs-Episode-306.mp3

Votre avis compte énormément pour nous ! 🎧 Nous voulons rendre Les Cast Codeurs encore plus genial, et c’est là que vous intervenez. 🌟 Aidez-nous en partageant vos idées, suggestions et souhaits pour 2024, dans notre tout nouveau formulaire de retour. C’est rapide, facile et ça ne prend que 2 minutes.

News

Langages

Une approche différente du Builder pattern en Java, inspirée par ce qui se fait dans la communauté Golang https://glaforge.dev/posts/2024/01/16/java-functional-builder-approach/

  • Les builders, surtout quand ils sont imbriqués les uns dans les autres, peuvent devenir un peu verbeux à lire.
  • Est-ce qu’on peut prendre une nouvelle approche ? Oui, en tirant parti des lambdas, avec des méthodes de mutation qui retournent des lambda qui effectuent la mutation.
  • On retrouve le plaisir de pouvoir construire une instance à l’aide d’un constructeur, plutôt qu’un builder.
  • En recherchant le sujet, Guillaume est aussi tombé sur une approche type safe du builder classique https://www.endoflineblog.com/type-safe-builder-pattern-in-java-and-the-jilt-library (qui est implémentée sous forme d’annotation processor dans le petit projet open source Jilt).

Pattern Matching Primitives (JEP 455) https://openjdk.org/jeps/455

  • Uniformité autorisant le pattern de type pour tous les types, qu’ils soient primitifs ou de référence et sécurité dans la conversion de types et éviter les erreurs runtime pour les conversions de type. Plus de robustesse.
  • Ça l’explique bien ici. Les deux https://www.infoq.com/news/2024/02/java-enhances-pattern-matching/.
  • Exemple :
    • Avant
      if (i >= -128 && i <= 127) {
          byte b = (byte)i;
          ... b ...
      }
      
    • Maintenant
      if (i instanceof byte b) {
          ... b ...
      }
      byte b = 42;
      b instanceof int;         // true (unconditionally exact)
      int i = 42;
      i instanceof byte;        // true (exact)
      int i = 1000;
      i instanceof byte;        // false (not exact)
      

News Java, le tour https://www.infoq.com/news/2024/02/java-news-roundup-jan29-2024/

  • Open JDK avec preview de Classe File API,
  • JDK 22 et 23,
  • Glassfish, GraalVM, Spring, Quarkus, Infinispan, Hibernate, Grails, Vert.x… plein d’outils,
  • Keycloak,
  • Langchain,
  • Lire les détails dans l’article d’InfoQ.

Data et Intelligence Artificielle

Une attaque de supply chain sur Pytorch et l’IA https://johnstawinski.com/2024/01/11/playing-with-fire-how-we-executed-a-critical-supply-chain-attack-on-pytorch/

  • Soumettre une PR avec une correction de typo.
  • Ça leur a permis de faire tourner la CI automatiquement quand ils poussent la PR.
  • Soumis une PR qui curl fetch un gist qui tournait sur un runner auto-hébergé.
  • Et ils ont choppé les tokens pour plus tard publier les binaires dans les repos officiels.
  • Et personne n’a rien vu.

Support du modèle de génération d’image Imagen dans LangChain4j rajouté dans la dernière version du project https://glaforge.dev/posts/2024/02/01/image-generation-with-imagen-and-langchain4j/

  • Contribué par Guillaume.
  • On peut générer des images, mais aussi les éditer.

Collab entre Google et Hugging Face https://www.infoq.com/news/2024/01/hugging-face-gcp-ai/

  • Intégration avec Vertex.ai et d’autres services Google.
  • Facilite le deploy dans le cloud Google et l’intégration avec Kubernetes.

Guillaume a écrit un article et développé une application pour visualiser les tokens générés par les Large Language Models dérivés du modèle PaLM https://glaforge.dev/posts/2024/02/05/visualize-palm-based-llm-tokens/

Outillage

Stackoverflow voit son traffic diminuer doucement depuis quelques années, mais depuis l’avènement de ChatGPT et consort, la chute s’accélère https://twitter.com/swyx/status/1753122780709871834

Amélie Benoit - Dependabot Visual way https://twitter.com/AmelieBenoit33/status/1754397434812203455

Méthodologies

Le pouvoir des “conventional commits” par Julien Ponge https://julien.ponge.org/blog/the-power-of-conventional-commits/

  • Convention poussée par l’équipe Angular, à la base.
  • Pour standardiser et clarifier les messages de commits.
  • Mais aussi pratique pour les outils comme JReleaser pour automatiser les release notes d’un projet.

Loi, société et organisation

Google vire encore des ingénieurs dans la division matérielle pixel, et dans les ingénieurs cœur https://www.nytimes.com/2024/01/11/technology/google-layoffs.html

Okta vire 400 personnes dont Matt Raible https://techcrunch.com/2024/02/01/okta-layoffs-400-employees/

  • Cela suit Microsoft (gaming), eBay, SAP, RIOT Games (League of Legends), Google, Amazon (Prime, Audible), Unity et plein d’autres.
  • Tout ça juste en janvier.

Facebook fête ses 20 ans https://www.francetvinfo.fr/internet/reseaux-sociaux/facebook/facebook-a-20-ans-de-sit[…]la-lente-mutation-du-doyen-des-reseaux-sociaux_6323610.html https://www.bbc.com/news/technology-68109208

  • Quoi dire de plus, le temps passe vite… #old

Rubrique débutant

Manuel de survie de la femme dans la tech https://www.duchess-france.fr/dossier/women%20in%20tech/alli%C3%A9s/2023/01/15/manuel-survie-femme-tech.html

Java Thread Dump - VisualVM, jstack, kill -3, jcmd https://www.digitalocean.com/community/tutorials/java-thread-dump-visualvm-jstack-kill-3-jcmd

  • Parfois vos programmes Java ont l’air bloqués.
  • Vous pouvez effectuer un thread dump dans un autre terminal en récupérant le PID du process Java et en faisant un kill -3 PID.

Conférences

Dans les coulisses du Call for Paper de Devoxx France 2024.

La liste des conférences provenant de Developers Conferences Agenda/List par Aurélie Vache et contributeurs :

Nous contacter

Pour réagir à cet épisode, 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 épisodes et toutes les infos sur https://lescastcodeurs.com/