Google Go, "Hello world"
Par Basile le samedi 21 novembre 2009, 02:07 - Developpement - Lien permanent
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 ca marche tout seul.
Je suis un mec sympas donc je vais quand meme vous donner la marche à suivre pour l'installer sur Mac OS. En l'occurence 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 connection internet disponible. Si comme moi vous n'avez encore Mercurial, un simple :
bash$ sudo easy_install mercurial
devrait suffir, 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 et natcl (portage non complet), et pour $GOARCH: amd64, 386 ou 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 taper :
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, vérifier l'existance du dossier $HOME/bin, si celui n'existe pas, un petit
bash$ mkdir $GOBIN && chmod 755 $GOBIN
devrait suffir.
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 incomprehensible 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.








Commentaires
Hmm, c'est de la vrai note de geek ça :) !
Normal :)
C'est aussi un peu un blog de geek ici :)
Bah i :) !
Je sais, mais au cas où il subsistait un doute, cette note est illisible pour une geek level 1-2 comme moi :)
J'avoue c'est pas forcement le plus simple à suivre!
D'ailleurs, je ne blog pas beaucoup en ce moment (les mauvaises langues, vont dire: "comme d'hab"), mais c'est aussi que je réfléchis aussi de plus en plus à l'apparence et au contenu de mon blog... je suis pas sur de devoir, vouloir, pouvoir, continuer dans cette direction.
Ah, je vois qu'on a tous ce genre que questions existentielles en ce moment :) !
(je dis ça parce que j'ai fermé mon blog, du moins retiré les articles, et que je ne suis pas la seule dans ma blogosphère)
C'est pourtant très simple ;-)