Analyse

Entwickler-Liebling aus gutem Grund: Googles Go glänzt durch Einfachheit

Das Go-Maskottchen ist eine Taschenratte. (Foto: Denis Doronin/Shutterstock)

Go wurde entwickelt, um eine Sprache zu schaffen, die den Ansprüchen der Systemprogrammierung bei Google genügt. Dabei herausgekommen ist eine Programmiersprache, die durch Einfachheit, Performanz und Lesbarkeit glänzt. 

Die Google-Mitarbeiter Ken Thompson, Robert Griesemer und Rob Pike waren unzufrieden mit bestehenden Programmiersprachen und Umgebungen für die Systemprogrammierung. Ihnen missfiel, dass Programmierung schwierig geworden war. Man musste sich entscheiden: Entweder eine Sprache für effiziente Kompilierung, effiziente Ausführung oder einfache Programmierung. Eine Sprache, die alle drei Anforderungen erfüllte, gab es nicht. Also entwarfen sie Go, um diese Lücke zu füllen.

Nix mehr verpassen: Die t3n Newsletter zu deinen Lieblingsthemen! Jetzt anmelden

Go ist eine junge Programmiersprache

Anders als Programmiersprachen wie Java oder Python stammt Go aus einer Zeit, als Computer bereits über mehr als einen Kern verfügten. Go ist eine statisch typisierte Programmiersprache, die zu Maschinencode kompiliert wird. Im Gegensatz zu beispielsweise Rust, einer ebenfalls relativ jungen Sprache, basiert Go nicht auf LLVM, sondern wurde von Grund auf neu entworfen.

Mit Programmiersprachen ist es wie mit allen Werkzeugen: Sie wurden irgendwann entwickelt, um Probleme da zu lösen, wo Bestehendes an seine Grenzen stieß. Im Fall von Go war das die Software-Entwicklung bei Google. Die Sprache wurde von und für Entwickler entworfen, die große Softwaresysteme bauen, warten und debuggen.

Fixes Feature-Set aus gutem Grund

Andere Sprachen bekämen von Version zu Version neue Features, oft inspiriert von anderen Sprachen. Dadurch werden sie sich immer ähnlicher. In ECMAScript wurden mit Version 6 Klassen eingeführt, PHP 8 bekommt einen JIT-Compiler – Beispiele, die diese These belegen, gibt es genug.

Für Go habe man sich absichtlich für einen anderen Weg entschieden, so Rob Pike 2015 bei einem Talk auf der Godot. Als Analogie führt er die Relativität von Sprache an, eine Hypothese, die besagt, dass Sprache die Art, wie wir denken, beeinflusst. Ob haltbar oder nicht, im Fall von Programmiersprachen sei die Theorie plausibel. Wer eine logische Programmiersprache nutze, würde damit andere Probleme lösen und zwangsläufig anders denken als jemand, der mit einer nebenläufigen oder einer objektorientierten Sprache arbeite. Infinitesimalrechnungen löse schließlich auch keiner mithilfe von linearer Algebra. Wenn alle Programmiersprachen sich immer ähnlicher werden würden, würden alle Entwickler in der Folge dieser Entwicklung irgendwann auch alle auf die gleiche Art und Weise denken. Eigentlich wolle man doch verschiedene spezialisierte Tools für verschiedene Problemstellungen nutzen. Sprachen wie Java, JavaScript, C#, PHP oder C++ entwickeln sich weiter, indem sie neue Features implementieren. Damit gewinnen sie zwar an Funktionalität, proportional dazu aber auch an Komplexität. Das sei, als hätte man einen Werkzeugkasten mit verschiedenen Multifunktionstools, mit denen sich alles auf ähnliche Art und Weise lösen lässt, aber keines davon ist wirklich für einen spezifischen Anwendungsfall zugeschnitten, sagt Pike während des Talks.

Keine neuen Features!

Go unterscheidet sich also mit Absicht von anderen Programmiersprachen, die mit jedem neuen Versions-Update neue Features bekommen. Seit dem Launch von Go 1 wurden abgesehen von kleineren Anpassungen so gut wie keine neuen Features eingeführt. Zumindest keine großen. Gos Feature-Set ist fest.

Pike glaubt, neue Funktionalitäten würden die Programmiersprache nicht besser, nur größer und komplexer machen. Die Auswahl an Features, die schlussendlich Teil von Go werden sollten, orientierte sich vor allem an einer Maxime: Lesbarkeit und Einfachheit. Gibt es viele Wege, eine Sache zu lösen, müssen Entwickler sich für einen entscheiden. Diese Entscheidung muss jedes Mal, wenn ihr Code von ihnen selbst oder von anderen gelesen wird, nachvollzogen werden. Zusammengefasst: Der Code wird komplexer, je mehr Features und Auswahl es gibt. In Go wollte man sich auf das Wesentliche beschränken. Einen oder zumindest nur einige wenige statt vieler Lösungswege für ein Problem anbieten. So wird Code leichter zu verstehen, es wird einfacher, ihn zu schreiben und es wird auch einfacher, etwaige Bugs zu fixen.

Bitte beachte unsere Community-Richtlinien

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

Ein Kommentar
dennis
dennis

Und wir wissen alle, dass diese Programmiersprache wieder in der Versenkung verschwinden wird. Da hilft es nicht, wenn man immer und immer wieder darüber schreibt.

Antworten

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.

Bitte schalte deinen Adblocker für t3n.de aus!

Hey du! Schön, dass du hier bist. 😊

Bitte schalte deinen Adblocker für t3n.de aus, um diesen Artikel zu lesen.

Wir sind ein unabhängiger Publisher mit einem Team bestehend aus 65 fantastischen Menschen, aber ohne riesigen Konzern im Rücken. Banner und ähnliche Werbemittel sind für unsere Finanzierung sehr wichtig.

Danke für deine Unterstützung.

Digitales High Five,
Stephan Dörner (Chefredakteur t3n.de) & das gesamte t3n-Team

Anleitung zur Deaktivierung