Burak Karakan est cofondateur de Bruin, un outil ETL CLI open source écrit en Go. Ayant travaillé professionnellement avec PHP, Go, JavaScript et Python pendant plus de dix ans, il a choisi Go pour Bruin notamment parce qu'il y prenait du plaisir. Ce choix, fait avant l'ère des agents IA, s'est révélé être une bonne intuition. Les agents génèrent d'énormes quantités de code qui semble correct, mais dont la validité réelle est difficile à garantir. Burak Karakan rapporte qu'utiliser un langage compilé à typage statique comme Go permet aux agents d'itérer jusqu'à obtenir du code exempt d'une certaine catégorie de bogues avant même l'exécution. Go (également appelé Golang) est un langage de programmation open source, statiquement typé et compilé, conçu chez Google par Robert Griesemer, Rob Pike et Ken Thompson. Le langage a été créé pour répondre aux défis actuels du développement logiciel, tels que les bases de code volumineuses, les temps de compilation lents, ainsi que le besoin d'une concurrence efficace à l'ère des processeurs (CPU) multicœurs et des systèmes en réseau.
Alors que nous sommes à l'aube de la transformation du développement logiciel par les agents IA, la communauté se pose la question de savoir quel est le meilleur pour cette révolution. Selon certains développeurs, comme Burak Karakan, Go se distingue particulièrement pour dominer l'ère des agents IA.
Un agent est un système autonome capable de raisonner, de planifier et d'exécuter des tâches avec une intervention humaine minimale. Son fonctionnement repose sur une boucle décisionnelle (raisonnement → action → observation) répétée jusqu’à atteindre l’objectif ou une limite de ressources. Cette architecture permet notamment aux agents de décomposer un problème en étapes successives et d’ajuster leur stratégie en fonction des résultats obtenus.
Le classement de février 2025 de l'index mensuel de popularité des langages de programmation TIOBE a révélé que les langages de programmation rapides sont de plus en plus populaires. L'index TIOBE a révélé que les langages rapides tels que C++, Go et Rust gagnent du terrain grâce à l'IA et le traitement de données. Ces langages sont essentiels pour les tâches à forte intensité de données, l'IA et les besoins de performance étant à l'origine de cette évolution.
Pourquoi le langage Go est-il adapté aux systèmes d’agents IA ?
L’auteur soutient que le langage Go possède des propriétés particulièrement adaptées au développement d’agents IA. Face à Rust, Burak Karakan donne l'avantage à Go pour quatre raisons : la syntaxe de Go est plus simple ; son système de types moins sophistiqué favorise un style idiomatique partagé ; sa compilation est plus rapide, ce qui accélère la boucle de feedback ; et il existe davantage de code Go dans les données d'entraînement des modèles.
Un agent IA n’est pas qu'une simple fonction qui transforme une entrée en sortie. Il s’agit plutôt d’une entité persistante disposant d’un objectif, d’une mémoire et de la capacité d’exécuter des actions dans le temps. Pour Burak Karakan, Go est bien adapté à ce cas d'utilisation. Voici les caractéristiques qu'il cite :
Go est un langage compilé
Go est un langage à typage statique et fort, ce qui signifie que les erreurs de types ou d'arguments sont détectées avant l'exécution. Pour les agents IA qui produisent de grandes quantités de code, Burak Karakan a déclaré qu'il s'agit d'un filet de sécurité précieux : le code qui compile est garanti d'être syntaxiquement correct selon les standards du langage, un choix qui élimine une catégorie entière de bogues avant même que le programme ne tourne.
Go est simple
Go est conçu pour être immédiatement lisible par quiconque a une expérience dans un autre langage de programmation. Le développeur de logiciels affirme que cette simplicité est doublement utile dans le contexte actuel des agents IA : d'un côté, l'agent génère du code prévisible et compréhensible ; de l'autre, le développeur humain peut rapidement détecter quand l'agent part dans une mauvaise direction ou prend des décisions de conception étranges.
Go a une façon de faire les choses
Go impose une manière standard de formater le code, d'écrire les tests, de gérer les erreurs et de compiler les binaires. Contrairement à JavaScript où chaque projet impose ses propres outils et conventions, un projet Go ressemble à tous les autres projets Go. Les agents bénéficient directement de cette uniformité : ils savent exactement quelle commande lancer pour chaque tâche, sans avoir à s'adapter à des configurations spécifiques à chaque projet.
Go compile rapidement
Burak Karakan soutient que Go compile nettement plus vite que Rust, ce qui crée une boucle de feedback plus rapide pour les agents IA. Quand un agent génère du code, le teste, détecte une erreur et corrige, la vitesse de compilation détermine directement la vitesse d'itération. Un cycle court signifie plus d'itérations par unité de temps, et donc un résultat final obtenu plus vite. Il faut souligner que certains développeurs Rust ne partagent pas cet avis.
Go supporte nativement le multiplateforme
La compilation multiplateforme constitue l'un des fondamentaux de Go : le même code produit des binaires identiques et fonctionnels sur Linux, Windows et macOS, sans friction ni dépendances spécifiques à chaque système d'exploitation. Pour des agents qui tournent dans des environnements variés (sandboxes distantes, pipelines CI...) cela garantit que les tests et les binaires fonctionnent partout de façon identique, sans configuration supplémentaire.
Go dispose d'un riche écosystème
Go bénéficie d'un écosystème solide permettant d'interagir avec de nombreux systèmes externes : runtimes, d'API ou d'autres services. Pour un agent qui doit orchestrer des outils, appeler des API ou gérer des bibliothèques tierces, l'auteur estime que la richesse de l'écosystème est un prérequis fondamental.
Les modèles connaissent bien Go
Burak Karakan affirme que début 2026, les agents produisent du Go valide du premier coup dans environ 95 % des cas. Il attribue cela non pas au volume brut de données d'entraînement, mais à l'uniformité du code Go : il n'existe généralement qu'une seule façon idiomatique de résoudre un problème, là où Python en offre une vingtaine. Cette cohérence dans le corpus d'entraînement rend les prédictions du modèle de langage plus fiables et plus stables.
D'autres développeurs partageant l'avis de Burak Karakan ont souligné la manière dont Go gère nativement la concurrence. Les agents IA exécutent souvent plusieurs opérations simultanément : appels à des modèles de langage, exécution d’outils, surveillance de tâches longues ou coordination avec d’autres agents. Selon ces derniers, les goroutines et les channels de Go permettent de gérer facilement ces opérations parallèles sans complexité excessive.
La thèse Go tient-elle vraiment ? Les avis d'autres développeurs
Les partisans de Go reconnaissent volontiers ses atouts : un cycle de compilation court, une seule façon idiomatique de faire les choses, une gestion native de la concurrence, etc. Cependant, dans les fils de discussion en ligne, plusieurs développeurs ont immédiatement pointé les limites de cette vision. Burak Karakan n'a travaillé professionnellement qu'avec PHP, Go, JavaScript et Python, ce qui est un périmètre restreint pour proclamer Go "le meilleur".
Et Burak Karakan lui-même reconnaît dans son article n'avoir aucune donnée pour étayer ses affirmations, qualifiant ses conclusions de "vibes". « Je n'ai toutefois aucune preuve pour étayer mes affirmations ; considérez donc cela plutôt comme une intuition », explique le développeur de logiciels.
Rust : le rival sérieux
Le contre-argument le plus solide vient des développeurs Rust. Le système de types de Rust serait si strict que le code généré compile presque toujours et tourne sans erreur à l'exécution ; là où Python et JavaScript plantent fréquemment en cours de route. Un utilisateur souligne un détail rarement mentionné : les tests unitaires en Rust sont dans le même fichier que le code source, ce qui fait que les agents IA n'oublient jamais de les mettre à jour.
Un autre ajoute que les messages d'erreur de Rust sont parmi « les meilleurs de l'industrie », précisément le genre de feedback structuré dont un modèle a besoin pour itérer efficacement. La contrepartie ? Rust compile plus lentement, est plus verbeux, et les modèles ont moins de données d'entraînement dans ce langage. À l'avenir, les modèles pourraient toutefois ajouter plus de données d'entraînement comportant des bases de codes en...
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.