Menü
iX Magazin

Go: Googles Programmiersprache für Abenteuerlustige

Von
vorlesen Drucken Kommentare lesen 442 Beiträge

Nach Suchmaschine, Ajax-Toolkits, Office-Software und digitalisierten Büchern bringt Google jetzt eine Programmiersprache heraus. Das Idiom namens "Go" ähnelt C und Pascal. Es bietet klassenähnliche "Packages" mit privaten Variablen und Methoden, jedoch keine Vererbung und damit keine Typhierarchien. Das in objektorientierten Sprachen verbreitete Konzept des Interfaces kennt Go wiederum, sodass sich polymorphe Funktionen schreiben lassen, wie man sie etwa für das Sortieren beliebiger Daten benötigt.

Wie andere moderne Sprachen enthält Go einen Garbage Collector. Er übernimmt das Freigeben nicht mehr benötigten Speicherplatzes, was in C und C++ den Programmierern überlassen blieb. Es gibt Datentypen mit einer festgelegten Anzahl von Bytes (uint8, int32, float64 et cetera) sowie die aus C bekannten Typen int, float, uint, die der "natürlichen" Größe auf der jeweiligen Plattform entsprechen. Mit Satzzeichen wie Klammern und Semikolons können Go-Programmierer recht sparsam umgehen, der Kopf einer for-Schleife sieht beispielsweise so aus:

for i := 0; i < flag.NArg(); i++ 

Noch nicht ganz durchdacht scheint die Definition von Strings: Die Sprachdefinition beschreibt sie als "arrays of bytes". Andererseits zeigen Beispiele Unicode-Zeichen mit mehr als 1 Byte. Tatsächlich liefert s[i] immer ein Byte, und für die Verarbeitung von UTF8-kodierten Strings gibt es ein spezielles Package.

Ganz trennt sich Go nicht von seinem Vorfahren C: Zum einen sind die Tools wie Compiler und Linker in C geschrieben, zum anderen kann man Funktionen in der älteren Sprache von der neuen aus nutzen. Nebenläufige Programmierung ist bislang erst in Grundzügen vorhanden. Statt auf Threads wollen die Go-Entwickler jedoch auf Communicating Sequential Processes setzen.

In der FAQ bezeichnet Google die Sprache als Experiment. "Wir hoffen, dass abenteuerlustige Anwender es ausprobieren und feststellen, ob es ihnen gefällt." Selbst setze die Firma Go bislang nicht produktiv ein, da sie noch nicht reif genug sei. In Zukunft sei dies jedoch möglich, und schon jetzt stecke hinter http://golang.org ein darin geschriebener Server.

Google stellt Entwicklungsumgebungen für die Intel-Varianten von Linux und OS X sowie eine ARM-Version für Linux bereit, jedoch nur in Form von Quellcode. Nach dem Auschecken aus dem Mercurial-Repository müssen Interessierte ihn übersetzen, wozu neben dem gcc auch der Parser-Generator bison erforderlich ist. Auf OS X sind die nötigen Werkzeuge in Apples Xcode enthalten.

Siehe dazu auch:

Go im heise Software-Verzeichnis
(ck)