golang: Erste Schritte


Ich bin in den letzten Tagen wieder öfter auf Go gestossen, Googles neue Programmiersprache. Und jetzt habe ich beschlossen, das ganze auch auszuprobieren - obwohl mir die Syntax erstmal nicht gefällt. Zu nah an C, zu viele Pointer… 😉 Aber trotzdem bin ich an neuen Inputs in Sachen Softwareentwicklung interessiert und gerade die Ausrichtung auf Mehrprozessorsysteme und message-basierte Anwendungen hat eine große Anziehungskraft. Also richte ich mir eine kleine Linux-VM ein und installiere alle notwendigen Pakete für Go (und ab jetzt werde ich mit golang auf die Sprache verweisen, denn 2 Buchstaben sind einfach zu wenig für eine Suchmaschine…).

Mercurial

Als erstes wird Mercurial installiert, da ich auf die neuste Version von Golang zugreifen möchte. Unter Debian geht das mit folgendem Kommando:

$ apt-get install mercurial

Golang

Seltsamerweise konnte ich nicht zu 100% der offiziellen Installationsanleitung folgen. Meine Installation von Mercurial wollte das Repository partout nicht über HTTPS klonen. Aber Google Code liefert das Golang-Repository auch über HTTP und damit bin ich schliesslich zum Ziel gekommen:

$ export GOROOT=/pfad/zu/go # Standard ist $HOME/go
$ export GOARCH=386
$ export GOOS=linux
$ hg clone -r release http://go.googlecode.com/hg/ $GOROOT

Update Mittlerweile liegen die Sourcen in einem Git Repository.

Um Golang selbst zu bauen, müssen noch ein paar Tools der GCC Toolchain installiert werden:

$ apt-get install bison gcc libc6-dev ed gawk make

Da ich zum Zeitpunkt der Installation hinter einem Proxy sass, musste ich die Testcases für die Pakete http und net in der Datei $GOROOT/src/pkg/Makefile deaktivieren:

NOTEST =  # nach dieser Zeile einfügen
http
net
... # hier geht das Original weiter

Anschliessend kann muss das Zielverzeichnis für die Binaries erstellt und Golang gebaut werden:

$ mkdir $HOME/bin # Standardverzeichnis, umzusetzen über $GOBIN
$ cd $GOROOT/src
$ ./all.bash

Wenn alles glatt geht, dann sollte folgende Ausgabe kommen:

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

Hallo Welt

Jetzt folgt das erste Programm, in schöner Tradition natürlich ein Hello World. Einfach den Lieblingseditor starten und folgenden Text eingeben:

package main

import fmt 'fmt'  // Package implementing formatted I/O.

func main() {
    fmt.Printf('Hello, World!')
}

Anschliessend wird das Programm kompiliert:

$ ~/bin/8g helloworld.go
$ ~/bin/8l helloworld.8
$ ./8.out
Hello, World!

Weitere Artikel

Eindrücke aus Red Dead Redemption 2

Neuer Bluray Player: PS4

How to hardware reset the new Oura ring

Neuer Monitor: Dell S2716DG

Ein paar Bilder

Endlich da: Mein Oura Ring

Quick changelog with git

Pik Ass in Destiny 2

Neue Drohne: DJI Mavic Air

Confirmed: Changes to the Crossfit Games