Googles Go – zwei Jahre später

 –  226 Kommentare

Es war der 10. November 2009, als der Internet-Konzern Google seine erste Programmiersprache mit dem Namen Go der staunenden Öffentlichkeit präsentierte. Im Gegensatz zur gerade im letzten Oktober vorgestellten zweiten Sprache Dart gab es keine Vorankündigung. Dabei arbeiteten die "alten Hasen" Rob "Commander" Pike und Ken Thompson gemeinsam mit Robert Griesemer bereits seit 2007 an der Sprache.

Pike und Thompson sind für ihre Pionierarbeiten rund um Unix, Plan 9 und UTF-8 sowie verschiedene Programmiersprachen und Editoren bekannt. Die drei Entwickler waren vom Stand der Programmiersprachen für die Systemprogrammierung frustriert. Sie wünschten sich eine Sprache, die mit modernen Rechnerarchitekturen mit einer Vielzahl von Kernen zurechtkommt, die dem Entwickler durch ihre Konstrukte Komfort bietet und die nicht nur in der Ausführung, sondern auch in der Übersetzung schnell ist. In Anlehnung an ihr bisheriges Tätigkeitsgebiet war ein modernes C ihr Ziel, so wie man es heute entwickeln würde. 2009 war die Zeit dann reif für die erste Veröffentlichung als Open Source.

Zwei Jahre später liegt die Sprache weiterhin noch nicht als offizielles produktives Release vor. Es ist jedoch für Anfang 2012 unter dem Namen Go 1 angekündigt. In der Zwischenzeit hat sich jedoch einiges getan. Anfangs wurden unregelmäßig kleinere Releases veröffentlicht. Während der Sprachkern von Anfang an stabil war und nur wenige Änderungen erfahren hat, vielfach zur weiteren Erhöhung des Komforts, wurden die Packages der Standardbibliothek sowie die Werkzeuge kontinuierlich erweitert. Der Nutzer kann so auf umfangreiche Funktionen rund um die Netzwerkprogrammierung inklusive Kryptoroutinen, Kodierungen und Templates zurückgreifen.

Die Infrastruktur bietet neben Compiler und Linker zusätzliche Werkzeuge für die einfache Installation externer Bibliotheken. Das Tool lässt sich auch für lokale Builds einsetzen. Ebenso gehören die automatische Generierung von Dokumentationen als HTML sowie die Anpassung von Quellen nach Änderungen an der Sprache oder den Bibliotheken zum Umfang. Ein bei Google gehostetes Dashboard dokumentiert Check-ins und Builds. Außerdem erfährt man mehr über die verfügbaren externen Packages und wie oft die installiert wurden. Als Plattformen werden nach Linux und Mac OS X auf x86-Basis inzwischen auch FreeBSD, OpenBSD, Linux auf ARM-Basis und Windows unterstützt, teilweise jedoch in Abhängigkeit von der inzwischen stark gewachsenen Community. Der Nutzer erhält diese Erweiterungen einerseits im Rahmen wöchentlicher Releases, andererseits mit stabilen Zwischen-Releases etwa alle drei Monate.

Derzeit arbeiten die Entwickler, wie schon während der letzten zwei Jahre, an einer Verbesserung des generierten Codes. So ist die Ausführungsgeschwindigkeit heute um einiges höher als noch 2009. Die weiteren angekündigten Schritte, die sich teilweise bereits in den letzten wöchentlichen Releases wiederfinden, sind einige Refactorings in den Packages, damit diese einheitlicher sind, sowie eine Harmonisierung der Tools über ein einziges Programm mit entsprechenden Parametern. Diese erste produktive Version wird dann auch den nächsten Schritt in ihrer Karriere machen: Go ist seit Mitte dieses Jahres in einem experimentellen Status für Googles App Engine verfügbar. Mit Go 1 wird die Sprache auch hier offiziell produktiv.

Go ist sicherlich noch kein Mainstream, aber die Sprache wächst und gedeiht. Die Community wird täglich größer, wie es die Mailing-Liste, Twitter und Google+ zeigen. Dazu sind nach den ersten Büchern inzwischen weitere Veröffentlichungen angekündigt. So bildet sich eine solide Basis für zukünftige Systemlösungen. (Frank Müller) / (ane)