Die besten Go-Sprach-IDEs und -Editoren

Googles Go-Sprache, auch bekannt als Golang, wurde kürzlich als Tiobe-Programmiersprache für 2016 ausgewählt, da die Popularität im Laufe des Jahres rapide zunahm und mehr als doppelt so hoch war wie die der Zweitplatzierten Dart und Perl. Der Sprachindex von Tiobe basiert auf der „Anzahl qualifizierter Ingenieure weltweit, Kurse und Drittanbieter“, wobei die Ergebnisse mehrerer Suchmaschinen verwendet werden.

Diese zunehmende Beliebtheit bringt ein erhöhtes Interesse an Entwicklungswerkzeugen für die Programmiersprache mit sich. Da die Go-Sprache in Open Source-Form mit Compilern, Tools und Bibliotheken verteilt wird, müssen Programmierer selbst Go-fähige Bearbeitungsumgebungen finden, unabhängig davon, ob es sich um reine Editoren oder integrierte Entwicklungsumgebungen (IDEs) handelt, die lokal oder in der gehostet werden Wolke.

In diesem Artikel habe ich versucht, alle verfügbaren Go-fähigen Bearbeitungsumgebungen zu betrachten und diejenigen zu ermitteln, die sich lohnen. Ich habe mit der offiziellen Liste der IDEs und Plugins for Go begonnen und die ungefähr 35 Elemente auf der Liste auf diejenigen reduziert, die eine Testversion verdienen könnten. Ich beginne mit einer kurzen Zusammenfassung der nützlichen Produkte, die ich in jeder Kategorie gefunden habe, und schließe mit einem genauen Blick auf meine Top-Angebote.

Beachten Sie, dass die Entwicklung der Go-Sprache normalerweise von der GOPATH-Variablen abhängt, die im Stammverzeichnis Ihres Go-Entwicklungsarbeitsbereichs festgelegt ist. Dies kann ein Problem für GUI-Anwendungen wie Editoren sein, die die Umgebungseinstellungen nicht immer berücksichtigen.

Es gibt mehr als ein Dutzend Go-Sprachtools, die Sie mit dem go getBefehl in Verzeichnissen unter dem Ordner GOPATH installieren können , sobald Go selbst installiert ist. Viele der von mir bewerteten Editoren verwenden eines oder mehrere dieser Tools.

Gehen Sie IDEs

Es gibt eine überraschende Anzahl von IDEs, die Go unterstützen. Die Bedeutung von „Unterstützung“ ist jedoch unterschiedlich. Für mich fielen vier IDEs auf: Gogland, Eclipse mit Goclipse, LiteIDE und Komodo IDE.

Im oberen Preissegment bietet Gogland von JetBrains intelligente Vervollständigungen, Inspektionen und schnelle Korrekturen, einfaches Refactoring, schnelle Navigation, schnelle Popups, einige sehr einfache Codegenerierung, rekursive Anruferkennung, Popups für Ausdruckstypen, Hervorheben von Exit-Punkten, Verwendungsfindung, Code-Formatierung semantische Hervorhebung und Parameterhinweise im Editor. Ja, das ist eine Menge Funktionalität zum Bearbeiten einer jungen Sprache. Zu den weiteren Funktionen von Gogland gehören ein integrierter Debugger, eine Abdeckungsanalyse, Testläufe, ein Menü zum Ausführen von Go-Tools und einige nicht Go-spezifische Funktionen, die denen anderer JetBrains-Produkte wie IntelliJ IDEA ähneln. Gogland kann mehrere GOPATH-Einstellungen verwalten, anstatt sich ausschließlich auf die GOPATH-Umgebung des Systems zu verlassen.

Gogland ist derzeit kostenlos als Early-Access-Produkt erhältlich. Es wird wahrscheinlich irgendwann nach dem Vorbild anderer JetBrains-Produkte angeboten. Erwarten Sie, dass es im Jahresabonnement entweder für sich allein oder in einem Paket mit den übrigen JetBrains-Tools erhältlich ist, mit Rabatten für Akademiker und Open-Source-Mitarbeiter.

Bei einer etwas geringeren Komplexität bietet Eclipse mit goclipse Syntaxhervorhebung, automatische Einrückung und Gliederung in seinem Editor, alles im Sinne anderer Eclipse-Sprachmodule wie Java. Zu den Integrationen gehören das Debuggen mit GDB, das Finden von Definitionen mit den Tools Guru und Godef Go sowie die automatische Vervollständigung mit dem Gocode-Tool. Eclipse und das Goclipse-Plugin sind kostenlos und Open Source.

LiteIDE bietet in seinem Editor einen Paketbrowser, eine Klassenansicht und -skizze, einen Dokumentbrowser, eine Code-Navigation, Verwendungsmöglichkeiten und Code-Refactoring. Integrationen bieten Gocode-Unterstützung, GOPATH-API-Index, Debugging mit GDB und einen Go-Spielplatz. LiteIDE ist kostenlos und Open Source.

Komodo IDE unterstützt Go-Syntaxprüfung (Flusen) und Hervorheben, Syntaxfärben, Code-Falten und andere produktivitätssteigernde Funktionen. Komodo unterstützt auch Go-Code-Intelligenz mit Vervollständigungen, Anruf-Tipps, Konturen und Go-to-Definition. Das Refactoring umfasst das Umbenennen von Variablen und Klassenmitgliedern sowie das Extrahieren von Methoden. Komodo unterstützt Go-Unit-Tests, Code-Zusammenarbeit, Versionskontrolle, interaktive Shells und Code-Profiling. Komodos Hauptanspruch auf Ruhm ist, dass es alle wichtigen Open-Source-Sprachen unterstützt, einschließlich Python, Node.js, Ruby, Go, Perl und Tcl.

Komodo IDE ist ein kommerzielles Produkt. Komodo Editor, der eine Teilmenge der Funktionen der IDE enthält, ist kostenlos.

Gehen Sie Redakteure

Während eine IDE möglicherweise alle Funktionen bietet, die Sie für die Entwicklung von Code benötigen, fühlen sich IDEs häufig „schwer“ an. Mit anderen Worten, es kann lange dauern, bis sie gestartet sind, viel Speicher verbrauchen und manchmal nicht mehr reagieren, wenn Sie Code eingeben, weil sie im Hintergrund zu viel tun. Code-Editoren können manchmal vorzuziehen sein, insbesondere für kurze Sitzungen, solange Sie nicht die Mühe haben, zum Kompilieren in ein separates Befehlszeilen-Shell-Fenster zu wechseln.

Plugins können Code-Editoren manchmal IDE-ähnliche Funktionen hinzufügen. Das ist normalerweise gut, solange der regelmäßige Aufwand für die Aktualisierung der Plugins und der konstante Aufwand für die Plugins, die Prozesse im Hintergrund ausführen, Ihre Bearbeitung nicht verlangsamen.

Atom, Brackets und Visual Studio Code sind die drei Editoren, die sich für mich durch die Arbeit in der Go-Sprache auszeichneten. Alle sind kostenlos und Open Source. Trotzdem lassen sich BBEdit, Emacs, Notepad ++, Sublime Text, TextMate und Vim in Go-Sprach-Plugins integrieren und haben alle ihre Befürworter. Emacs, Notepad ++ und Vim sind kostenlos und Open Source. BBEdit ist kommerziell, aber sein kleiner Bruder TextWrangler ist kostenlos.

Der Atom-Editor von GitHub wird mit dem language-go-Paket geliefert, das Go-Grammatik und Snippets unterstützt. Zusätzliche Pakete für Go bringen mehr Funktionalität. Zum Beispiel lässt sich go-plus in viele Standard-Go-Tools (zum automatischen Vervollständigen, Formatieren, Flusen, Testen) integrieren, um eine IDE-ähnliche Umgebung bereitzustellen, und go-debug wird in den delve-Debugger integriert.

Der Brackets-Editor von Adobe verfügt über mehrere Community-Erweiterungen für die Go-Unterstützung. Dazu gehört Go-IDE, die gocodefür die automatische Vervollständigung verwendet wird. Go-Syntax, die CodeMirror zur Hervorhebung der Syntax verwendet; und Verbesserter Go-Formatierer, mit gofmtdem Code formatiert und goimportsImporte verwaltet werden.

Visual Studio Code unterstützt die sofortige Hervorhebung der Go-Syntax. Zusätzliche Funktionen bietet das vscode-go-Plugin, das in mehr als ein Dutzend Standard-Go-Tools integriert ist. Wenn Sie Ihren GOPATH nicht eingestellt haben, werden Sie vom Plugin aufgefordert, ihn einzustellen, sobald Sie versuchen, eine Go-Sprachdatei zu bearbeiten. Sie können es für das Projekt und / oder die Systemumgebung festlegen. Wenn Sie die Go-Tools nicht installiert haben, werden Sie vom Plugin aufgefordert, sie an den von Ihrem GOPATH festgelegten Standardpositionen zu installieren.

Cloud-basierte Go-IDEs

Cloud-basierte IDEs sind eine relativ junge Innovation im Bereich der Softwareentwicklung. Sie haben zwei inhärente Vorteile: Sie erfordern kein anderes lokales Setup als einen kompatiblen Browser und können möglicherweise von mehreren Entwicklern bearbeitet werden, wenn sie dafür entwickelt wurden. Auf der anderen Seite leiden Cloud-basierte IDEs häufig unter Verzögerungen, die Entwickler verrückt machen und den „Fluss“ stören können, der es Codierern ermöglicht, am produktivsten zu sein. Derzeit unterstützen drei Cloud-basierte IDEs die Go-Sprache: Cloud9, CodeEnv und Wide.

Cloud9 ist eine mehrsprachige Cloud-basierte IDE, die Go of the Box unterstützt. Es stellt eine Verbindung zu GitHub-, Bitbucket- und Google Cloud Platform-Repositorys her und verfügt über Arbeitsbereiche, die Sie freigeben und klonen können. Neben einem Code-Editor mit umfangreichen Funktionen und einem Online-Dateisystem verfügt er über MySQL und andere Datenbanken, Terminal- und Sofortfenster sowie anpassbare Tastaturbindungen, wobei die Modi Vim, Emacs und Sublime Text standardmäßig bereitgestellt werden. Die automatische Vervollständigung und das Debuggen für Go sind noch experimentell, aber die Syntaxhervorhebung, das Ausführungsfenster, die Gliederungsansicht und das Flusen werden vollständig unterstützt.

CodeEnv ist auch eine mehrsprachige Cloud-basierte IDE. Es gibt ein Go-Basisumgebungsimage für private Umgebungen sowie ein öffentliches Go-Umgebungsimage. Jede Umgebung besteht aus einem Dateisystem, einem einfachen Code-Editor mit Syntaxhervorhebung und einem Terminalfenster. Derzeit stehen acht Optionen für das Basisbild und sechs Optionen für das Back-End-Bild zur Verfügung.

Wide ist eine webbasierte IDE für Teams, die in und für die Programmiersprache Go geschrieben ist. Es verwendet einen CodeMirror-basierten themenbezogenen Programmiereditor mit gocode-unterstützter Syntaxhervorhebung, automatischer Vervollständigung, Code-Formatierung und Zusammenarbeit in Echtzeit. Wide zitiert LiteIDE als Abhängigkeit.

Gogland

JetBrains Gogland, derzeit in einer frühen Vorschau, scheint die vollständigste verfügbare Go-IDE zu sein, obwohl sie noch nicht kommerziell veröffentlicht wurde. Der integrierte Debugger, die Abdeckungsanalyse und der Testlauf unterscheiden ihn erheblich von den herkömmlichen Editoren mit einigen Tool-Integrationen.

In dem Screenshot unten, in dem ich mit Gogland einen Teil des Quellcodes des Go-Sprachprojekts untersuche, sehen Sie verschiedene Gogland-Bearbeitungsfunktionen, darunter den Projektbaum, einen Inspektionshinweis (die Glühbirne), die Hervorhebung des Austrittspunkts und das schnelle Durchsuchen mit die Navigationsleiste auf der rechten Seite (das Codefeld mit den nicht nummerierten Zeilennummern). Weitere Screenshots, die zeigen, was Gogland kann, verweisen wir auf den Funktionsleitfaden von JetBrains.

Gogland verwendet dasselbe JetBrains-Plugin-Ökosystem wie IntelliJ IDEA und WebStorm und enthält bereits viele relevante Funktionen, die von diesen Produkten geerbt wurden. Sie können Gogland beispielsweise genau wie WebStorm für die Arbeit mit HTML- und Front-End-Sprachen und Frameworks verwenden. Mit Gogland können Sie auch mit SQL-Datenbanken wie IntelliJ IDEA und DataGrip arbeiten. Wenn Sie die Unterstützung von Node.js mit Ihrer Go-Codierung kombinieren müssen oder zusätzlich zur Git-Integration Subversion-Unterstützung benötigen, müssen Sie die Plugins schnell hinzufügen.

Visual Studio-Code

Visual Studio Code mit dem vscode-go-Plugin ist ein netter Go-Editor, der gut funktioniert und eine gute Git-Integration aufweist. Visual Studio Code muss mindestens monatlich aktualisiert und neu gestartet werden, fühlt sich jedoch während der Bearbeitung selten langsam an. Im Screenshot unten sehen wir links den Explorer, unten rechts die Installation der Go-Tools und oben rechts die Code-Bearbeitung.

Die Go-Tools aktivieren das vscode-go-Plugin, das viele Funktionen zum Bearbeiten und Überprüfen von Codes bietet. Dazu gehören Abschlusslisten (verwenden gocode), Signaturhilfe (verwenden gogetdocoder godefplus godoc), Snippets, Kurzinformationen (verwenden gogetdocoder godefplus godoc), zur Definition gehen (verwenden gogetdocoder godefplus godoc), Referenzen finden (verwenden guru), Dateikontur (verwenden go-outline), Suche nach Arbeitsbereichssymbolen (mit go-symbols), umbenennen (mit gorename), Build-on-Save (mit go buildund go test), Lint-on-Save (mit golintoder gometalinter), Format (mit goreturnsoder goimportsoder gofmt), Generieren von Unit-Tests-Skelett (mit gotests), Hinzufügen von Importen (mit gopkgs), und teilweise implementiertes Debugging (usingdelve).

Das ist eine Menge nützlicher Funktionen, wenn auch nicht so viel wie in der Gogland IDE. Der Screencast in der vscode-go-Readme-Datei zeigt gut, wie die meisten Funktionen funktionieren.

Wolke 9

Von den drei Cloud-IDEs, die Go unterstützen, scheint Cloud9 derzeit die interessanteste zu sein. Es hat den funktionalsten Programmiereditor der drei und unterstützt neben Go etwa 17 Sprachen. Obwohl die Vervollständigung des Go-Sprachcodes als experimentell markiert ist, fand ich, dass es ziemlich gut funktionierte und nicht viel Verzögerungen beim Schreiben verursachte.

Der Ace-Editor von Cloud9 unterstützt derzeit die Syntaxhervorhebung für mehr als 100 Programmiersprachen. Die obige Nummer 17 gilt für Sprachen, die auch andere Unterstützung bieten, z. B. Ausführen des Codes, Flusen, Gliederung, Vervollständigung des Codes und Debuggen.

In Cloud9-Arbeitsbereichen werden derzeit Ubuntu 14.04 und Go 1.7.3 ausgeführt. Sie können Ihre Go-Installation über die Bash-Shell aktualisieren (siehe unten im Screenshot) sowie Go und andere Programme über Bash ausführen.

Wie wir gesehen haben, haben Sie viele Möglichkeiten, die Programmierumgebung für die Go-Entwicklung auszuwählen. Während ich Gogland als beste Go-IDE mit vollem Funktionsumfang, Visual Studio Code mit vscode-go als bestem Go-Editor und Cloud9 als beste Go-Cloud-IDE für mich ausgewählt habe , gibt es mehr als 30 andere Möglichkeiten. Angesichts der persönlichen Auswahl der Softwareentwicklungsumgebungen sollten Sie einige ausprobieren und herausfinden, welche Ihren Anforderungen und Vorlieben am besten entsprechen.