Fazit
Nachfolgend wird zuerst ein technisches Teamfazit gezogen. Danach wird jeder persönlich seine Meinung zu Go in einem kurzen Abschnitt erläutern. Das persönliche Fazit wurde jeweils unabhängig erstellt.
Teamfazit
Mit Go zu Programmieren hat grossen Spass gemacht. Die Installation der Entwicklungsumgebung verlief ohne Probleme und mit Goclipse konnte auch eine vertraute IDE auf Basis von Eclipse verwendet werden.
Ein kleiner Nachteil von Go ist, dass ein Programm für jede Zielplattform kompiliert werden muss. Dies ist aber dank einem Crosscompiler problemlos möglich (sogar die ARM-Architektur wird unterstützt).
Obwohl das Team keine grosse C-Erfahrung vorweisen kann, wurde der Garbage Collector als angenehm empfunden. So mussten wir das Thema manuelles Memory Management nicht vertiefen und konnten sofort mit der Programmierung loslegen.
Die Sprache ist generell sehr aufgeräumt, vor allem wenn man sie mit aussagekräftigen Sprachen wir Java vergleicht. Ein gutes Beispiel sind die Sichtbarkeitsmodifizierer. Während es in Java 3 Schlüsselwörter für die Sichtbarkeit gibt, kann die Sichtbarkeit in Go durch Gross-/Kleinschreibung eingestellt werden. So kann ein Programmierer anhand des Methodennamens die Sichtbarkeit ablesen.
Das Team würde Go für z.B. einen schnellen Backend-Service oder ein Command Line Tool verwenden. Für grössere Applikationen fehlt noch ein grosses Ökosystem wie z.B. bei Java.
Fazit von Fabian Wüthrich
Go ist concurrency.
Mit der Nebenläufigkeit von Go ist es ein Kinderspiel Programme für moderne Mutlicoremaschinen zu schreiben, welche die Leistung voll ausnutzen.
Go ist C ähnlich.
Go kommt an die Geschwindigkeit von C heran und bietet trotzdem angenehme Features wie einen Garbage Collector. Deshalb verwundert es nicht dass Projekte wie Docker mit Go implementiert wurden.
Go ist wie eine Skriptsprache.
Go fühlt sich nicht an wie eine statisch typisierte und compilierte Sprache, sondern eher wie eine Skriptsprache. Das liegt vor allem an der überschaubaren Syntax und dem schnellen Compiler. Allerdings vermisst man auch Konzepte wie Klassen oder das implements
-Keyword von Java.
Fazit von Alex Suter
Go ist minimalistisch.
Das ist keine negative sondern eine positive Eigenschaft. Beispiel dafür ist die Zuweisung eines Wertes an einer Variable. Mit dem :=
Operator muss der Typ der Variable nicht deklariert werden, trotzdem ist eine statische Typisierung vorhanden.
Go ist schnell.
Egal ob Go-Programme kompiliert oder ausgeführt werden. Es fühlt sich nicht träge an.
Go ist concurrency.
Concurrency ist das Schlagwort wofür Go steht. Nebenläufigkeit kann einfach und robust implementiert werden.