La programmation est en constante évolution et le domaine voit régulièrement émerger de nouveaux langages. En offrant des fonctionnalités optimisées, le langage Go parfois appelé « Golang », séduit énormément de développeurs.
Le langage GO a pris naissance en 2007 au sein de Google, d’une façon originale. Le géant californien faisait face à des défis de développement de taille, mais rencontrait un problème : aucun des langages de programmation existants ne convenait réellement aux problématiques maison en termes de performances, de productivité et facilité de maintenance.
Trois ingénieurs maison, Ken Thompson, Rob Pike et Robert Griesemer ont réservé une salle afin d’en discuter et du fruit de leurs échanges, il est apparu que l’idéal serait d’élaborer un nouveau langage, inspiré du C. Ils souhaitaient qu’il soit d’un usage facile, qu’il engendre une exécution efficace, qu’il puisse faire l’objet d’une compilation ultra rapide mais aussi qu’il soit adapté aux systèmes multi cœurs, aux exigences du cloud computing et du big data.
Deux années de développement ont suivi. Go a finalement été annoncé en novembre 2009 et une première release stable a été placée sur Internet en mars 2012. Google a choisi d’en faire un projet open source, afin que la communauté des développeurs puisse participer à son amélioration continue.
Les principes du Go
La raison pour laquelle Go a réussi à se démarquer vient de ce que ses concepteurs ont posé plusieurs principes clés.
Simplicité
Go est un langage aisé à aborder. Sa syntaxe concise et claire facilite l’écriture et la maintenance du code. Ses concepteurs ont veillé à limiter le nombre de mots-clés et à définir des règles de formatage uniformes. La documentation officielle est de qualité, ce qui facilite la découverte du langage. Les développeurs peuvent ainsi se concentrer sur la résolution de problèmes plutôt que sur les arcanes du langage Go.
Une exécution rapide
La compilation est quasi instantanée et de plus, le compilateur Go produit un exécutable rapide, approprié à des applications de haute performance. Autre atout, la compilation Go génère un seul fichier qui intègre l’ensemble de l’application et peut être exploité tel quel. Les déploiements sont donc simplifiés.
Concurrence
La prise en charge native du multitâche aide à élaborer des programmes impliquant l’exécution de plusieurs tâches en parallèle sur des processeurs multi cœurs.
Gestion automatique de la mémoire
Go gère un « garbage collector » (vidage automatique des éléments qui ne sont plus nécessaires) qui simplifie l’optimisation de la mémoire.
Portabilité
Un programme écrit en Go peut être compilé et exécuté sur divers environnements sans modification du code source.
Un écosystème Open Source
Le caractère open source de Go a engendré l’apparition d’une multitude de bibliothèques et de frameworks (composants logiciels réutilisables) tels que Gin, Echo et Revel pour le développement web, et gRPC, une technologie qui permet à différentes applications de communiquer entre elles. En matière de data science, sont apparus des outils comme Gonum pour le calcul numérique ou Gorgonia pour le deep learning.
Quels usages pour le langage Go ?
Go s’est imposé dans de nombreux domaines.
Développement web backend
De plus en plus d’entreprises, comme Uber et SoundCloud, s’appuient sur Go pour construire leurs systèmes backend. Il se trouve que Go excelle dans la construction de microservices, des architectures de plus en plus populaires pour leur flexibilité et leur évolutivité.
Infrastructure
Go est omniprésent dans le paysage DevOps. Des outils comme Terraform, Prometheus et Docker Swarm, tous écrits en Go, sont devenus des références dans leurs domaines respectifs.
Data science
Bien qu’il soit moins connu que Python dans ce domaine, Go a gagné du terrain grâce à des bibliothèques comme Gonum et Gorgonia.
Conteneurs
Le langage Go sert couramment au développement de conteneurs Docker, une technologie qui permet d’encapsuler une application avec tout ce qu’elle contient (code, bibliothèques, dépendances, etc.) dans un conteneur, notamment avec l’outil Kubernetes conçu pour gérer et automatiser le déploiement de conteneurs.
La popularité de Go
L’adoption de Go par les développeurs a été régulière. De nombreux événements sont régulièrement organisés au niveau international et ils favorisent des échanges d’expertise et des retours d’expérience sur le domaine. Un sondage de StackOverFlow a fait apparaître que Go figurait dans le top 3 des langages les plus désirés par les développeurs. Et en mars 2023, il s’est classé dans le top 10 de l’indice Tiobe de popularité des langages de programmation. « Le soutien de Google contribue à améliorer la confiance à long terme dans le langage », a estimé Tiobe.