Principales annonces de la conférence sur Go (Golang)
Fin 2024 a eu lieu la conférence annuelle GopherCon — l'un des événements clés pour tous les développeurs Go. L'équipe de développement du langage et les leaders de la communauté ont présenté une série d'annonces importantes qui façonneront l'évolution de Golang en 2025. Dans cet article, nous avons rassemblé les innovations les plus marquantes, déjà disponibles dans Go 1.23 et attendues dans Go 1.24.
Itérateurs et package iter : un nouveau paradigme de traitement des données
L'une des annonces les plus attendues a été la stabilisation du package iter dans la bibliothèque standard. Go prend désormais en charge les itérateurs en tant que concept de première classe. Cela signifie :
- Travail pratique avec les collections : il est désormais possible d'utiliser range avec des types personnalisés, et pas seulement avec des slices et des maps.
- Calculs paresseux : les itérateurs permettent de traiter de grands ensembles de données sans tout charger en mémoire.
- Code propre : les fonctions intégrées dans les packages slices, maps et sort acceptent désormais les itérateurs, simplifiant le filtrage et la transformation.
Les développeurs ont noté qu'il s'agit d'un pas vers un style de programmation plus fonctionnel sans perte de performance.
Ramasse-miettes amélioré : moins de pauses, plus de contrôle
L'équipe Go a annoncé des progrès significatifs dans le ramasse-miettes. Dans Go 1.23 et 1.24, les améliorations suivantes ont été mises en œuvre :
- Réduction du temps Stop-The-World (STW) : les pauses lors du ramasse-miettes ont été réduites de 30 à 50 % pour la plupart des services en temps réel.
- Nouvel Allocation Profiler : il est désormais possible de visualiser la charge mémoire en temps réel via pprof.
- Adaptation automatique : le GC choisit désormais lui-même la fréquence de collecte en fonction de la mémoire disponible, ce qui réduit le nombre d'erreurs out-of-memory.
Ces changements sont particulièrement importants pour les microservices et les systèmes à forte charge.
Télémétrie : outil officiel de collecte de métriques
La grande surprise de la conférence a été l'annonce d'un système de télémétrie intégré. Go inclut désormais un outil officiel de collecte de métriques anonymes sur l'utilisation du langage. Points clés :
- Optionnalité : la télémétrie est désactivée par défaut. Les développeurs décident eux-mêmes d'envoyer ou non les données.
- Transparence : toutes les données collectées sont uniquement les noms de fonctions et les versions du compilateur, sans code source.
- Avantage pour la communauté : les données collectées aideront l'équipe Go à trouver plus rapidement les bugs et à optimiser les scénarios populaires.
L'initiative a suscité des débats animés, mais la majorité des participants l'ont soutenue sous réserve d'une stricte confidentialité.
Polymorphisme et génériques : extension des possibilités
Dans Go 1.24, une extension du support des génériques est attendue. De nouvelles fonctionnalités ont été annoncées :
- Types enveloppes avec méthodes : il est désormais possible de définir des structures génériques avec des méthodes, rapprochant Go du niveau d'abstraction de Rust et C++.
- Simplification du travail avec errors : le nouveau package errors/support permettra de créer facilement des chaînes d'erreurs avec des génériques.
Ces changements rendent Go plus attractif pour l'écriture de bibliothèques et de frameworks complexes.