FOSDEM 2026 : the state of Go, quoi de neuf dans Go ?
mer, 04/02/2026 - 19:57
Pour lancer la 2e journée, la session State of Go a démarré dès 9h. À l’édition 2025, c’était une session particulièrement attendue et il ne fallait pas être en retard pour espérer trouver une place. Cette année, malheureusement, la programmation de la track Go le dimanche matin n’a pas aidé l’audience. La salle était vide à 20 %. Espérons une meilleure exposition en 2027.

Maartje Eyskens fut l’animatrice de la session et n’est pas fan de l’IA. C’est la 12e année que Go a les honneurs de la FOSDEM. L’objectif de la session était d’évoquer en 30 minutes les principales nouveautés de Go depuis la version 1.24. La version 1.25 est sortie en août 2025 et la 1.26 le sera en février.
Tout d’abord, il y a () sur function extension. L’idée est que () peut déterminer la destination du type voulu et créer une nouvelle variable. Sur la partie outil, nous avons deux nouveaux analyseurs dans go vet : waitgroup et hostport. La commande Go doc peut maintenant démarrer une documentation serveur : go doc -http. Pour rappel, godoc avait été déprécié en 2019. Bah, finalement, il revient. Go tool permet de faire moins de pre-builds pour la release. Seul l’essentiel est intégré : le compilateur et le linker.
Cette amélioration en permet une autre : une réduction des binaires : Go 1.24 pesait 75 Mo sur Linux AMD64, en 1.25, on tombe à 57 Mo !
Go mod permet maintenant d’ignorer les directives. Et surtout, Go mod va mieux gérer les anciennes versions. L’équipe du langage veut mettre en avant la rétrocompatibilité et le support des versions n- x du langage !
Sur la partie librairie standard, plusieurs nouveautés et améliorations :
- synctest.Run permet de démarrer une goroutine dans une bubble
- synctest.Wait attend toutes les goroutines
- protection Cross-Site Request Forgery
- Parse rejette les URL avec des : mal formés
- relecture : nouvelles méthodes Type/Value.Fields, Type/Value.Methods, Type.Ins et Type.Outs
- des changements sur le chiffrement : SecP256r1MLKEM768 et SecP384r1MLKEM1024 par défaut, post-quantique, hybride clé publique chiffrée (HPKE)
Plusieurs fonctions expérimentales sont disponibles :
- simd/archsimd : une seule instruction pour de multiples données, type vecteurs 128, 256 et 512 bits
- runtimesecret (attention : prudence si vous l’utilisez)
- profile peut trouver les goroutines manquantes avec goroutineleak profile. Version finale attendue pour Go 1.27.
Un bug de compilation depuis la 1.21 permet de compiler et d’exécuter un code incorrect à cause d’un problème de délai sur la vérification d’un pointeur nil. Normalement, c’est désormais fixé.
L’autre focus des équipes Go est la performance et la réduction des binaires. Un des projets les plus importants est le projet Green Tea. Il s’agit d’un garbage collector en expérimentation : jusqu’à 40 % plus rapide. Sur le chiffrement, le langage améliore les performances crypto/sha1 et crypto/sha3. cgo a subi une sévère optimisation : les overheads des appels cgo sont réduits de 30 %. L’encodage et le décodage JPEG ont été entièrement réécrits. Go promet aussi une allocation mémoire plus rapide sur les petites allocations.
Sur les plateformes supportées, il y a du nouveau :
Go 1.25 nécessite au minimum macOS 12
Go 1.26 retire Windows ARM32 (attention à la casse en production)
Go 1.26 : ajout d’un race detector sur Linux RISC-V 64
Go 1.27 : macOS 13 minimum, retrait de PPC64 big endian
Quel futur pour Go ? Maartje Eyskens évoque plusieurs éléments :
- le plus important est jsonv2 qui est une refonte totale du parsing JSON. Le paquet JSON est un des plus utilisés mais il est plutôt mauvais et les équipes veulent coller aux spécifications JSON les plus récentes et proposer une implémentation moderne. Seuls json.Marshal() et Unmarshal() étaient correctement implémentés… Il n’y a pas d’UTF-8, accepte la publication des member names (c’est mal), trop de problèmes avec .Decode(), pas de JSON streaming sur les données trop grandes…
Attention : la version actuelle continuera à être présente et à fonctionner. L’équipe veut éviter les casses de code et l’obligation de tout réimplémenter.
Page de la session : https://fosdem.org/2026/schedule/event/T9HSYY-the-state-of-go/

