From 6ec0d96d43295fc701ec1d1f7f8cd84745f2d038 Mon Sep 17 00:00:00 2001 From: Pascal Le Merrer Date: Wed, 18 Feb 2026 13:49:19 +0100 Subject: [PATCH] Add newsletter #12 --- .DS_Store | Bin 0 -> 6148 bytes content/images/.DS_Store | Bin 6148 -> 6148 bytes content/images/craftletter-vertical.png | Bin 10482 -> 14290 bytes content/images/craftletter.zip | Bin 0 -> 42322 bytes content/images/craftletter/.DS_Store | Bin 0 -> 6148 bytes content/images/craftletter/favicon.png | Bin 0 -> 3281 bytes content/images/craftletter/favicon.svg | 85 ++++++++++++ content/images/craftletter/horizontal.png | Bin 0 -> 14462 bytes content/images/craftletter/horizontal.svg | 157 +++++++++++++++++++++ content/images/craftletter/vertical.svg | 160 ++++++++++++++++++++++ content/newsletter/craft-letter-12.md | 99 +++++++++++++ content/pages/index.md | 8 +- scripts/create_newsletter.py | 5 + template/index.md | 3 + template/newsletter.md | 2 +- 15 files changed, 516 insertions(+), 3 deletions(-) create mode 100644 .DS_Store create mode 100644 content/images/craftletter.zip create mode 100644 content/images/craftletter/.DS_Store create mode 100644 content/images/craftletter/favicon.png create mode 100644 content/images/craftletter/favicon.svg create mode 100644 content/images/craftletter/horizontal.png create mode 100644 content/images/craftletter/horizontal.svg create mode 100644 content/images/craftletter/vertical.svg create mode 100644 content/newsletter/craft-letter-12.md diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6 GIT binary patch literal 6148 zcmeH~Jr2S!425mzP>H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T0D|oD!NbAWwlVQL^JIPzMNuZ8A_X8$ R0Ai4x2Y{Giv!lpG>#G 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 diff --git a/content/images/craftletter.zip b/content/images/craftletter.zip new file mode 100644 index 0000000000000000000000000000000000000000..8cbce92a779fafb0efd7b564592e8cd8b5e1aeb8 GIT binary patch literal 42322 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

R4eh;@bwj#W?O?_zaB3I}g&QUK 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 literal 0 HcmV?d00001 diff --git a/content/images/craftletter/.DS_Store b/content/images/craftletter/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6 GIT binary patch literal 6148 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 + + + + + + + + + + + + + + + + + + + diff --git a/content/images/craftletter/horizontal.png b/content/images/craftletter/horizontal.png new file mode 100644 index 0000000000000000000000000000000000000000..6c5403b461d23d6eaffbf7c3b62734fde9909b0c GIT binary patch literal 14462 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%0AeK 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/content/images/craftletter/vertical.svg b/content/images/craftletter/vertical.svg new file mode 100644 index 0000000..4b05fd0 --- /dev/null +++ b/content/images/craftletter/vertical.svg @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/content/newsletter/craft-letter-12.md b/content/newsletter/craft-letter-12.md new file mode 100644 index 0000000..c364a75 --- /dev/null +++ b/content/newsletter/craft-letter-12.md @@ -0,0 +1,99 @@ +Title: Lettre n°12 — 23 février 2026 +Date: 2026-02-23 09:00 +Category: Newsletter +JsonLD: + + +## Edito + +La Craft Letter est récente, et je me pose encore des questions sur son format. Dois-je continuer à faire des résumés détaillés, comme ceux que contient ce numéro à propos de Zig vs C3, ou de la modernisation de code legacy ? Ou des textes d’introduction plus courts sont-ils préférables, comme celui sur AtomVM ? Je vous serais reconnaissant si vous preniez quelques secondes pour répondre à ce [sondage minimaliste](https://framaforms.org/sondage-craft-letter-1771415205)🇫🇷 (il n’y a qu’une question). Les réponses m’aideront à définir le format des prochaines Craft Letters. + +## Limiter les contributions open-source avec Vouch + +Mitchell Hashimoto est un développeur prolifique et talentueux. Fondateur de HashiCorp (la société derrière Terraform, Vagrant, Vault...), il est aussi le créateur de Ghostty, un émulateur de terminal que je vous recommande. Son nouveau projet, [Vouch](https://github.com/mitchellh/vouch)🇬🇧, est un outil pour la CI qui limite les contributions aux projets open source (Pull Requests et Issues) à certains comptes de confiance. Les contributeurs ne peuvent pas en certifier d’autres : seuls les mainteneurs le peuvent, ce qui garantit qu’ils conservent la main sur leur projet. Par contre, ils peuvent échanger leurs listes de contributeurs de confiance. +Sans surprise, le but est de limiter les contributions de basse qualité générées par IA, comme celles qui ont amené le projet [Curl à fermer son programme de bug bounty](https://intelligence-artificielle.developpez.com/actu/365686/Les-mainteneurs-de-logiciels-libres-sont-noyes-dans-des-rapports-de-bogues-inutiles-rediges-par-l-IA-Ces-systemes-ne-sont-pas-encore-capable-de-comprendre-le-code-estime-un-developpeur/)🇫🇷. + +## Sérialisation rapide en Python + +[MsgSpec](https://jcristharif.com/msgspec/)🇬🇧 est une librarie pour (dé)sérialisaliser et valider des données en Python, qu’elles soient au format JSON, YAML, TOML ou MessagePack. Elle utilise du C pour obtenir des performances élevées. + +## Qui, de Zig ou de C3, résout les problèmes du C ? + +Dans mes newsletters précédentes, je vous ai parlé de Zig et de C3, deux langages qui se veulent des successeurs du C. Les deux cherchent à en corriger des défauts, chacun à leur manière. + +[Cette vidéo](https://www.youtube.com/watch?v=y3tDZACGRAY)🇬🇧 de la chaîne Youtube The Techy Shop explique que ces langages présentent de nombreuses similarités, mais aussi certaines différences, que je peux résumer ainsi : + +* C3 est présenté comme une évolution incrémentale de C. Il y introduit de la simplicité, notamment dans la syntaxe et l’outillage. Il élimine une partie des pièges de son prédécesseur grâce à des fonctionnalités comme la gestion des erreurs à l’aide d’un type Option. +* Zig se veut une révolution, et est plus ambitieux —au prix d’une complexité plus grande que que celle de C3. La preuve en est le système de build, qui nécessite l’écriture d’un script en Zig, là où C3 utilise un simple fichier JSON. Mais aussi le compilateur, qui, en plus de LLVM, utilise un backend spécifique à Zig, qui réduit significativement les temps de compilation pour le mode debug et les architectures x86_64. + +Les deux sont compatibles avec C, mais C3 n’utilise pas les fichiers d’en-tête du C, ce qui implique de déclarer les fonctions C importées. Zig permet d’intégrer plus facilement du code C, tandis que C3 s’oriente plus vers la réécriture du C existant. Aucun des deux n’offre d’équivalent à l’instruction GOTO du C, ce qui implique un travail d’adaptation pour porter du code C, même s’il existe des moyens de simuler un GOTO. + +C3 s’appuie sur l’écosystème C, là où Zig voudrait le remplacer entièrement. + +Malgré leurs objectifs affichés, l’expérience de développement en Zig serait ironiquement plus proche de celle du C que celle de C3, car si elle offre plus de contrôle, elle requiert plus de rigueur en contrepartie. C3 minimise les surprises, au prix de fonctionnalités moins avancées. + +Les deux langages évoluent rapidement, ont chacun une communauté passionnée. C3 est toutefois plus récent et moins visible. Zig est plus populaire, et a déjà de belle références, comme Bun ou Ghostty. + +Au final Zig et C3 résolvent, de façon différente, les problèmes du C : la complexité de l’outillage, les multiples possibilités de se tirer une balle dans le pied. Les deux offrent des performances comparables à du C optimisé, et devraient jouer un rôle important dans la programmation système à l’avenir. + +Pour en savoir plus sur C3, cette [courte vidéo](https://www.youtube.com/watch?v=yJClpzNxs3s)🇬🇧 explique les différences par rapport à C. Et pour essayer le langage simplement, il y a [un tutoriel](https://learn-c3.org/)🇬🇧 en ligne. +## Adopter Kotlin dans un environnement dominé par Java + +Kotlin possède de [nombreux avantages par rapport à Java](https://kotlinlang.org/docs/comparison-to-java.html)🇬🇧. Pour n’en citer que quelques-un, + +* le code est beaucoup plus concis tout en étant expressif, +* la sécurité est meilleure grâce au contrôle des valeurs nulles par le système de types, +* il n’y a pas de conversions implicites, +* les types primitifs de Java sont des objets en Kotlin, +* la gestion de la concurrence utilise des coroutines (plus légères que les threads), + +Le tout avec des performances équivalentes. + +Quand je parle de concision de Kotlin, je repense toujours à des collègues qui ont réécrit une application mobile Java de 33 000 lignes. La version Kotlin en faisait seulement 17 000. C’est possible notamment parce que le code boilerplate inhérent à Java n’existe pas en Kotlin. + +La migration de Java vers Kotlin peut être tout à fait progressive, puisqu’une application Kotlin peut contenir du code Java, et que l’interopérabilité entre les deux langages est excellente. Cette [démonstration](https://www.youtube.com/watch?v=WXVeHvOvSww)🇫🇷 de migration reste intéressante même si elle date un peu, car elle est basée sur un retour d’expérience. Elle montre la simplicité relative d’une migration, grâce à l’outillage fourni par JetBrains. + +Jetbrains propose [un guide de migration](https://blog.jetbrains.com/kotlin/2025/12/the-ultimate-guide-to-successfully-adopting-kotlin-in-a-java-dominated-environment/)🇬🇧, qui, outre des conseils techniques, fournit des recommandations sur la stratégie à adopter, notamment pour convaincre vos pairs et managers. +## Java : le Valhalla est enfin là ! + +Près de douze ans après son lancement, [le projet Valhalla est arrivé dans Java 23](https://javaworldmag.com/project-valhalla-value-types-in-production/)🇬🇧, en preview pour l’instant. + +En Java, tous les objets sont représentés par des zones mémoires allouées sur le tas (*heap*), avec un en-tête, et nécessitent qu’on y accède via un pointeur —c’est masqué, mais ce n’est pas sans impact sur les performances. Et ce, même si ces objets ne servent qu’à encapsuler une ou plusieurs valeurs, comme les coordonnées x et y d’un point. Le projet Valhalla résout ce problème. + +Il change aussi la façon dont ces données sont stockées dans les collections génériques : au lieu de contenir des pointeurs, elles contiennent directement les valeurs, contiguës en mémoire. + +Ces changements améliorent drastiquement les performances, réduisent la fragmentation et la consommation mémoire, ainsi que la fréquence des déclenchements du ramasse-miette. Toutefois, ils ne sont pas applicables à toutes les structures de données. + +## Moderniser un legacy conséquent sans y perdre ses plumes - Partie II + +Dans la première partie, que j’ai résumée dans la lettre précédente, Bruno Boucart expliquait la première phase pour réussir la modernisation d’une grosse application legacy. Elle consiste à en comprendre le métier, le cartographier, puis aligner l’organisation des équipes et l’architecture sur ce découpage. Dans cette [seconde partie](https://blog.octo.com/apprivoiser-un-legacy-consequent-sans-y-perdre-ses-plumes-partie-ii)🇫🇷, il évoque la transformation du code qui doit suivre. + +Après l’identification de contextes bornés (*bounded contexts*) au cours d’ateliers d’Event Storming, il explique comment remplir pour chacun un [Bounded Context Canvas](https://github.com/ddd-crew/bounded-context-canvas)🇬🇧. Il s’agit d’un outil de modélisation qui va permettre d’affiner la définition du contexte, et de faire émerger le langage ubiquitaire —le vocabulaire partagé entre les équipes métier et techniques, qui est l’un des concepts les plus importants du Domain Driven Design (DDD). + +Rappel : un contexte borné est une notion du DDD, qui désigne un sous-ensemble de la solution technique. + +Bruno rappelle ensuite une série de *design patterns* que l’on peut utiliser pour casser les dépendances entre des parties du code. C’est en effet une étape préliminaire indispensable à l’écriture des tests qui vont permettre d’envisager sereinement des modifications plus importantes. + +La réorganisation du code, selon les contextes bornés identifiés précédemment, n’est pas suffisante : elle doit s’accompagner d’une réorganisation de la base de données, de façon à casser là aussi les dépendances entre les parties du système. + +Le code refactoré doit refléter fortement le métier : c’est ce qu’on appelle le *deep modeling.* Cela facilite la collaboration entre experts métiers et techniques, mais assure aussi la durabilité du nouveau code, qui tolérera mieux les évolutions futures du métier. L’une des clés pour cela est l’utilisation du langage ubiquitaire pour nommer les fonctions, les classes, les variables, etc. +Le contour des classes doit correspondre à celui des concepts métier qu’elles représente. + +L’activité qui mène à cette modélisation proche du métier porte le nom de Conception Souple (Supple Design) en DDD, et possède ses propres *design patterns*. + +Pour améliorer la lisibilité, la testabilité et l’évolutivité, le code métier doit être isolé du code technique (accès à la base de données, appels à des APIs…) et de celui des interfaces utilisateurs. C’est le principe de l’architecture hexagonale (également appelée Ports et adaptateurs). + + +## AtomVM : Erlang, Elixir ou Gleam sur un microcontrôleur + +[Davide Bettio présente AtomVM](https://fosdem.org/2026/schedule/event/YP97YR-atomvm_elixir_erlang_and_gleam_on_microcontrollers/)🇬🇧, une machine virtuelle capable d’exécuter des projets écrits en Erlang, Elixir ou Gleam sur un microcontrôleur comme un ESP32, un Raspberry PI Pico ou un ESP32. Il en explique aussi l’intérêt : tolérance aux erreurs, gestion de la mémoire, de l’asynchronisme, des valeurs binaires... + +## Principe de responsabilité unique en programmation fonctionnelle + +Christian Ekrem montre comment le Principe de Responsabilité Unique (le S de SOLID, *Single Responsibility Principle*) s’applique de façon naturelle dans certains langages fonctionnels. En n’autorisant que l’écriture de fonctions pures, [Elm interdit des antipatterns](https://cekrem.github.io/posts/solid-in-fp-single-responsibility/)🇬🇧 que l’on peut implémenter en TypeScript. + +----- + +Voilà, c’est tout pour cette semaine. + +Avant de vaquer à d’autres activités, pensez à remplir le [sondage](https://framaforms.org/sondage-craft-letter-1771415205)🇫🇷 si ce n’est pas encore fait ! diff --git a/content/pages/index.md b/content/pages/index.md index 9d1380c..4060fdd 100644 --- a/content/pages/index.md +++ b/content/pages/index.md @@ -1,12 +1,15 @@ Title: Accueil -Date: 2026-02-16 09:00 +Date: 2026-02-23 09:00 URL: save_as: index.html Category: Home -JsonLD: { "@context": "https://schema.org", "@type": "WebPage", "name": "Accueil", "description": "Lettre de veille technologique en développement logiciel", "image": [ "https://www.craftletter.fr/images/craftletter.svg" ], "datePublished": "Mon Feb 16 2026 09:00:00 GMT+0200 (Coordinated Universal Time)", "author": { "@type": "Person", "name": "Pascal Le Merrer", "url": "https://www.linkedin.com/in/pascal-le-merrer/" } } +JsonLD: { "@context": "https://schema.org", "@type": "WebPage", "name": "Accueil", "description": "Lettre de veille technologique en développement logiciel", "image": [ "https://www.craftletter.fr/images/craftletter.svg" ], "datePublished": "Mon Feb 23 2026 09:00:00 GMT+0200 (Coordinated Universal Time)", "author": { "@type": "Person", "name": "Pascal Le Merrer", "url": "https://www.linkedin.com/in/pascal-le-merrer/" } } + +# La [lettre n°12]({filename}/newsletter/craft-letter-12.md) est parue ! + La Craft Letter est une newsletter hebdomadaire dans laquelle je partage des articles issues de ma veille technologique. Vous y trouverez des articles relatifs au développement logiciel d'une façon générale, qu'il soit front-end, back-end ou autre. Mais aussi des articles consacrés à l'architecture logicielle, la méthodologie, les outils, des projets open source, des conférences... @@ -34,6 +37,7 @@ Pour savoir qui je suis, ou pourquoi j'écris cette lettre, je vous invite à vo # Archives +* [Lettre n°12]({filename}/newsletter/craft-letter-12.md) * [Lettre n°11]({filename}/newsletter/craft-letter-11.md) * [Lettre n°10]({filename}/newsletter/craft-letter-10.md) * [Lettre n°9]({filename}/newsletter/craft-letter-9.md) diff --git a/scripts/create_newsletter.py b/scripts/create_newsletter.py index 9a8202c..ffc7369 100644 --- a/scripts/create_newsletter.py +++ b/scripts/create_newsletter.py @@ -63,6 +63,11 @@ new_content = set_publication_date_for_pelican(content, next_monday) new_content = set_publication_date_for_seo(new_content, next_monday) +link = ( + f"[lettre n°{args.number}]({{filename}}/newsletter/craft-letter-{args.number}.md)" +) +new_content = new_content.replace("{LINK}", link) + for i in reversed(range(args.number)): link = f"* [Lettre n°{i + 1}]({{filename}}/newsletter/craft-letter-{i + 1}.md)\n" new_content += link diff --git a/template/index.md b/template/index.md index 5953e07..52c6181 100644 --- a/template/index.md +++ b/template/index.md @@ -7,6 +7,9 @@ JsonLD: { "@context": "https://schema.org", "@type": "WebPage", "name": "Accueil + +# La {LINK} est parue ! + La Craft Letter est une newsletter hebdomadaire dans laquelle je partage des articles issues de ma veille technologique. Vous y trouverez des articles relatifs au développement logiciel d'une façon générale, qu'il soit front-end, back-end ou autre. Mais aussi des articles consacrés à l'architecture logicielle, la méthodologie, les outils, des projets open source, des conférences... diff --git a/template/newsletter.md b/template/newsletter.md index 6ea09ad..e1e9b5e 100644 --- a/template/newsletter.md +++ b/template/newsletter.md @@ -1,4 +1,4 @@ -Title: Lettre n°{LETTER_NUMBER} - {DATE} +Title: Lettre n°{LETTER_NUMBER} — {DATE} Date: {DATE_DIGITS} 09:00 Category: Newsletter JsonLD: