Go è il nome del linguaggio Open Source che Google sta sviluppando nei propri laboratori. Nato da un´idea dei tre ricercatori Rob Pike, Ken Thompson e Robert Griesemer nel 2007, ora inizia a vedere la luce la prima versione del compilatore. Google definisce il linguaggio ancora non usabile in ambiente di produzione ma i primi risultati fanno ben sperare.
Come ogni linguaggio, così anche Go nasce per risolvere una ben precisa esigenza. Esso intende essere un linguaggio compilato facile da usare come il linguaggio interpretato Python e veloce e sicuro come i linguaggi compilati C o C++. Quattro sono le caratteristiche principali evidenziate sul sito del progetto: veloce, sicuro, concorrente, e anche piacevole da usare.
Veniamo ad alcune delle novità introdotte da Go. Esistono i puntatori, ma non è possibile fare "aritmetica sui puntatori". Gli array C non vengono usati, bensì viene usato un nuovo paradigma, quello delle slice, una sorta di Array Java molto più versatili e vicini alla filosofia C. Le funzioni sono chiamate goroutines e sono da intendersi un po´ come i thread. Più goroutines possono essere eseguite con-correntemente. Altro? Le funzioni, ops le goroutines, possono ritornare più di un valore. Il linguaggio supporta la "run-time Reflection", ovvero la possibilità di poter modificare dinamicamente il codice da eseguire.
Chi vuole usare Go può utilizzare o l´estensione del GCC oppure gli appositi compilatori 6g (64 bit x86) e 8g (32-bit x-86). Il back-end GCC è più lento ma produce codice più ottimizzato. La licenza utilizzata è la BSD.
Eccovi l´Hello World di rito:
package main
import "fmt"
func main() {
fmt.Printf("Hello, ??n")
}
Ed eccovi anche la domanda di rito: programmerete in Go?