Go: Die wichtigsten Infos zur kompilierbaren Google-Programmiersprache

Digitales Business

Digitales Business

Datum 04.10.2021
Lesezeit 7 Min.

Go: Die wichtigsten Infos zur kompilierbaren Google-Programmiersprache

Eine syntaktisch einfache, quelloffene Programmiersprache, die zwischen C++, C#, Python und Java angesiedelt und dabei einfach zu erlernen ist? Google Go bringt genau diese Eigenschaften mit und ist mit Programmier-Vorkenntnissen in wenigen Wochen erlernbar.

Die meisten modernen Programmiersprachen sind inzwischen mächtige Entwicklerwerkzeuge, die von Version zu Version neue Funktionen hinzubekommen. Bei aller äußeren Logik und Aufgeräumtheit verbergen sich hinter der Fassade oft ausgefeilte Verschachtelungsmöglichkeiten, die Einsteiger:innen das Erlernen schwer machen und selbst für Profis noch so manche Programmierfalle bereithalten.

Google Go geht hier einen umgekehrten Weg und will bewusst mit Einfachheit punkten. Und die geht keineswegs auf Kosten der Praktikabilität.

 

Was ist Google Go?

Die Programmiersprache Google Go (auch Golang genannt) ist eine Compiler-Sprache, die 2007 von den Google-Mitarbeitern Robert Griesemer, Robert C. Pike und Ken Thompson entwickelt wurde. Seit 2009 wird Google Go quelloffen als Open-Source-Projekt auf GitHub weitergeführt.

 Internet of Things: Alles aus einer Hand

Internet of Things: Alles aus einer Hand

Durch die intelligente Vernetzung von Maschinen und Gegenständen werden unter anderem Produktion und Logistik effizienter gestaltet. So sparen Sie wichtige Ressourcen und erweitern Ihre Geschäftsmodelle.

Optimieren Sie jetzt Ihre Prozesse: Wir sind mit über 118 Millionen Connections führend im Bereich IoT und diese Zahl wächst täglich.

Für Go-Projekte werden am häufigsten die beiden Compiler Gc und Gccgo genutzt, die unter Windows, Linux, macOS, sowie FreeBSD betrieben werden können. Der Compiler Gc wird als Teil des Installationspaketes direkt von der Projekt-Website unter https://golang.org/ heruntergeladen. Die Community hat darüber hinaus zahlreiche Programme und Plug-ins für die Arbeit mit Go entwickelt. Anpassungen für weitere Betriebssysteme und Zielumgebungen laufen. Eine Browser-basierte Testumgebung für die ersten Schritte mit Go finden Sie unterhttps://play.golang.org.

Google Go sollte nicht verwechselt werden mit Googles gleichnamiger Android-App für Mobiltelefone. Bei letztgenannter handelt es sich um eine funktionsreduzierte Version der Google-Internetsuche.

Video: YouTube / Pilzschaf

 

Google Go im Überblick – die Stärken der kompakten Sprache

Die Verwandtschaft von Google Go zur großen Familie der C-Sprachen und die Nähe zur Unix-Welt sind klar erkennbar. Kein Wunder: Immerhin hat Co-Autor Ken Thompson einst das Betriebssystem Unix mitentwickelt und ist auch Schöpfer der C-Vorgängersprache B. Auch Robert C. Pike war bei den Bell Labs im dortigen Unix-Team. Gleichwohl ist Google Go eine moderne Programmiersprache des 21. Jahrhunderts und speziell des Cloudzeitalters geworden. Das zeigt sich schon an der durchgehenden Skalierbarkeit auf allen Ebenen. Zu den Stärken von Go im Einzelnen:

Quelloffenheit: Durch die Offenlegung des Quellcodes ist Google Go eine vergleichsweise sichere Sprache. Mögliche Fehler im Compiler-Code können so schneller erkannt und behoben werden. Das macht es Hacker:innen schwerer, Lücken auszunutzen. Zudem lädt Quelloffenheit andere Programmierer:innen zur Weiterentwicklung der Sprache oder zur Bereitstellung eigener Tools rund um die Sprache ein. Entsprechend sind neben Gccgo schon viele weitere Werkzeuge und Programmierhilfen für Google Go entstanden.

Kompilierbarkeit: Compiler-Sprachen bieten gegenüber Skriptsprachen in der Regel große Geschwindigkeitsvorteile. Kompilierter Code liegt direkt in Maschinensprache vor und kann von den Prozessorkernen entsprechend schnell gelesen und ausgeführt werden. Bei Skriptsprachen läuft hingegen permanent ein Interpreter im Hintergrund, der den Code in Echtzeit übersetzt. Das bremst die eigentliche Ausführung erheblich aus. Gerade in Bereichen wie 3D-Grafik, Künstlicher Intelligenz, Augmented Reality oder Spracherkennung wird deswegen üblicherweise mit Compiler-Sprachen gearbeitet.

Eigene Garbage Collection: Viele Anwender kennen das Problem: Trotz immer größerer Speicher frieren bestimmte Applikationen regelmäßig ein, weil sie den Arbeitsspeicher des jeweiligen Endgerätes mit nicht mehr benötigten Daten zum Überlaufen bringen. Google Go hat einen eigenen Aufräumdienst, einen sogenannten Garbage Collector („Müllsammler“) an Bord, der nicht mehr benötigte Speicherbereiche wieder freigibt. Google Go ist nicht die einzige Programmiersprache, die einen solchen Dienst beinhaltet. Aber sie hebt sich damit von Sprachen ab, die Speicherverschwendung nicht aktiv unterbinden.

Mut zur Einfachheit: Google Go verzichtet bewusst auf viele Technologien anderer Sprachen wie C# und C++. So gibt es zwar Pointer (Zeiger), aber keine zugehörige Zeiger-Arithmetik. Es gibt ‚for‘-Schleifen, aber ohne ‚while‘-Befehl. Es gibt keine Vererbung und nur wenige Variablentypen. Auch wenn dies auf den ersten Blick erhebliche Einschränkungen sind, so lassen sich viele Aufgaben auf anderen Wegen lösen. Der nicht vorhandene ‚while‘-Befehl ist schlicht nicht notwendig, weil der ‚for‘-Befehl sehr leistungsfähig ist. Die Zeiger-Arithmetik gilt zudem vielen Sprachen-Entwickler:innen als Büchse der Pandora, da sie zu Programmierfehlern (Bugs) förmlich einlädt. Google Go findet auch hier andere Wege, um ans gewünschte Ziel zu kommen.

Nebenläufigkeit: Mit Google Go erstellte Programme funktionieren auf Wunsch nebenläufig. Das bedeutet: Programmbestandteile, die auf bestimmte Berechnungen oder Trigger warten, blockieren nicht ungewollt andere Funktionen, die in der Zwischenzeit weiterlaufen könnten. Jede Funktion oder Methode kann hierfür als sogenannte Go-Routine angelegt werden, indem sie per „go“ aufgerufen wird: Intern verteilt ein Multiplexer Funktionen auf unterschiedliche Threads. Wird ein solcher Thread durch eine laufende Berechnung blockiert, verschiebt der Multiplexer die so ausgebremste Go-Routine einfach auf einen anderen, weiter lauffähigen Thread. Und: Funktionen selbst arbeiten nicht mit gemeinsamen, globalen Variablen sondern tauschen Werte über sogenannte Channels untereinander aus. Auch dies reduziert die Gefahr des „Einfrierens”.

Gute Lesbarkeit: Gerade bei der Arbeit in verteilten Entwickler:innen-Teams oder beim Debugging ist es sehr praktisch, den Code anderer Programmierer:innen leicht lesen und verstehen zu können. Go-Code ist weitgehend einheitlich formatiert und gut lesbar. Viele komplexe Programmier-Tricks über mehrere Funktionen hinweg sind nicht möglich. Sie müssen also später beim Gegencheck auch nicht mühsam aufgeschlüsselt werden.

Das sind nur einige der Vorteile von Google Go, die mit erklären, warum die Sprache in ihrer noch jungen Geschichte in Beliebtheits-Rankings für Programmiersprachen neben den Platzhirschen Java, C# oder Python regelmäßig vordere Plätze belegt. 2017 landete Google Go imTIOBE-Ranking erstmals unter den zehn meistgeschätzten Sprachen weltweit.

Video: YouTube / media.ccc.de

 

Was Google Go nicht ist

Auch wenn Google Go viele Stärken mitbringt, gibt es doch naturgemäß Aufgaben und Einsatzgebiete, für die diese Sprache weniger geeignet ist.

So ist Google Go keine ideale Einsteiger:innensprache. Programmierkenntnisse in PHP, C, C++, C# oder Pascal sind hilfreich für den Einstieg und speziell für das schnellere Verständnis von Go-typischen Funktionen, Variablen und Zeigern. Absolute Anfänger:innen sind mit einer etablierten (Script-)Sprache wie VBA, JavaScript oder Python mit umfassendem SDK (Software Development Kit) jedoch wahrscheinlich besser bedient.

Jetzt mit IoT Easy Connect durchstarten

Jetzt mit IoT Easy Connect durchstarten

Zwei sorgenfreie IoT-Prepaid-Tarife ermöglichen Ihr eigenes IoT-Projekt auf Basis unseres Hochleistungsnetzes:

  • IoT Easy Connect 2G/4G für hohe Datenraten
  • IoT Easy Connect 2G/NB-IoT/LTE-M für schwierige Bedingungen

Auch für schlanke Hardware-Umgebungen mit wenig Speicher – wie die Arduino-Welt auf Basis der ATmega-Chips – war Google Go bisher ungeeignet. Mit dem hauseigenen Compiler erzeugter Code erreicht in der Regel Megabyte-Volumina – zu groß für das winzige Onboard-RAM der meisten Microcontroller. Mittlerweile gibt es aber auch hier ein eigenes Entwickler-Projekt in Gestalt von TinyGo, das mit seinem eigenen Compiler besonders byte-sparende Programme erzeugt.

Ganz zuletzt ist Google Go keine kreative Programmiersprache. Soll heißen: Wer seinen Programmiercode gerne sehr individuell gestaltet, dabei um jedes Byte ringt und prinzipiell gerne tief verschachtelte Strukturen schafft, wird mit Google Go nicht glücklich. Die Sprache simplifiziert ganz bewusst und erzwingt damit einfachen und gut nachvollziehbaren Code – auch im Hinblick auf die Zusammenarbeit in Entwickler:innen-Teams.

 

Google Go – erste Schritte

Ziel der Go-Entwicklerung war es, eine Sprache zu kreieren, die gleichermaßen simpel zu programmieren und zu kompilieren ist und auf allen unterstützen Plattformen hohe Ausführungsgeschwindigkeiten erreicht. Besonders bei Web-Anwendungen oder Programmierschnittstellen (API) zeigt Google Go seine Stärken. Möchten auch Sie austesten, ob Google Go für Ihre Zwecke die passende Sprache ist? Dann laden Sie es doch von der Webseite herunter.

Nach dem Download des Komplettpaketes unter https://golang.org/ (für Windows im msi-Format) wird die Software über den mitgelieferten Installer eingerichtet. In der Regel wird Google Go dabei im Windows-Ordner C:\Programme\Go\ abgelegt, auf englischsprachigen Rechnern unter C:\Program Files\Go\ an. Ältere Versionen von Go erzeugen abweichend den Ordner C:\Go. Nach der Installation finden Sie im Unterordner \bin\ die ausführbare Go-Datei go.exe sowie das Formatierungstool gofmt.exe, mit dem Sie Ihren Code später gut lesbar autoformatieren können.

Mit Windows-Taste + R öffnen Sie ein Ausführen-Fenster, in dem Sie per „CMD“ die Kommandozeile öffnen. Dort starten Sie Go mit der Eingabe „Go“. Erscheint nun die Go-Parameterübersicht, wurde das Programm korrekt auf Ihrem Computer installiert.


Nun fehlt Ihnen noch eine Entwicklungsumgebung (IDE), in der Sie Ihre eigentlichen Go-Programme schreiben können. Hier gibt es zahlreiche Produkte am Internet, viele davon sind kostenlos. Manche IDE wie Atom, Vim oder Zeus sind Ihnen vielleicht schon von der Arbeit mit anderen Programmiersprachen bekannt. Für einige dieser IDE brauchen Sie noch ein Plug-in (zum Beispiel Vim-Go für Vim oder Zeus-Go für Zeus), damit diese mit der Google-Sprache zusammenarbeiten. Sobald IDE und Sprachpaket auf Ihrem Rechner laufen, sind Sie bereit für Ihr erstes Go-Programm.

Sie möchten erst einmal in einer geschützten Umgebung Go-Erfahrung sammeln, ohne direkt die Software zu installieren? Auch das ist kein Problem. Die oben erwähnte Test-Umgebung https://play.golang.org ist genau hierfür gedacht.

Übrigens: Wenn Sie möchten, können Sie den mitgelieferten Compiler auch durch den Compiler GccGo ersetzen, der Teil der GNU Compiler Collection ist. Das ohnehin schon schnelle Google Go wird mittels GccGo noch besser kompiliert, was in teilweise höheren Ausführungsgeschwindigkeit der fertigen Programme resultiert. Sie finden GccGo unter https://gcc.gnu.org/. Auf Windows-Rechnern bedarf die Installationen allerdings einiger Anpassungen. Sie sollten dafür idealerweise Erfahrungen mit GNU haben und gegebenenfalls Mingw 64 nutzen, das sie unter http://mingw-w64.org/  finden.

 

Verwenden Sie selbst die Programmiersprache Google Go? Was hebt diese aus Ihrer Sicht von anderen Sprachen ab und welche Empfehlungen würden Sie unseren Lesern für die Arbeit mit Go geben? Lassen Sie uns in den Kommentaren an Ihren Erfahrungen teilhaben.

 

 


Ihre Digitalisierungs-Berater:innen für den Mittelstand

Sie haben Fragen zur Digitalisierung? Unser Expert:innen-Team hilft Ihnen kostenlos
und unverbindlich im Chat (Mo.-Fr. 8-20 Uhr). Oder am Telefon unter 0800 5054512

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Facebook Twitter WhatsApp LinkedIn Xing E-Mail