Hinaus damit

Auf dem Weg zu Go 2: Ziele, Zwänge, Hindernisse

Gabriela Motroc

© Shutterstock / Osborn

Auf der GopherCon hat Russ Cox einen Einblick in das Go-Core-Team bei Google gegeben und einen Ausblick wie es mit Go weitergehen wird. Die Weiterentwicklung kann nun eben nicht mehr auf der grünen Wiese stattfinden. Rückwärtskompatibilität und der Einsatz der Community sei gefragt.

Russ Cox warf einen Blick auf die vergangenen fünf Jahre mit Go zurück und bat die Community darum, sich aktiv an der Weiterentwicklung von Go zu Go 2 zu beteiligen.

Now we have five years of experience using Go to build large, production-quality systems. We have developed a sense of what works and what does not. Now it is time to begin the next step in Go’s evolution and growth, to plan the future of Go. I’m here today to ask all of you in the Go community, whether you’re in the audience at GopherCon or watching on video or reading the Go blog later today, to work with us as we plan and implement Go 2.

Cox erklärte, dass selbst kleine Start-ups große Cloud-basierte API-Services nutzen, die von anderen Unternehmen angeboten werden, und mehr Open Source Software als selbstgeschriebene Software verwenden. Die Skalierung in der Produktion und der Entwicklung sei bei einem Start-up ebenso wichtig wie bei Google. Deswegen soll Go 2 vor allem die Probleme beheben, die Skalierung behindern.

Die Ziele haben sich seit der Einführung von Go nicht sonderlich geändert. Das Go-Team will Entwickler immer noch effektiver darin machen zwei Arten von Skalierung zu managen: in der Produktion und in der Entwicklung. Aber die Zwänge haben sich geändert. Laut Cox, ist das größte Hindernis für die Weiterentwicklung von Go, der Einsatz der Programmiersprache selbst.

Denn Google geht davon aus, dass es zurzeit mindestens eine halbe Millionen Go-Entwickler weltweit gibt. Dementsprechend gebe es Millionen von Go-Source-Files und mindestens eine Milliarde Zeilen an Go-Code. Und eben diese Entwickler und der Sourcecode repräsentieren nicht nur Gos Erfolg, sondern auch die größten Hindernisse für Go 2.

Eines der Probleme ist, dass die Version 2 den kompletten existierenden Go-1-Code mittragen muss. „Gemischte Programme, in denen in Go 2 geschriebene Pakete Pakete importieren, die in Go in geschrieben werden – und andersherum –, müssen mühelos laufen,“ stellte Cox fest. In kurz: Das Go-Ökosystem darf nicht geteilt werden. Das Automatisierungs-Tooling Go fix sei ein Teil der Lösung, erklärte der Entwickler.

Lesen Sie auch: Google Go: Darum ist die Programmiersprache so beliebt

So wird Go 2 kommen

Der Plan ist es laut Cox, rückwärtskompatible Teile von Go 2 in Inkrementen als Teil der Go-1-Releases herauszubringen, Feature nach Feature. Der Vorteil dieses Vorgehens ist, dass es den Zeitplan für die Go-1-Releases nicht durcheinanderbringt. Außerdem wird die Entwicklung so nicht in einen Go-1- und einen Go-2-Teil geteilt. Es verhindert kritische Abweichungen zwischen den beiden Sprachversionen. Für das Go-Entwicklerteam ist es so einfacher, sich ein Feature nach dem nächsten vorzunehmen und auf Rückwärtskompatibilität zu achten.

Cox stellte in Aussicht, dass die ersten kleineren Änderungen in rund einem Jahr erscheinen werden, etwa um Go 1.12 herum. Damit haben die Entwickler genug Zeit, sich um das Paketemanagement zu kümmern. Sobald die rückwärtskompatible Arbeit getan sei, kommen die komplett neuen Veränderungen. „Falls es nur rückwärtskompatible Änderungen gibt, nennen wir vielleicht einfach 1.12. dann 2.0“, scherzte Cox. Im Hinterkopf sollte man behalten, dass das Entwicklerteam Go 1 nicht einfach den Rücken zukehrt. Sie wollen es so lange wir möglich weiterentwickeln.

Go-Entwickler vereinigt euch!

Ein Punkt lag Cox besonders am Herzen: Dass die Diskussion um Go 2 nicht nur öffentlich stattfindet, sondern sich die Community auch aktiv einbringt. Er forderte die Go-Entwickler dazu auf, zu berichten, was funktionier und was nicht: „Schreibt einen Blogpost, mit echten Beispielen, konkreten Details und Erfahrungen. Und dann verlinkt es auf unserem Wiki. So beginnen wir darüber zu reden, was wir, die Go-Community, an Go ändern möchten.“

Cox‘ kompletten Vortrag findet sich auch auf dem Go-Blog.

Geschrieben von
Gabriela Motroc
Gabriela Motroc
Gabriela Motroc ist Online-Redakteurin für JAXenter.com. Vor S&S Media studierte Sie International Communication Management an der The Hague University of Applied Sciences.
Kommentare
  1. Christian2017-07-14 13:41:50

    Go kann man ja ganz interessant finden, aber warum kommt das auf jaxenter als Java-Portal? Bei JavaScript als eher komplementäre Technologie verstehe ich das ja, aber Go ist ja eher eine Alternative zu Java. Warum dann nicht auch Rust, Swift, TypeScript oder das gute alte C++ in das Themenspektrum aufnehmen?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.