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.