Le langage présenté cette semaine dans notre série découverte est Go. Ce langage, créé en 2007, a une particularité importante par rapport à tous les autres déjà évoqués et supportés par alwaysdata (PHP, Python, Ruby, Node.js et Lua)…
Un langage compilé
Go est un langage compilé, qui ne nécessite donc pas d’interpréteur pour faire tourner les programmes. Ce qui a une conséquence majeure : Go n’a même pas besoin d’être installé chez alwaysdata pour être utilisé. La version 1.7 est toutefois disponible sur nos serveurs pour vous permettre de compiler vos programmes en SSH, mais vous pouvez tout aussi bien compiler vos programmes ailleurs — sur votre propre ordinateur, par exemple.
Exemple : déployer une application Macaron
Il existe naturellement de nombreux frameworks web pour Go ; comme nous sommes gourmands (et français), nous allons utiliser le framework Macaron dans l’exemple suivant.
Pour illustrer le fait que le développement et la compilation peuvent être faits localement, nous allons exécuter les commandes sur notre propre ordinateur — ici sous Linux, mais qui pourrait être sous MacOS, Windows, ou tout autre environnement :
- téléchargeons Macaron :
1 | $ go get gopkg.in/macaron.v1 |
- créons le fichier de notre application, hello.go :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | package main import ( "os" "strconv" "gopkg.in/macaron.v1" ) func main() { m := macaron.Classic() m.Get("/", func() string { return "Hello world!" }) host := os.Getenv("IP") port, _ := strconv.Atoi(os.Getenv("PORT")) m.Run(host, port) } |
- compilons le programme :
1 | $ go build hello.go |
- nous avons désormais un fichier exécutable nommé hello. Nous allons l’envoyer par SCP à la racine de notre compte alwaysdata (nommé superman dans cet exemple) :
1 | $ scp hello superman@ssh-superman.alwaysdata.net:~/ |
- dernière étape, créons dans l’administration alwaysdata un site de type Programme utilisateur, en indiquant :
- commande : ~/hello
C’est tout : notre programme Go démarrera automatiquement en allant à l’adresse indiquée !
Prochain langage à découvrir sur notre blog : Elixir.
Salut,
merci pour ce nouveau langage Go !
Cependant je n’arrive pas à compiler via ssh sur le serveur d’hébergement :
go get gopkg.in/macaron.v1
package gopkg.in/macaron.v1 : cannot download, $GOPATH not set. For more details see : go help gopath
Est-ce qu’il manquerait qqchose dans le PATH ?
Peut-on vraiment compiler directement sur le serveur ?
Merci d’avance pour vos éclaircissements
Comme indiqué par le message d’erreur, vous devez définir la variable d’environnement GOPATH.
je n’ai pas compris quelle valeur indiquer dans GOPATH…
je vais rester sur la compilation en local
merci