5 Jahre Go: Happy Birthday, kleiner Gopher!

Da Google fand, dass das Programmieren zu schwierig geworden sei, entwickelte man mit Go einfach eine eigene Programmiersprache. Fünf Jahre später ist es Zeit für eine Würdigung.

 –  39 Kommentare
5 Jahre Go: Happy Birthday, kleiner Gopher!

Fünf Jahre ist es nun her, als mit Go eine neue Programmiersprache die Labore Googles verließ. Repräsentiert wird die von den Entwicklern Robert Griesemer, Rob Pike und Ken Thompson im November 2009 vorgestellte Sprache durch ihr Maskottchen, einem Gopher (zu Deutsch: Taschenratte). Es wurde von Pikes Ehefrau Renée French entworfen.

Eine Würdigung von Frank Müller

Frank Müller arbeitet als Software Engineer bei Canonical und ist Autor des ersten deutschen Buches zur Programmiersprache Go.

Mit der Sprache hatten gerade die "alten Hasen" Pike und Thompson das Ziel, ein besseres C mit dem Wissen von heute zu entwickeln. Einfach und klar strukturiert, komfortabel, performant und moderne Rechnerarchitekturen ausnutzend. Mittel der Wahl für letzteres sind sogenannte Goroutinen und Channels. Goroutinen bezeichnen leichtgewichtige Prozesse, die durch die Laufzeitumgebung auf Threads verteilt werden. Der nebenläufige Betrieb Tausender dieser Goroutinen stellt kein Problem da. Die Kommunikation zwischen ihnen erfolgt über Channels. So lassen sie sich leicht als Services vorstellen, die miteinander in einer Anwendung tätig sind.

Diese Eigenschaft, dazu die recht bekannt erscheinende Syntax inklusive einiger Komfortmaßnahmen wie beispielsweise implizite Typen, Export von Bezeichnern und Schnittstellen-Implementierungen sowie die mächtigen Bibliotheken und Tools sorgten schnell für eine hohe Akzeptanz, die Trends sind positiv. Einzige Kritikpunkte sind stets fehlende Generics und die auf Exceptions verzichtende Fehlerbehandlung. Doch hier weist die Community inzwischen mit guten Antworten auf, sodass Einsteiger sich schnell in der Sprache zurecht finden.

Die erste Vorstellung der Entwickler, die Go als Systemsprache sowie Standard-Bibliotheken mit Fokus auf Netzwerke präsentierte, hat schnell die Domäne der Sprache festgelegt. Sie kommt heute in der Regel in Cloud- und Server-Projekten auch jenseits von Google zum Einsatz. Zum Beispiel bei Docker oder Canonicals Juju sowie CloudFlare, GitHub, Heroku, Microsoft und Digital Ocean. Sie alle wünschen sich schnelle Entwicklungszyklen, einfaches Deployment, robustes und skalierbares Laufzeitverhalten und einfache Kommunikation unterschiedlichster Art im Netzwerk.

Dies zeigen auch typische Themen auf den verschiedenen Konferenzen, die zum Thema Go rund um den Erdball stattfinden. GopherCon und dotGo sind hier die prominentesten Vertreter. Dazu finden sich auch noch User Groups und Google Developer Groups zum Thema Go zusammen.

Gopher - Maskottchen der Programmiersprache Go (Bild: golang.org)

Rückblickend auf ihre ersten fünf Jahre kann die Sprache hauptsächlich auf einen stabilen Standard verweisen. Die aktuelle Version 1.3 unterscheidet sich von der Veröffentlichung hauptsächlich durch ein stabileres und performanteres Laufzeitsystem sowie eine Vielzahl neuer oder erweiterter Bibliotheken. Die angekündigten Versionen 1.4 und 1.5 werden neben weiteren Erweiterungen und Fixes insbesondere die Garbage Collection verbessern und als Plattform auch Android auf ARM unterstützen.

So wird Go zunehmend reifer und etablierter, findet seine Anwendungsgebiete und erfreut sich zufriedener Nutzer. Die Sprache mag vielleicht nicht dem aktuellen Hype der funktionalen Programmierung entsprechen, sie ist sogar ein wenig "langweilig". Doch sie ist produktiv und unterstützt den Programmierer bei der Entwicklung großer Anwendungssysteme für Cloud-Projekte und Server. Manchmal ist dies einfach mehr wert. Happy Birthday, kleiner Gopher, mach weiter so. (ane)