- La simplicité du langage Go et ses caractéristiques de compilation améliorent la fiabilité du code généré par les agents IA ainsi que son efficacité d’exécution
- Grâce au typage statique et à la rapidité de compilation, les agents peuvent valider rapidement les erreurs de code et itérer efficacement
- Les outils standardisés au niveau du langage (
gofmt, tests, build) favorisent une génération de code cohérente par les agents
- La compilation de binaires multiplateformes est prise en charge nativement, ce qui permet aux agents en arrière-plan de vérifier et d’exécuter le même code de façon distribuée sur différents OS
- Grâce à ces caractéristiques, Go est considéré comme un langage équilibré entre productivité, simplicité et performance, et s’impose comme un choix de plus en plus pertinent pour le développement fondé sur des agents IA
Les avantages de Go en tant que langage compilé
- Les agents génèrent de grandes quantités de code, dont une grande partie se contente d’« avoir l’air plausible » ; la question essentielle est donc de vérifier si ce code fonctionne réellement
- Avec un langage compilé, un système de typage fort et statique permet d’éliminer dès la compilation certaines catégories de bugs, comme les erreurs de type ou les mauvais arguments
- Si la compilation réussit, on obtient la garantie que le code est syntaxiquement correct dans le cadre du standard du langage
- Pourquoi Go est mieux adapté aux agents que Rust :
- La syntaxe et les concepts de Go sont plus simples que ceux de Rust
- Le système de types de Go est moins sophistiqué que celui de Rust, ce qui rend le code généré plus proche des usages idiomatiques et plus facile à comprendre pour les humains
- La compilation de Go est plus rapide que celle de Rust, ce qui raccourcit la boucle de feedback des agents
- Davantage de code Go est présent dans les données d’entraînement que de code Rust, ce qui permet aux modèles de produire un meilleur code Go
La simplicité de Go
- Quiconque connaît déjà un langage de programmation peut lire du code Go et en comprendre immédiatement le comportement tant le langage lui-même est simple
- Même si les agents génèrent de grandes quantités de code Go, les développeurs n’ont pas trop de mal à suivre
- Quand un agent prend parfois des décisions de conception étranges et continue dans cette direction, la simplicité du langage permet de comprendre facilement où il va
- D’ici 12 mois, il est possible qu’on lise moins souvent le code soi-même, ce qui pourrait réduire l’importance de la lisibilité et de la simplicité ; mais garder la possibilité de vérifier le code directement reste précieux si nécessaire
L’approche standardisée de Go
- Go est un langage opinionated, avec des règles et outils clairs ; il existe des façons standard d’exécuter les tests, de formater le code et de construire des binaires
- La gestion des erreurs peut diviser les avis, mais elle fournit un modèle établi qui encourage l’écriture d’un code idiomatique, pratique pour le travail collaboratif entre plusieurs personnes et agents
- Par contraste avec JavaScript : chaque projet JS utilise des outils différents, et les avis divergent sur le formatage, la publication de packages ou l’import de bibliothèques, ce qui est inefficace pour les agents
- Grâce à la standardisation de Go, les modèles peuvent générer de façon cohérente du code Go idiomatique à partir des données d’entraînement
- Si on demande à un agent de formater du code JS, il essaiera d’installer et configurer un nouvel outil ; avec Go, il suffit d’exécuter
gofmt
- L’écriture de tests unitaires et la compilation de binaires sont standardisées de la même manière
La compilation de binaires multiplateformes
- Dans Go, le support multiplateforme est un citoyen de première classe, ce qui est particulièrement avantageux pour les logiciels, comme les outils CLI, dont on ne contrôle pas l’environnement d’exécution
- Il est possible d’exécuter les tests unitaires et d’intégration avec la même commande sur plusieurs environnements pour vérifier qu’aucune fonctionnalité existante n’a été cassée
- Cet avantage est encore plus fort avec les agents en arrière-plan :
- La tendance est de se détacher progressivement du contrôle direct sur les environnements de build et d’exécution du code, qu’il s’agisse de déclencher Cursor depuis un message Slack ou de transférer à distance une session locale
- Le code Go produit les mêmes binaires sur Linux, Windows et macOS, et l’ensemble du processus de travail est standardisé d’un environnement à l’autre, ce qui évite de se soucier du support des dépendances de développement chez les fournisseurs de sandbox
Qualité de génération du code Go par les agents
- Début 2026, le taux de génération de code Go valide du premier coup est d’environ 95 % (estimation fondée sur une expérience personnelle, pas sur des données officielles)
- L’usage d’agents avec Go semble poser moins de difficultés qu’avec Python
- Les modèles ont suffisamment appris les bibliothèques, patterns et bonnes pratiques de Go pour que, avec une bonne direction, l’implémentation des fonctionnalités devienne presque fluide
- Le volume total de données d’entraînement sur Go est peut-être inférieur à celui de Python, mais Python propose 20 façons différentes d’accomplir une même tâche ; rapporté à une bibliothèque donnée, Go bénéficie donc d’une densité d’apprentissage plus élevée
- Cet avantage pourrait disparaître avec le temps, à mesure que les performances des modèles progressent et que les données d’entraînement augmentent
Pourquoi le projet Bruin a choisi Go
- Bruin est un outil ETL open source, principalement écrit en Go sous la forme d’un outil CLI
- Même si Python domine dans l’écosystème data, les principales contraintes qui ont conduit au choix de Go étaient :
- En tant qu’outil d’orchestration de données, la gestion de la concurrence est essentielle
- Il faut un écosystème suffisamment riche pour interagir avec de nombreux systèmes, qu’il s’agisse du runtime du langage, de plateformes de données ou d’API externes
- En tant qu’outil CLI, il faut des performances suffisantes pour servir aussi de base à une extension VS Code ou à un backend d’interface locale
- Il faut une gestion des erreurs prévisible pour intégrer de nombreux systèmes différents
- Comme l’outil s’exécute sur les machines des utilisateurs, il doit être facile de prendre en charge de multiples OS et architectures
- Sur un plan plus subjectif, le langage devait aussi être agréable à utiliser pour les principaux contributeurs ; dans une petite équipe, le plaisir et l’énergie sont les ressources les plus rares
- Malgré l’inconvénient d’un manque de certaines bibliothèques data par rapport à Python, le choix s’est imposé par intuition : les avantages de Go en matière de vitesse et d’expérience développeur (DX) apporteraient davantage de valeur à long terme
Conclusion : Go à l’ère des agents
- Les langages de programmation entrent dans une époque où les humains n’écrivent plus directement le code
- Il faut désormais des systèmes capables d’aider les agents à écrire du code efficacement
- Go offre, grâce à son équilibre entre ergonomie, performance et universalité, un environnement idéal pour que des agents IA écrivent et exécutent du code
- Les agents peuvent générer automatiquement en Go des logiciels performants pouvant être compilés, testés, formatés et déployés sur diverses machines
- Il reste incertain que Go devienne le langage ultime pour les agents, ou qu’un langage plus adapté émerge,
mais l’équipe obtient déjà des résultats très satisfaisants en matière de productivité et de qualité logicielle
Aucun commentaire pour le moment.