En novembre 2009 Google a annoncé la sortie officielle de son nouveau langage de programmation open source : GO.
Pour résumer, GO est un langage compilé, dont la syntaxe se rapproche de celle du C, qui dispose d’un garbage collector et qui est optimisé pour exploiter les processeurs multicœurs.
Voici à quoi ressemble un programme Go :
package main
// fib returns a function that returns
// successive Fibonacci numbers.
func fib() func() int {
a, b := 0, 1
return func() int {
a, b = b, a+b
return a
}
}
func main() {
f := fib()
// Function calls are evaluated left-to-right.
println(f(), f(), f(), f(), f())
}
En créant Go, Google a voulu réunir le meilleur des 2 mondes : la vitesse d’exécution d’un programme compilé, et la rapidité de développement, la flexibilité et la gestion simplifiée de la mémoire qu’apportent des plateformes comme .NET ou JAVA.
Go simplifie également l’exécution de plusieurs taches en parallèle en exploitant nativement les capacités des processeurs multicœurs (qui sont devenus un standard, y compris sur les équipements mobiles) grâce à l’instruction dédiée « Go ». Cette instruction permet de lancer très simplement des portions de code qui s’exécuteront en parallèle qui communiquent entre elles par messages.
Le compilateur peut générer des exécutables pour Windows, OSX, Linux, FreeBSD et OpenBSD, pour les plateformes Intel, AMD et ARM.
Il s’agit d’un élément stratégique pour Google : attaqué par Oracle pour l’utilisation de Java dans Androïd, Google pourrait orienter sa stratégie vers ce nouveau langage.