Google Go, 'Hello world'

Geek dans l'âme, j'ai décidé d'installer Go sur ma machine, pour pouvoir le tester, l'installation n'a rien de complexe, et le tutorial fournit par Google n'est pas illisible, bref ça marche tout seul.

Je suis un mec sympas donc je vais quand même vous donner la marche à suivre pour l'installer sur Mac OS. En l'occurrence chez moi la version 10.6.2.

Primo, il vous faut lancer un terminal, je vous le dis, on va faire de la ligne de commande.

Assurez-vous d'avoir Python, Mercurial et XCode d'installés, ainsi qu'une connexion internet disponible. Si comme moi vous n'avez encore Mercurial, un simple :

bash$ sudo easy_install mercurial

devrait suffire, pour installer la bête. Pour infos Mercurial est le système de version utilisé par Google pour Go, ils auraient pu choisir svn ou git, mais non.

Ensuite vous devez mettre en place quelques variables d'environnement pour installer et utiliser Go, donc dans votre fichier

.bashrc

ou

.bash_profile

ajoutez les lignes suivantes :

export GOROOT=$HOME/go
export GOOS=darwin
export GOARCH=386
export GOBIN=$HOME/bin
export PATH=$GOBIN:$PATH

Sachant que vos projets Go sont cross-compiler, vous pouvez changer à loisir les variables

$GOOS

et

$GOARCH

puisque celle-ci visent la machine sur laquelle vous souhaitez faire tourner votre projet.

Les valeurs pour $GOOS sont :

linux,
darwin,
natcl (portage non complet)

et pour $GOARCH:

@amd64,
386,
arm

sachant qu'arm n'est pas encore supporté sous mac os.

faites un :

bash$ source .bashrc

pour charger les variables, puis un petit

bash$ env | grep ^GO

pour vérifier leurs présence.

vous devriez être donc près à récupérer et compiler Go.

Assurez-vous que le dossier

$HOME/go

n'existe pas, et ensuite tapez :

bash$ hg clone -r release https://go.googlecode.com/hg $GOROOT

Mercurial devrait récupérer les sources sur le net, si tout ce passe bien vous devriez finir sur la ligne suivante :

N files updated, 0 files merged, 0 files removed, 0 files unresolved

Nous allons pouvoir commencer la compilation de Go. First step, verifier l'existence du dossier

$HOME/bin

si celui n'existe pas, un petit

bash$ mkdir $GOBIN && chmod 755 $GOBIN

devrait suffire.

Maintenant allez dans le repertoire $GOROOT/src, et entrez la commande suivante

./all.bash

et la compilation commence. Vous devriez voir tout une séries de lignes de code incompréhensible pour le commun des mortels, sauf pour nous les geeks fan de la ligne de commande et de la compilation à la mano ^^

Si tout ce passe comme sur des roulettes, le message final devrait être :

--- cd ../test
N known bugs; 0 unexpected bugs

Mais si comme moi, vous ne voyez jamais apparaitre la ligne finale vous indiquant que tout c'est bien passé... et bien voici ce que j'ai fais, j'ai tous simplement killer mon Terminal. J'ai bien essayé un Ctrl+C mais rien à faire le programme ne se coupe pas.

Enfin bref, cela n'empêche pas le compilateur Go d'être enfin près à l'utilisation. Si vous compiler pour amd64 le compilateur sera 6g, et le linker 6l, pour 386, 8g et 8l, et pour arm, 5g et 5l.

C'est maintenant le moment de créer votre premier programme Go, pour cela direction votre éditeur de texte favoris, au hasard emacs, le code d'un hello world est tout simple, le voici :

package main

import "fmt"

func main() {
    fmt.Printf("hello, world\n")
}

Sauvegarder le tout sous un jolie nom comme hello.go, et en ligne de commande entrez un simple :

bash$ 8g hello.go
bash$ 8l hello.8
bash$ ./8.out

la sortie ne devrait pas ce faire attendre :

hello, world

Maintenant vous avez en mains les clés pour commencer à développer en Go.