Qu’est-ce que Go ?
Go est un langage de programmation développé par Google. Il a été publié en 2009 comme projet open source par Robert Griesemer, Rob Pike et Ken Thompson. Depuis lors, Go a été utilisé pour développer d’autres technologies bien connues comme Docker, Kubernetes et Terraform. Bien que Go soit largement utilisé dans les logiciels cloud et côté serveur, il s’agit d’un langage à usage général avec de nombreux cas d’usage très différents.
Go est expressif, concis et propre. Il est conçu pour être idiomatique, ce qui permet aux programmeurs d’écrire du code efficace et robuste de façon productive. Les programmes écrits en Go peuvent s’exécuter sur des systèmes Unix, comme Linux et macOS, et sur Windows. Go se distingue en partie grâce à ses mécanismes de concurrence uniques, qui facilitent l’écriture de programmes pouvant exploiter plusieurs cœurs à la fois. Il s’agit avant tout d’un langage fortement et statiquement typé, ce qui signifie que les types de variables sont connus au moment de la compilation. Il possède, néanmoins, quelques fonctionnalités dynamiquement typées.
D’après l’index TIOBE, Go était le langage de programmation de l’année en 2009 et en 2016. Bien qu’il ait atteint son apogée en 2016, Go demeure très prisé. Selon le sondage annuel Stack Overflow Developer, Go reste un langage de premier plan.
Go partage de nombreuses similarités avec C, héritant de nombreux aspects de la syntaxe C, comme les instructions de flux de contrôle, les types de données de base, les pointeurs et d’autres éléments. En revanche, la syntaxe et la sémantique du langage vont bien au-delà de C. Il partage aussi des similarités avec Java, C#, Python et d’autres. En général, Go a tendance à emprunter et à adapter des fonctionnalités d’autres langages de programmation, tout en se débarrassant d’une bonne partie de leur complexité. Par exemple, vous pouvez utiliser des fonctionnalités de programmation et des modèles de conception orientés objet (OO) en Go, mais le paradigme OO complet n’est pas entièrement implémenté. Vous découvrirez pourquoi ultérieurement dans ce parcours d’apprentissage.
Principes de Go
Voici les avantages des principes sous-jacents du langage de programmation Go :
- La licence Go est 100 % open source.
- Les programmes Go se compilent en un seul binaire autonome, ce qui facilite leur partage et leur distribution.
- Go prend en charge la compilation croisée sur plusieurs plateformes et systèmes d’exploitation.
- Go s’efforce d’être un langage simple et concis, afin d’en faire plus avec moins de lignes de code.
- La concurrence est un citoyen de première classe qui permet à toute fonction d’être exécutée comme un léger thread avec peu d’effort de programmation.
- Go offre une gestion automatique de la mémoire, notamment de son nettoyage (garbage collection).
- La compilation et l’exécution sont rapides.
- Avec Go, l’ensemble du code doit être utilisé, sans quoi une erreur est générée.
- Il existe une mise en forme officielle qui permet d’assurer une cohérence entre les projets.
- Go dispose d’une bibliothèque standard volumineuse et complète et de nombreuses applications peuvent être générées sans dépendances tierces.
- Go garantit sa compatibilité descendante avec ses versions antérieures.
Cas d’usage Go
- Applications au niveau du système
- Applications web
- Applications cloud natives
- Utilitaires et outils en ligne de commande
- Systèmes distribués
- Implémentations de bases de données