Go

Teilen:

Diese Fragen wurden nur Befragten gestellt, die Go als eine ihrer drei Haupt-Programmiersprachen angegeben hatten.

Wofür verwenden Sie Go?

Bekannt für Effizienz und Geschwindigkeit, Parallelisierungsfunktionen, eine solide Standardbibliothek sowie Einfachheit und Verständlichkeit, ist Go definitiv eine produktionsreife Sprache. Daher überrascht es nicht, dass immer mehr Entwickler*innen mit Go arbeiten. Go wird von vielen großen Unternehmen in der Produktion verwendet, darunter Google, Dropbox, Microsoft, PayPal, Netflix und andere.

Welches Betriebssystem verwenden Sie hauptsächlich bei der Entwicklung mit Go?

Diese Daten stimmen in gewisser Hinsicht mit den Umfrageergebnissen des Go-Teams überein. Go wird oft als eine „Cloud-Sprache“ bezeichnet, weil es oft bei der Erstellung von Cloud-nativen Anwendungen und DevOps-Tools eingesetzt wird. Das erklärt die Beliebtheit von Linux und macOS unter Go-Entwickler*innen.

Nutzen Sie mehrere Go-Versionen gleichzeitig?

Nur etwa ein Drittel der Go-Entwickler*innen arbeitet an nur einem Projekt gleichzeitig – der Rest jongliert mit mehreren Projekten.

Welche Go-Versionen verwenden Sie?

Go bietet zwar eine großartige Abwärtskompatibilität, aber manche Benutzer*innen verwenden trotzdem mehrere Versionen gleichzeitig. Ein Anwendungsfall ist das Einrichten eines CI-Systems mit zwei oder drei unterschiedlichen Go-Versionen, um Regressionen und andere Probleme zu erkennen.

Welche Template-Engine verwenden Sie bei der Go-Entwicklung?

Es ergibt Sinn, dass html/template an erster Stelle steht. Dieses Paket entschärft potenziell gefährliche Inhalte wie z. B. benutzergenerierte Daten automatisch und hilft dadurch, Code-Injection-Angriffe zu vermeiden.

Welche Sprachen verwenden Sie zusammen mit Go innerhalb eines Projekts?

Laut der kürzlich durchgeführten Go-Umfrage verwenden 37% der Go-Entwickler*innen die Sprache für Websites und Webservices. Diese Daten liefern eine Erklärung dafür, warum so viele Entwickler*innen JavaScript, TypeScript und Go innerhalb desselben Projekts verwenden.

Die hohe Platzierung von Python geht wahrscheinlich darauf zurück, dass viele Python-Projekte zu Go migriert werden. Wenn Entwickler*innen einem in Python geschriebenen Projekt neue Services hinzufügen, verwenden sie in der Regel Go, da die Sprache für Effizienz, Parallelisierungsunterstützung und eine starke Performance im Bereich Netzwerke und Webservices bekannt ist. Dieser Ansatz hat seine Nachteile, vermeidet aber die Neuprogrammierung des gesamten Codebestands.

Erwähnenswert ist hierbei, dass GoLand standardmäßig Unterstützung für JavaScript und TypeScript bereitstellt. Außerdem können Sie das Plugin Python Community Edition installieren, um die Python-Unterstützung zu nutzen.

Welche Arten von Software entwickeln Sie in Go?

Verwenden Sie Workspaces (go.work)?

Der Workspace-Modus wurde in Go 1.18 eingeführt und ermöglicht es Entwickler*innen, an mehreren Modulen gleichzeitig zu arbeiten, ohne die go.mod-Dateien für jedes Modul zu bearbeiten. Mit Go-Workspaces können Sie alle Abhängigkeiten über eine go.work-Datei steuern.

Welche Go-Web-Frameworks verwenden Sie regelmäßig?

Wie schon im vergangenen Jahr ist das Gin-Framework die populärste Lösung für die Webentwicklung, und auch das net/http-Paket aus der Standardbibliothek behauptet sich weiterhin. Lesen Sie unsere REST-Anleitung für Go, um mehr über die Unterschiede zwischen Gin und net/http zu erfahren.

Welche Proxies für Go-Module verwenden Sie?

Nutzen Sie Vendoring in Ihren Projekten?

Unter Vendoring versteht man bei Go das Anlegen eigener lokaler Kopien der Abhängigkeiten, die für ein bestimmtes Projekt benötigt werden, und die Integration dieser Kopien in Ihre Dateistruktur. Dadurch stellen Sie sicher, dass Ihr Projekt den gesamten benötigten Code zum Kompilieren einer Anwendung enthält, und Sie sind nicht auf das Herunterladen von Abhängigkeiten aus externen Quellen angewiesen.

Wie die meisten Ansätze hat auch Vendoring einige Nachteile. Einige Entwickler*innen sind der Ansicht, dass das Code-Repository dadurch weniger transparent wird und Änderungen schwerer zu überprüfen sind. Durch Funktionen wie „Go proxy“, die Abhängigkeiten zwischenspeichert und dafür sorgt, dass immer die richtige Paketversion zur Verfügung steht, helfen Go-Module, vom Vendoring loszukommen.

Welche Go-Router verwenden Sie regelmäßig?

Zwei populäre Router, gorilla/mux und go-chi/chi, werden von der Standardbibliothek noch übertroffen. Zum besseren Verständnis der Unterschiede zwischen gorilla/mux und der Standardbibliothek können Sie die REST-Anleitung für Go lesen.

Gibt es Test-Frameworks, die Sie regelmäßig nutzen?

Wie viele externe Abhängigkeiten haben Sie in Ihren Projekten?

Welche Größe hat die Codebasis, mit der Sie in Ihrer IDE bzw. Ihrem Editor arbeiten?

Verwenden Sie Generics?

Go-Entwickler*innen warten seit Ewigkeiten auf Generics-Unterstützung, und im März 2022 wurde ihnen mit Go 1.18 endlich dieser Wunsch erfüllt. Etwa ein Jahr später haben bereits mehr als 80% der Go-Entwickler*innen Generics eingeführt oder ausprobiert.

Für welche der folgenden Zwecke haben Sie TinyGo verwendet?

TinyGo liefert großartige Ergebnisse, wenn kleine und effiziente Programme für Embedded-Systeme oder WebAssembly zu erstellen sind. Wie diese Umfrage zeigt, wird TinyGo auch zur Erstellung von CLIs verwendet. Go hat eine hervorragende Standardbibliothek, aber deren gesamte Power wird vielleicht gar nicht benötigt, wenn wir ein CLI-Programm entwickeln, das nur einfache Aufgaben ausführen soll. In diesem Fall ist TinyGo die bessere Wahl, denn damit bleibt unser CLI-Programm klein und präzise.

Gibt es Build-Systeme, die Sie regelmäßig nutzen?

Danke, dass Sie sich die Zeit genommen haben!

Wir hoffen, dass Sie unseren Bericht nützlich fanden. Teilen Sie diesen Bericht im Freundes- und Kollegenkreis.

Wenn Sie Fragen oder Anregungen haben, schreiben Sie uns bitte unter surveys@jetbrains.com.