Benutzer-Werkzeuge

Webseiten-Werkzeuge


go

Go

siehe auch V, es fühlt sich an wie Go, jedoch ohne GC (wie Rust) und kann (genauso wie Rust) Speichersichere Programme erstellen.

  • http://golang.org/ → Home Page
    • Entwurfsphase begann am 21. September 2007 und am 10. November 2009 wurde "Go" von Google als freie Software veröffentlicht. Im März 2012 erschien Version 1.0 von Compiler und Spezifikation, die Kompatibilität für die kommenden Go-Releases verspricht.
    • Tipp für die Websuche nach Go-Ressourcen: statt "go" als Suchbegriff einfach immer golang verwenden.
    • mehr über "Go" erfahren:
    • Presse:
      • Pro und contra Go: Welche Vorteile und Nachteile hat die Programmiersprache Go? - Der Minimalismus von Go hat schon seinen Charme. Der geringe Hauptspeicherbedarf von Go-Programmen und die eingebaute Parallelisierung machen die Sprache für bestimmte Einsatzgebiete gut geeignet. Go versucht, ein besseres C und eine gute Alternative zu C++ zu sein und erreicht dieses Ziel in vielen Szenarien auch. Wer Java, Scala oder C# gewöhnt ist, dürfte sich mit Go eher nicht so schnell anfreunden. Und so kommen auch die meisten Entwickler von Skriptsprachen wie Python und Ruby zu Go.
      • Programmieren mit Go: Moderner Klassiker - Die Programmiersprache Go verspricht mit der vor Kurzem erschienenen Version 1 langfristige Kompatibilität. Konzipiert zur Systemprogrammierung, verzichtet sie auf modische Features und ist somit auch interessant für alle, die an akuter Hype-Allergie leiden. … Go macht keine falschen Versprechungen. Vielleicht ist es gerade das, was die Sprache längerfristig interessant macht. … Wie C zeigt auch Go seine Stärken bei der Systemprogrammierung, wenngleich sich die Sprache natürlich für nahezu alle Zwecke einsetzen lässt. … Einfachheit ist eines der hervorstechenden Merkmale von Go. Ihr zuliebe haben die Spracherfinder auf viele Konstrukte verzichtet. In erster Linie soll Go eine konsistente und unzweideutige Syntax besitzen. Das kann man von Sprachen wie etwa Perl, Ruby oder Scala nicht behaupten, die für ein und denselben Zweck eine Vielzahl syntaktischer Konstrukte oder Methoden besitzen. … Etwas klarer werden Go-Programme noch durch Anleihen bei strukturierten Sprachen wie Pascal, Modula und Oberon. Teilweise war die Go-Syntax schon in Newsqueak und Limbo verwirklicht.
      • Googles Go 1 ist fertig - Was als Open-Source-Projekt von Google begann, hatte über die letzten Jahre rund 200 Helfer, die nicht von Google kamen. Dabei hat Go einen stabilen Status erreicht, so dass nun Go Version 1 veröffentlicht wurde. Dazu wurde die Spezifikation und auch deren Implementierung in den vergangenen Monaten verbessert. … Wer mit Go beginnen will, findet unter http://golang.org eine umfangreiche Dokumentation samt verschiedenen Tutorials. … Go selbst steht unter der BSD-Lizenz.
      • Go 1 soll Anfang 2012 erscheinen - Go 1 soll langfristig unterstützt werden, damit erstellte Programme sollen sich auch mit folgenden Minor-Releases übersetzen lassen. Selbst wenn weitere neue Major-Versionen folgen, soll Go 1 mit Sicherheitsupdates weiterhin versorgt werden.
      • Go - schnelle Programmiersprache von Google - Das Beste aus dynamischen und kompilierten Sprachen … Google hat mit Go eine neue Programmiersprache vorgestellt, die die Entwicklungsgeschwindigkeit dynamischer Sprachen wie Python mit der Geschwindigkeit und Sicherheit kompilierter Sprachen von C und C++ verbinden soll. Go sei daher schnell, produktiv, Open Source und mache Spaß, so deren Entwickler. … Go sei vor allem zur Systemprogrammierung geeignet und bringt Multi-Prozessor-Unterstützung und einen neuen Ansatz in Sachen objektorientietem Design mit, heißt es in Googles Ankündigung. Zudem bietet Go Eigenschaften wie True Closures und Reflection. … Zu den Entwicklern von Go gehört unter anderem auch Ken Thompson, der einst an der Entwicklung von Unix beteiligt war, die erste Shell schrieb und den C-Vorläufer B entwickelte. Zusammen mit Rob Pike, der ebenfalls zum Go-Team gehört, entwickelte Thompson zudem das Betriebssystem Plan 9.

Variablen werden mit dem Schlüsselwort »var« deklariert, gefolgt vom Variablennamen und dem Typ, also umgekehrt wie bei C, C++ oder Java:

var x float64

Variablennamen können mit jedem Zeichen beginnen, das im Unicode-Standard als Buchstabe gilt, jedoch sollte man es hierbei vernünftigerweise nicht übertreiben. Mit dem Operator »:=« lassen sich Variablen in einem Aufwasch definieren und initialisieren. Das Schlüsselwort »var« kann man hierbei, ebenso wie meist die Typangabe weglassen:

i := 1
pi := 3.142

Auch bei Schleifen haben die Go-Entwickler radikal ausgemistet, was bei näherer Betrachtung durchaus sinnvoll erscheint, denn all die Whiles, Dos und Foreachs lassen sich meist einfach umformulieren. In Go gibt es nur noch die gute alte For-Schleife (Verzicht auf Semikolons am Zeilenende und runde Klammern bei if und for):

for i, route := range router.routes {
    if route.pattern == nil { 
        continue
    }
}

Go erzwingt übrigens bestimmte Formatierungen wie geschweifte Klammern am Zeilenende.

Installation

FreeBSD 13.1

> pkg install lang/go
> go version
go version go1.17.6 freebsd/amd64

Debian 11

> echo "deb http://deb.debian.org/debian $(lsb_release -cs)-backports main contrib non-free" >> /etc/apt/sources.list
> apt update

> apt search golang
> apt search golang-1

> apt install golang-1.19-go git

> ln -s /usr/lib/go-1.19/bin/gofmt /usr/bin/
> ln -s /usr/lib/go-1.19/bin/go /usr/bin/
> go version
go version go1.19.3 linux/amd64

Ubuntu 12.04

> aptitude install golang

Nach der Installation finden sich auf der Festplatte, je nach Prozessorarchitektur, die Befehle »6a« , »6c« , »6g« und »6l« oder analoge Befehle mit den Ziffern 5 oder 8. Die 6er-Tools sind für AMD64, die 5er-Reihe für 368 und die 8er für ARM. Die seltsamen Namen sind ebenfalls ein Erbe von Plan9, das über diese Ziffern die Prozessorarchitekturen identifiziert.

Praktischerweise muss man sich um diese Details in der Praxis nicht kümmern, sondern kann stattdessen einfach das Frontend »go« verwenden. Es sei jedoch noch erwähnt, dass die vom Compiler erzeugten Object-Dateien mit der Endung ».6« Referenzen auf alle verwendeten Module enthält, die der Linker dann verwendet. Damit fällt das Problem weg, dass man zusätzlich zum Einbinden von Header-Dateien auch noch die passenden Libraries finden und beim Linken angeben muss wie von C und C++ bekannt. Wenn sich ein Go-Programm kompilieren lässt, kann der Compiler es auch linken. Die altbekannten Linker-Probleme gehören damit der Vergangenheit an. Auch die Aufgabe von Makefiles übernimmt »go« .

Wer Go richtig installiert hat, sollte auf der Kommandozeile den Go-Befehl ausführen können:

> go version
go version go1

Wenn die Go-Installation nicht automatisch im »PATH« der ausführbaren Dateien enthalten ist, sollte man die Umgebungsvariable »GOROOT« auf das Elternverzeichnis setzen und dann »$GOROOT/bin« in den »PATH« aufnehmen.

Weil Go-Programme sich wirklich schnell übersetzen lassen, eignen sie sich mit Einschränkungen auch für den Aufruf als Skript, also eine Art selbstgestrickte Just-in-Time-Compilation. Das Tool Gorun unterstützt diesen Prozess.

IDE (Entwicklungsumgebung)

Remote Procedure Call - RPC

Beispiel-Programme

RegEx mit Go

/home/http/wiki/data/pages/go.txt · Zuletzt geändert: von manfred