Go
Teilen:
Diese Fragen wurden nur Befragten gestellt, die Go als eine ihrer drei Haupt-Programmiersprachen angegeben hatten.
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.
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.
Nur etwa ein Drittel der Go-Entwickler*innen arbeitet an nur einem Projekt gleichzeitig – der Rest jongliert mit mehreren Projekten.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.