Go est un langage libre créé par Rob Pike (UTF-8), Ken Thompson (Unix) et Robert Griesemer (V8) dont le but était de « régler les problèmes de Google ». Il se retrouve finalement apte à résoudre des problèmes bien plus divers.
Go est un langage compilé à typage statique, dont l’objectif est de rester le plus simple possible tout en incluant les fonctionnalités indispensables d’aujourd’hui : réseau, concurrence, Unicode, ramasse‐miettes, outils de développement…
À titre d’exemple, un serveur Web avec la bibliothèque standard se résume à quelques lignes :
package main
import (
"fmt"
"net/http"
)
func handler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hi there, I love %s!", r.URL.Path[1:])
}
func main() {
http.HandleFunc("/", handler)
http.ListenAndServe(":8080", nil)
}