Introduction à Go

Découvrez ce qu’est le langage Go, ses origines chez Google, ses points forts pour le cloud et les services réseau, et les traits qui le définissent.

Objectifs pédagogiques

  • Expliquer ce qu’est Go et d’où il vient
  • Citer les types de logiciels pour lesquels Go excelle
  • Reconnaître les grands traits de conception de Go

Go (souvent appelé Golang) est un langage de programmation open source conçu pour créer des logiciels rapides et fiables. Il est compilé, typé statiquement et doté d’un ramasse-miettes, avec un support natif de la concurrence. Cette leçon explique ce qu’est Go, d’où il vient, et pourquoi tant d’équipes le choisissent.

Qu’est-ce que Go ?

Go est un langage généraliste pensé pour être simple à lire et rapide à compiler. Une seule commande go build transforme votre code source en un unique binaire autonome, sans runtime externe à installer : les programmes Go sont donc faciles à distribuer et à déployer.

Le langage garde volontairement un jeu de fonctionnalités réduit : ni classes, ni héritage, ni exceptions. À la place, Go vous offre des structs, des interfaces, des fonctions et un modèle de concurrence léger. Cette petite surface est un atout : elle rend le code cohérent et accessible, même à grande échelle.

Une brève histoire

Go a été conçu chez Google à partir de 2007 par Robert Griesemer, Rob Pike et Ken Thompson, qui voulaient un langage compilant vite et passant à l’échelle sur de grandes bases de code. Le projet a été publié en open source en 2009, et la version stable Go 1.0 est arrivée en 2012, avec une promesse de compatibilité ascendante toujours tenue aujourd’hui.

Depuis, Go est devenu l’un des langages les plus populaires pour le cloud et l’infrastructure. Des outils que vous utilisez peut-être déjà — Docker, Kubernetes ou Terraform — sont écrits en Go.

À quoi sert Go ?

Go brille dès qu’il faut des programmes réseau efficaces, faciles à déployer et à maintenir :

  • Services réseau et API, grâce à une solide bibliothèque standard pour HTTP.
  • Outils en ligne de commande (CLI), distribués en un seul binaire par plateforme.
  • Logiciels cloud et d’infrastructure, où le démarrage rapide et la faible empreinte mémoire comptent.
  • Charges concurrentes, gérées avec les goroutines et les canaux.

Les grands traits en un coup d’œil

TraitCe que cela change pour vous
CompiléLe code source devient du code machine natif
Typé statiquementLes types sont vérifiés à la compilation
Ramasse-miettesLa mémoire est libérée automatiquement
Concurrence intégréeGoroutines et canaux font partie du langage
Binaire uniqueAucun runtime à installer à côté du programme
Compilation rapideLes gros projets se compilent en quelques secondes

Un premier aperçu de Go

Nul besoin de tout comprendre pour l’instant. La ligne ci-dessous affiche un message dans le terminal :

fmt.Println("Bonjour, Go !")

Placée dans le plus petit programme complet, elle donne ceci — et le programme compile et s’exécute tel quel :

package main

import "fmt"

func main() {
	fmt.Println("Bonjour, Go !")
}

Vous écrirez et exécuterez ce programme vous-même dans les deux prochaines leçons.

Idées reçues fréquentes

  • « Go, c’est pareil que Golang. » C’est un seul langage ; « Golang » n’est qu’un surnom hérité de son ancienne adresse web, golang.org.
  • « Go est orienté objet comme Java. » Go n’a ni classes ni héritage ; il privilégie la composition avec les structs et les interfaces.
  • « Go a besoin d’un lourd runtime. » Un programme Go compilé est un binaire autonome : aucune machine virtuelle ni interpréteur à installer sur la cible.

À vous de jouer

Sans rien exécuter pour l’instant, devinez ce qu’affiche le programme de la section « Un premier aperçu de Go ». Écrivez ensuite le plus petit programme Go complet qui affiche Go, c’est amusant ! sur sa propre ligne.

Afficher la correction

L’exemple affiche Bonjour, Go !. Un programme qui affiche Go, c’est amusant ! ressemble à ceci :

package main

import "fmt"

func main() {
	fmt.Println("Go, c’est amusant !")
}

Tout programme Go exécutable démarre dans package main et lance la fonction main ; fmt.Println écrit une ligne dans le terminal.

Résumé

  • Go est un langage open source compilé, typé statiquement et à ramasse-miettes.
  • Il a été créé chez Google, publié en open source en 2009, et a atteint la version 1.0 en 2012.
  • Il excelle pour les services réseau, les CLI et l’infrastructure cloud, et se compile vite en un seul binaire portable.

Prêt à l’essayer ? Passez à l’installation de Go sur votre machine, puis écrivez votre premier programme Go. Vous pouvez aussi parcourir le cours Go complet.

Votre progression est enregistrée uniquement dans ce navigateur. Aucun compte n’est requis.

Recherche

La recherche s’exécute entièrement dans votre navigateur.