FOSDEM 2025 partie 3 : the state of Go
La FOSDEM est l'occasion de faire un point sur un langage, une technologie, une communauté. Go a été une track particulièrement active et populaire cette année. L'amphi pour la session The state of Go a été rempli en quelques minutes, soit plus de 600 personnes ! Le public présent était impatient d'en savoir plus... Maartje Eyskens nous a fait le point sur les principales évolutions depuis la version 1.22.Deux versions sont sorties : 1.23 en août 20241.24 en février 202525 versions majeures et mineureses de la branche 1.x sont sorties ! Le langage est rentré dans la phase de stabilité des API et de la librairie standard, une meilleure gestion des dépendances et les génériques qui s'étendent et se complètent. Deux changements importantes ont impacté le langage : l'amélioration des range et les génériques type alias. Ces derniers seront totalement supportés dans Go 1.24.La partie Go Tool évolue régulièrement. Ainsi, go vet propose de nouveaux avertissements, par exemple quand on utilise une fonction plus récente dans la librairie standard que la version présente dans go.mod. Go 1.23 a introduit la télémétrie avec go telemetry, même si le sujet n'est pas nouveau. Une partie de la communauté n'a pas forcément bien accueillie cette fonctionnalité à cause des risques de données partant vers des serveurs extérieurs et sans croire aux affirmations de Google. Go précise que par défaut, les données sont stockées localement. Une des craintes était une activation par défaut de la fonction et des données collectées partant à l'extérieur. Dans Visual Studio Code, il demande maintenant si on veut ou non envoyer anonymement les données aux équipes Go. Go Telemetry existe pour envoyer les rapports de crashs et de bugs aux équipes pour améliorer le langage et fixer les bugs. Sur la partie librairie standard, les dernières versions ont ajouté de nouveaux helpers dans les fonctions iter. Dans la partie cryptographie, 3DES a été retiré (provoquant une casse de code) mais gagne le support de Encrypted Client Hello et de Quantum Proof Key Exchanges ou encore le rejet de toute clé faisant moins de 1024 bits (en utilisant GenerateKey). Dans Go 1.24, parmi toutes les nouveautés, citons dans la stack net / tcp, la possibilité de faire du mutlipath TCP avec un simple flag. Côté portage, Go supporte et retire des OS / processeurs :1.23 : support expérimental OpenBSD / RISC-V 641.23 : nécessité du noyau Linux 2.6.32 minimum ! Ce kernel date de 2010...1.24 : retrait de Windows sur Arm 321.24 : Linux 3.2 minimum (sorti en 2012)1.25 : nécessité de MacOS 12 minimumAu-delà des version 1.23 et 1.24, quelle vision pour Go 2.0 et les évolutions au-delà de 2025 ? Une piste a été évoquée : - les régions mémoires : support expérimental dans le ramasse-miet. L'objectif de cette approche est de réduire les ressources utilisées par / dans le GC et donner un contrôle plus large de la mémoire aux développeursCatégorie actualité: LangagesGo, Google, FOSDEMImage actualité AMP:
![FOSDEM 2025 partie 3 : the state of Go](https://www.programmez.com/sites/default/files/styles/taille-maxi/public/fosdem5.jpg?itok=SNmF5YBy)
La FOSDEM est l'occasion de faire un point sur un langage, une technologie, une communauté. Go a été une track particulièrement active et populaire cette année. L'amphi pour la session The state of Go a été rempli en quelques minutes, soit plus de 600 personnes ! Le public présent était impatient d'en savoir plus... Maartje Eyskens nous a fait le point sur les principales évolutions depuis la version 1.22.
Deux versions sont sorties :
1.23 en août 2024
1.24 en février 2025
25 versions majeures et mineureses de la branche 1.x sont sorties ! Le langage est rentré dans la phase de stabilité des API et de la librairie standard, une meilleure gestion des dépendances et les génériques qui s'étendent et se complètent. Deux changements importantes ont impacté le langage : l'amélioration des range et les génériques type alias. Ces derniers seront totalement supportés dans Go 1.24.
La partie Go Tool évolue régulièrement. Ainsi, go vet propose de nouveaux avertissements, par exemple quand on utilise une fonction plus récente dans la librairie standard que la version présente dans go.mod. Go 1.23 a introduit la télémétrie avec go telemetry, même si le sujet n'est pas nouveau. Une partie de la communauté n'a pas forcément bien accueillie cette fonctionnalité à cause des risques de données partant vers des serveurs extérieurs et sans croire aux affirmations de Google. Go précise que par défaut, les données sont stockées localement. Une des craintes était une activation par défaut de la fonction et des données collectées partant à l'extérieur. Dans Visual Studio Code, il demande maintenant si on veut ou non envoyer anonymement les données aux équipes Go. Go Telemetry existe pour envoyer les rapports de crashs et de bugs aux équipes pour améliorer le langage et fixer les bugs.
Sur la partie librairie standard, les dernières versions ont ajouté de nouveaux helpers dans les fonctions iter. Dans la partie cryptographie, 3DES a été retiré (provoquant une casse de code) mais gagne le support de Encrypted Client Hello et de Quantum Proof Key Exchanges ou encore le rejet de toute clé faisant moins de 1024 bits (en utilisant GenerateKey). Dans Go 1.24, parmi toutes les nouveautés, citons dans la stack net / tcp, la possibilité de faire du mutlipath TCP avec un simple flag.
Côté portage, Go supporte et retire des OS / processeurs :
1.23 : support expérimental OpenBSD / RISC-V 64
1.23 : nécessité du noyau Linux 2.6.32 minimum ! Ce kernel date de 2010...
1.24 : retrait de Windows sur Arm 32
1.24 : Linux 3.2 minimum (sorti en 2012)
1.25 : nécessité de MacOS 12 minimum
Au-delà des version 1.23 et 1.24, quelle vision pour Go 2.0 et les évolutions au-delà de 2025 ? Une piste a été évoquée :
- les régions mémoires : support expérimental dans le ramasse-miet. L'objectif de cette approche est de réduire les ressources utilisées par / dans le GC et donner un contrôle plus large de la mémoire aux développeurs
![](https://www.programmez.com/sites/default/files/fosdem5.jpg)