Dans cet épisode estival Guillaume, Emmanuel et Arnaud parcourent les nouvelles du début d’été. Du Java, du Rust, du Go du coté des langages, du Micronaut, du Quarkus pour les frameworks, mais aussi du WebGPU, de l’agilité, du DDD, des sondages, de nombreux outils et surtout de l’intelligence artificielle à toutes les sauces (dans les bases de données, dans les voitures…).

Enregistré le 21 juillet 2023

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

News Langages

La release candidate de Go 1.21 supporte WASM et WASI nativement https://go.dev/blog/go1.21rc

StringBuilder ou contatenation de String https://reneschwietzke.de/java/the-stringbuilder-advise-is-dead-or-isnt-it.html

  • StringBuilder était la recommendation ca cela créait moins d’objects notamment.
  • Mais la JVM a évolué et le compilateur ou JIT remplace cela par du code efficace
  • Quelques petites exceptions
  • le code froid (e.g. startup time) qui est encore interprété peut beneficier de StringBuilder
  • autre cas, la concatenation dans des boucles où le JIT ne pourrait peut etre pas optimiser
  • le StringBuilder “fluid” est plus efficace (inliné?)
  • ces regles ne changement pas si des objects sont stringifié pour etre concaténés

GPT 4 pas une revolution https://thealgorithmicbridge.substack.com/p/gpt-4s-secret-has-been-revealed

  • rumeur ca beaucou de secret
  • pas u modele a 1 trillion de parametres maus 8 a 220 Milliards
  • combinés intelligeament
  • les chercheurs attendaient un breakthrough amis c’est une envolution et pas particulierement nouveau
  • methode deja implem,entee par des cherchers chez google (maintenant chez ooenai
  • ils ont retarde la competition avec ces rumeurs de breakthrough amis 8 LLaMA peut peut etre rivaliser avec GPT4

Le blog Open Source de Google propose un article sur 5 mythes ou non sur l’apprentissage et l’utilisation de Rust https://opensource.googleblog.com/2023/06/rust-fact-vs-fiction-5-insights-from-googles-rust-journey-2022.html

  • Il faut plus de 6 mois pour apprendre Rust : plutôt faux; quelques semaines à 3-4 mois max
  • Le compilateur Rust est pas aussi rapide qu’on le souhaiterait — vrai !
  • Le code unsafe et l’interop sont les plus gros challanges — faux, c’est plutôt les macros, l’owernship/borrowing, et la programmation asynchrone
  • Rust fournit des messages d’erreur de compilation géniaux — vrai
  • Le code Rust est de haute qualité — vrai

InfoQ sort un nouveau guide sur le Pattern Matching pour le switch de Java https://www.infoq.com/articles/pattern-matching-for-switch/

  • Le pattern matching supporte tous les types de référence
  • L’article parle du cas de la valeur null
  • L’utilisation des patterns “guarded” avec le mot clé when
  • L’importance de l’ordre des cases
  • Le pattern matching peut être utilisé aussi avec le default des switchs
  • Le scope des variables du pattern
  • Un seul pattern par case label
  • Un seul case match-all dans un bloc switch
  • L’exhaustivité de la couverture des types
  • L’utilisation des generics
  • La gestion d’erreur avec MatchException
Librairies

Sortie de Micronaut 4 https://micronaut.io/2023/07/14/micronaut-framework-4-0-0-released/

  • Langage minimal : Java 17, Groovy 4 et Kotlin 1.8
  • Support de la dernière version de GraalVM
  • Utilisation des GraalVM Reachability Metadata Repository pour faciliter l’utilisation de Native Image
  • Gradle 8
  • Nouveau Expression Language, à la compilation, pas possible au runtime (pour des raisons de sécurité et de support de pré-compilation)
  • Support des Virtual Threads
  • Nouvelle couche HTTP, éliminant les stack frames réactives quand on n’utilise pas le mode réactif
  • Support expérimental de IO Uring et HTTP/3
  • Des filtres basés sur les annotations
  • Le HTTP Client utilise maintenant le Java HTTP Client
  • Génération de client et de serveur en Micronaut à partir de fichier OpenAPI
  • L’utilisation YAML n’utilise plus la dépendance SnakeYAML (qui avait des problèmes de sécurité)
  • Transition vers Jackarta terminé
  • Et plein d’autres mises à jour de modules
  • Couverture par InfoQ https://www.infoq.com/news/2023/07/micronaut-brings-virtual-thread/

Quarkus 3.2 et LTS https://quarkus.io/blog/quarkus-3-2-0-final-released/ https://quarkus.io/blog/quarkus-3-1-0-final-released/ https://quarkus.io/blog/lts-releases/

Infrastructure

Red Hat partage les sources de sa distribution au travers de son Customer Portal, et impacte la communauté qui se base dessus https://almalinux.org/blog/impact-of-rhel-changes/

  • RedHat a annoncé un autre changement massif qui affecte tous les rebuilds et forks de Red Hat Enterprise Linux. À l’avenir, Red Hat publiera uniquement le code source pour les RHEL RPMs derrière leur portail client. Comme tous les clones de RHEL dépendent des sources publiées, cela perturbe encore une fois l’ensemble de l’écosystème Red Hat.

Une analyse du choix de red hat sur la distribution du code source de rhel https://dissociatedpress.net/2023/06/24/red-hat-and-the-clone-wars/

Une reponse de red hat aux feux démarrés par l’annonce de la non distribution des sources de RHEL en public https://www.redhat.com/en/blog/red-hats-commitment-open-source-response-gitcentosorg-changes et un lien vers une de ces feux d’une personne proheminente dans la communauté Ansible https://www.jeffgeerling.com/blog/2023/im-done-red-hat-enterprise-linux

Oracle demande a garder un Linux ouvert et gratuit https://www.oracle.com/news/announcement/blog/keep-linux-open-and-free-2023-07-10/

  • Suite à l’annonce d’IBM/RedHat, Oracle demande à garder Linux ouvert et gratuit
  • IBM ne veut pas publier le code de RHEL car elle doit payer ses ingénieurs
  • Alors que RedHat a pu maintenir son modèle économique durante des années
  • L’article revient sur CentOS qu’IBM “a tué” en 2020
  • Oracle continue ses éfforts de rendre Linux ouvert et libre
  • Oracle Linux continuera à être compatible avec RHEL jusqu’à la version 9.2, après ça sera compliqué de maintenir une comptabilité
  • Oracle embauche des dev Linux
  • Oracle demande à IBM de récupérer le downstream d’Oracle et de le distribuer

SUSE forke RHEL https://www.suse.com/news/SUSE-Preserves-Choice-in-Enterprise-Linux/

  • SUSE est la société derrière Rancher, NeuVector, et SUSE Linux Enterprise (SLE)
  • Annonce un fork de RHEL
  • $10M d’investissement dans le projet sur les prochaines années
  • Compatibilité assurée de RHEL et CentOS
Web

Google revent sont service de nom de domaine a Squarespace https://www.reddit.com/r/webdev/comments/14agag3/squarespace_acquires_google_domains/

  • et c’était pas gratuit donc on n’est pas censé etre le produit :wink:
  • Squarespace est une entreprise américaine spécialisée dans la création de site internet
  • Squarespace est un revendeur de Google Workspace depuis longtemps
  • La vente devrait se finaliser en Q3 2023

Petite introduction à WebGPU en français https://blog.octo.com/connaissez-vous-webgpu/

Data

Avec la mode des Large Language Models, on parle de plus en plus de bases de données vectorielles, pour stocker des “embeddings” (des vecteurs de nombre flottant représentant sémantiquement du texte, ou même des images). Un article explique que les Vecteurs sont le nouveau JSON dans les bases relationnelles comme PostgreSQL https://jkatz05.com/post/postgres/vectors-json-postgresql/

Outillage

Le sondage de StackOverflow 2023 https://survey.stackoverflow.co/2023/

  • L’enquête a été réalisée auprès de 90 000 développeurs dans 185 pays.
  • Les développeurs sont plus nombreux (+2%) que l’an dernier à travailler sur site (16% sur site, 41% remote, 42% hybrid)
  • Les développeurs sont également de plus en plus nombreux à utiliser des outils d’intelligence artificielle, avec 70 % d’entre eux déclarant les utiliser (44%) ou prévoyant de les utiliser (25) dans leur travail.
  • Les langages de programmation les plus populaires sont toujours JavaScript, Python et HTML/CSS.
  • Les frameworks web les plus populaires sont Node, React, JQuery.
  • Les bases de données les plus populaires sont PostgreSQL, MySQL, et SQLite.
  • Les systèmes d’exploitation les plus populaires sont Windows puis macOS et Linux.
  • Les IDE les plus populaires sont Visual Studio Code, Visual Studio et IDEA IntelliJ.

Les différents types de déplacement dans Vim https://www.barbarianmeetscoding.com/boost-your-coding-fu-with-vscode-and-vim/moving-blazingly-fast-with-the-core-vim-motions/

JetBrains se mets aussi à la mode des assistants IA dans l’IDE https://blog.jetbrains.com/idea/2023/06/ai-assistant-in-jetbrains-ides/

  • une intégration avec OpenAI mais aussi de plus petits LLMs spécifiques à JetBrains
  • un chat intégré pour discuter avec l’assistant, puis la possibilité d’intégrer les snippets de code là où se trouve le curseur
  • possibilité de sélectionner du code et de demander à l’assistant d’expliquer ce que ce bout de code fait, mais aussi de suggérer un refactoring, ou de régler les problèmes potentiels
  • on peut demander à générer la JavaDoc d’une méthode, d’une classe, etc, ou à suggérer un nom de méthode (en fonction de son contenu)
  • génération de message de commit
  • il faut avoir un compte JetBrains AI pour y avoir accès

Des commandes macOS plus ou moins connues https://saurabhs.org/advanced-macos-commands

  • caffeinate — pour garder le mac éveillé
  • pbcopy / pbpaste — pour interagir avec le clipboard
  • networkQuality — pour mesurer la rapidité de l’accès à internet
  • sips — pour manipuler / redimensionner des images
  • textutil — pour covertir des fichers word, texte, HTML
  • screencapture — pour faire un screenshot
  • say — pour donner une voix à vos commandes

Le sondage de la communauté ArgoCD https://blog.argoproj.io/cncf-argo-cd-rollouts-2023-user-survey-results-514aa21c21df

Un client d’API open-source et cross-platform pour GraphQL, REST, WebSockets, Server-sent events et gRPC https://github.com/Kong/insomnia

Architecture

Moderniser l’architecture avec la decouverte via le domain driven discovery https://www.infoq.com/articles/architecture-modernization-domain-driven-discovery/?utm_source=twitter&utm_medium=link&utm_campaign=calendar

  • Un article très détaillé pour moderniser son architecture en utilisant une approche Domain-Driven Discovery qui se fait en 5 étapes:
    • Encadrer le problème – Clarifier le problème que vous résolvez, les personnes touchées, les résultats souhaités et les contraintes de solution.
    • Analyser l’état actuel – Explorer les processus opérationnels et l’architecture des systèmes existants afin d’établir une base de référence pour l’amélioration.
    • Explorer l’état futur – Concevoir une architecture modernisée fondée sur des contextes délimités, établir des priorités stratégiques, évaluer les options et créer des solutions pour l’état futur.
    • Créer une feuille de route – Créer un plan pour moderniser l’architecture au fil du temps en fonction des flux de travail ou des résultats souhaités.

Récemment, Sfeir a lancé son blog de développement sur https://www.sfeir.dev/

  • plein d’articles techniques
  • sur de nombreux thèmes : front, back, cloud, data, AI/ML, mobile
  • aussi des tendances, des success stories
  • par exemple dans les derniers articles : on parle d’Alan Turing, du Local Storage en Javascript, des la préparation de certifications React, l’impact de la cybersécurité sur le cloud

Demis Hassabis annonce travailler sur une IA nommée Gemini qui dépassera ChatGPT https://www.wired.com/story/google-deepmind-demis-hassabis-chatgpt/

  • Demis Hassabis CEO de Google DeepMind créateur de AlphaGOet AlphaFold
  • Travaille sur une IA nommé Gemini qui dépasserait ChatGPT de OpenAI
  • Similair à GPT-4 mais avec des techniques issues de AlphaGO
  • Encore en developpement, va prendre encore plusieurs mois
  • Un remplaçant a Bard?
Méthodologies

Approcher l’agilité par les traumatismes (de developement) passés des individus https://www.infoq.com/articles/trauma-informed-agile/?utm_campaign=infoq_content&utm_source=twitter&utm_medium=feed&utm_term=culture-methods

  • Nous subissons tous un traumatisme du développement qui rend difficile la collaboration avec d’autres - une partie cruciale du travail dans le développement de logiciels agiles.
  • Diriger d’une manière tenant compte des traumatismes n’est pas pratiquer la psychothérapie non sollicitée, et ne justifie pas les comportements destructeurs sans les aborder.
  • Être plus sensible aux traumatismes dans votre leadership peut aider tout le monde à agir de façon plus mature et plus disponible sur le plan cognitif, surtout dans des situations émotionnellement difficiles.
  • Dans les milieux de travail tenant compte des traumatismes, les gens accordent plus d’attention à leur état physique et émotionnel.
  • Ils s’appuient aussi davantage sur le pouvoir de l’intention, fixent des objectifs d’une manière moins manipulatrice et sont capables d’être empathiques sans s’approprier les problèmes des autres.
Loi, société et organisation

Mercedes va rajouter de l’intelligence artificielle dans ses voitures https://azure.microsoft.com/en-us/blog/mercedes-benz-enhances-drivers-experience-with-azure-openai-service/

  • Programme béta test de 3 mois pour le moment
  • Assistance vocale “Hey Mercedes”
  • Permet de discuter avec la voiture pour trouver son chemin, concocter une recette, ou avoir tout simplement des discussions
  • Ils travaillent sur des plugin pour reserver un resto, acheter des tickets de cinéma

Free software vs Open Source dans le contexte de l’intelligence artificielle par Sacha Labourey https://medium.com/@sachalabourey/ai-free-software-is-essential-to-save-humanity-86b08c3d4777

  • on parle beaucoup d’AI et d’open source
  • mais il manque la dimension de controle des utilisateurs finaux
  • Stallman a crée la FSF par peur de la notion d’humain augmenté par des logiciels qui sont controllés par d’autres
  • (implants dans le cerveau etc)
  • d’ou la GPL et sa viralité qui propage la capacité a voir et modifier le conde que l’on fait tourner
  • dans le debat AI, ce n’est pas seulement open source (casser oligopolie) mais aissu le free software qui est en jeu

La folie du Cyber Resilience Act (CRA) europeen https://news.apache.org/foundation/entry/save-open-source-the-impending-tragedy-of-the-cyber-resilience-act

  • Au sein de l’UE, la loi sur la cyber-résilience (CRA) fait maintenant son chemin à travers les processus législatifs (et doit faire l’objet d’un vote clé le 19 juillet 2023). Cette loi s’appliquera à un large éventail de logiciels (et de matériel avec logiciel intégré) dans l’UE. L’intention de ce règlement est bonne (et sans doute attendue depuis longtemps) : rendre le logiciel beaucoup plus sûr.
  • Le CRA a une approche binaire: oui/non et considère tout le monde de la même manière
  • Le CRA réglementerait les projets à source ouverte à moins qu’ils n’aient « un modèle de développement entièrement décentralisé ». Mais les modèles OSS sont de complexes mélanges de pur OSS et éditeurs de logiciels
  • les entreprises commerciales et les projets open source devront être beaucoup plus prudents quant à ce que les participants peuvent travailler sur le code, quel financement ils prennent, et quels correctifs ils peuvent accepter.
  • Certaines des obligations sont pratiquement impossibles à respecter, par exemple l’obligation de « livrer un produit sans vulnérabilités exploitables connues ».
  • Le CRA exige la divulgation de vulnérabilités graves non corrigées et exploitées à l’ENISA (une institution de l’UE) dans un délai mesuré en heures, avant qu’elles ne soient corrigées. (complètement opposé aux bonnes pratiques de sécu)
  • Une fois de plus une bonne idée à l’origine mais très mal implémentée qui risque de faire beaucoup de dommages

Octave Klaba, avec Miro, son frère, et la Caisse des Dépôts, finalisent la création de Synfonium qui va maintenant racheter 100% de Qwant et 100% fe Shadow. Synfonium est détenue à 75% par Jezby Venture & Deep Code et à 25% par la CDC. https://twitter.com/i/web/status/1673555414938427392

  • L’un de rôles de Synfonium est de créer la masse critique des utilisateurs et des clients B2C & B2B qui vont pouvoir utiliser tous ces services gratuits et payants
  • Vous y retrouverez le moteur de recherche, les services gratuits, la suite collaborative, le social login, mais aussi les services de nos partenaires tech.
  • Le but est de créer une plateforme dans le Cloud SaaS EU qui respectent nos valeurs et nos lois européennes

Yann LeCun : «L’intelligence artificielle va amplifier l’intelligence humaine» https://www.europe1.fr/emissions/linterview-politique-dimitri-pavlenko/yann-lecun-li[…]gence-artificielle-va-amplifier-lintelligence-humaine-4189120

Conférences

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/