Najlepsze IDE i edytory języka Go

Język Go firmy Google, znany również jako Golang, został niedawno wybrany na język programowania Tiobe w 2016 r., Ze względu na jego szybki wzrost popularności w ciągu roku, ponad dwukrotnie wyższy niż w przypadku Dart i Perl zajmujących drugie miejsce. Indeks językowy Tiobe opiera się na „liczbie wykwalifikowanych inżynierów na całym świecie, kursów i zewnętrznych dostawców”, przy użyciu wyników wielu wyszukiwarek.

Tak duży wzrost popularności niesie za sobą wzrost zainteresowania narzędziami programistycznymi dla języka programowania. Ponieważ język Go jest rozpowszechniany w formie open source wraz z kompilatorami, narzędziami i bibliotekami, programiści muszą znaleźć dla siebie środowiska edycyjne Go-aware, czy to zwykłe edytory, czy zintegrowane środowiska programistyczne (IDE), hostowane lokalnie lub w Chmura.

W tym artykule próbowałem przyjrzeć się wszystkim dostępnym środowiskom edycji Go-aware i skupić się na tych, które wydają się warte zachodu. Zacząłem od oficjalnej listy IDE i wtyczek dla Go i przeskanowałem około 35 pozycji z listy do tych, które mogą zasługiwać na próbę. Zacznę od szybkiego zestawienia przydatnych produktów, które znalazłem w każdej kategorii, i zakończę uważnym spojrzeniem na moje najlepsze typy.

Należy zauważyć, że programowanie w języku Go zazwyczaj opiera się na zmiennej GOPATH ustawionej na katalog główny obszaru roboczego w Go rozwoju. Może to stanowić problem w przypadku aplikacji GUI, takich jak edytory, które nie zawsze uwzględniają ustawienia środowiska.

Istnieje ponad tuzin narzędzi językowych Go, które można zainstalować w katalogach w folderze GOPATH za pomocą go getpolecenia, po zainstalowaniu samego Go. Wielu redaktorów, których oceniałem, używa jednego lub kilku z tych narzędzi.

Idź do IDE

Istnieje zaskakująca liczba IDE obsługujących Go. Jednak znaczenie słowa „wsparcie” jest różne. Wyróżniały mnie cztery IDE: Gogland, Eclipse with goclipse, LiteIDE i Komodo IDE.

Z najwyższej półki, Gogland od JetBrains oferuje inteligentne uzupełnianie, inspekcje i szybkie poprawki, prostą refaktoryzację, szybką nawigację, szybkie wyskakujące okienka, bardzo podstawowe generowanie kodu, rekurencyjne wykrywanie połączeń, wyskakujące okienka typu wyrażenia, podświetlanie punktu wyjścia, znajdowanie użycia, formatowanie kodu, semantyczne wyróżnianie i wskazówki dotyczące parametrów w jego edytorze. Tak, to dużo funkcji do edycji młodego języka. Inne funkcje Gogland obejmują zintegrowany debugger, analizę pokrycia, przebieg testów, menu do uruchamiania narzędzi Go i niektóre funkcje niezwiązane z Go, podobne do tych, które można znaleźć w innych produktach JetBrains, takich jak IntelliJ IDEA. Gogland może zarządzać wieloma ustawieniami GOPATH, zamiast polegać wyłącznie na środowisku systemowym GOPATH.

Gogland jest obecnie dostępny bezpłatnie jako produkt z wczesnym dostępem. Prawdopodobnie będzie on ostatecznie wyceniany podobnie jak inne produkty JetBrains. Spodziewaj się, że będzie dostępny w ramach rocznej subskrypcji samodzielnie lub w pakiecie z pozostałymi narzędziami JetBrains, z rabatami dla naukowców i współpracowników open source.

Na nieco niższym poziomie złożoności Eclipse z goclipse zapewnia podświetlanie składni, automatyczne wcięcia i kontury w swoim edytorze, wszystko w duchu innych modułów języka Eclipse, takich jak Java. Integracje obejmują debugowanie za pomocą GDB, znajdowanie definicji za pomocą narzędzi guru i godef Go oraz autouzupełnianie za pomocą narzędzia gocode. Eclipse i wtyczka goclipse są darmowe i otwarte.

LiteIDE oferuje przeglądarkę pakietów, widok klas i konspekt, przeglądarkę dokumentów, nawigację po kodzie, znajdowanie zastosowań i refaktoryzację kodu w swoim edytorze. Integracje obejmują obsługę gocode, indeks GOPATH API, debugowanie za pomocą GDB i plac zabaw Go. LiteIDE jest darmowe i open source.

Komodo IDE obsługuje sprawdzanie składni Go (linting) i podświetlanie, kolorowanie składni, składanie kodu i inne funkcje zwiększające produktywność. Komodo obsługuje również inteligencję kodu Go z uzupełnieniami, wskazówkami dotyczącymi połączeń, konspektami i przejściem do definicji. Refaktoryzacja obejmuje zmianę nazw zmiennych i składowych klas oraz wyodrębnianie metod. Komodo obsługuje testy jednostkowe Go, współpracę nad kodem, kontrolę wersji, powłoki interaktywne i profilowanie kodu. Głównym powodem do sławy Komodo jest to, że obsługuje wszystkie główne języki open source, w tym Python, Node.js, Ruby, Go, Perl i Tcl.

Komodo IDE jest produktem komercyjnym. Edytor Komodo, który ma podzbiór możliwości IDE, jest darmowy.

Idź redaktorzy

Chociaż IDE może zapewniać wszystkie funkcje potrzebne do tworzenia kodu, IDE często mogą wydawać się „ciężkie”. Innymi słowy, ich uruchomienie może zająć dużo czasu, zużywają dużo pamięci i czasami nie reagują podczas wpisywania kodu, ponieważ robią zbyt wiele w tle. Czasami preferowane są edytory kodu, szczególnie w przypadku krótkich sesji, o ile nie przejmujesz się koniecznością przełączania się do oddzielnego okna powłoki wiersza poleceń w celu kompilacji.

Wtyczki mogą czasami dodawać funkcje podobne do IDE do edytorów kodu. Zwykle jest to dobre, o ile okresowy narzut związany z utrzymywaniem aktualności wtyczek i ciągły narzut związany z procesami uruchomionymi przez wtyczki w tle nie spowalnia edycji.

Atom, Brackets i Visual Studio Code to trzy edytory, które wyróżniały mnie praca w języku Go. Wszystkie są bezpłatne i otwarte. Niemniej jednak BBEdit, Emacs, Notepad ++, Sublime Text, TextMate i Vim integrują się z wtyczkami języka Go i wszystkie mają swoich zwolenników. Emacs, Notepad ++ i Vim są darmowe i open source. BBEdit jest komercyjny, ale jego młodszy brat TextWrangler jest darmowy.

Edytor Atom z GitHub jest dostarczany z pakietem language-go, który obsługuje gramatykę Go i fragmenty kodu. Dodatkowe pakiety dla Go zapewniają większą funkcjonalność. Na przykład go-plus integruje się z wieloma standardowymi narzędziami Go (do autouzupełniania, formatowania, lintingu, testowania), aby zapewnić środowisko podobne do IDE, a go-debug integruje się z debugerem delve.

Edytor Brackets firmy Adobe ma kilka rozszerzeń społeczności dla obsługi Go. Należą do nich Go-IDE, które używa gocodedo autouzupełniania; Go-Syntax, który używa CodeMirror do podświetlania składni; i ulepszony Go Formatter, który służy gofmtdo formatowania kodu i goimportszarządzania importami.

Visual Studio Code obsługuje wyróżnianie składni Go po wyjęciu z pudełka. Dodatkowe funkcje zapewnia wtyczka vscode-go, która integruje się z kilkunastoma standardowymi narzędziami Go. Jeśli nie masz zestawu GOPATH, wtyczka poprosi Cię o ustawienie, gdy tylko spróbujesz edytować plik języka Go; możesz ustawić go dla projektu i / lub środowiska systemowego. Jeśli nie masz zainstalowanych narzędzi Go, wtyczka poprosi o zainstalowanie ich w standardowych miejscach określonych przez GOPATH.

IDE Go oparte na chmurze

IDE oparte na chmurze to stosunkowo nowa innowacja w dziedzinie rozwoju oprogramowania. Mają dwie nieodłączne zalety: nie wymagają żadnej lokalnej konfiguracji poza kompatybilną przeglądarką i mogą umożliwiać edycję przez wielu programistów, jeśli są do tego zaprojektowane. Z drugiej strony, środowiska IDE oparte na chmurze często cierpią z powodu opóźnień, które mogą doprowadzić programistów do szału i zakłócać „przepływ”, który pozwala programistom być najbardziej produktywnym. Trzy środowiska IDE oparte na chmurze obsługują obecnie język Go: Cloud9, CodeEnv i Wide.

Cloud9 to wielojęzyczne IDE oparte na chmurze, które obsługuje Go po wyjęciu z pudełka. Łączy się z repozytoriami GitHub, Bitbucket i Google Cloud Platform oraz udostępnia obszary robocze, które można udostępniać i klonować. Oprócz edytora kodu z obszernym zestawem funkcji i systemem plików online, ma MySQL i inne bazy danych, okna terminala i bezpośrednie, a także konfigurowalne powiązania klawiatury, z trybami Vim, Emacs i Sublime Text w standardzie. Autouzupełnianie i debugowanie w Go są nadal eksperymentalne, ale podświetlanie składni, panel uruchamiania, widok konspektu i linting są w pełni obsługiwane.

CodeEnv to również wielojęzyczne IDE oparte na chmurze. Istnieje obraz środowiska podstawowego Go dla środowisk prywatnych, a także obraz środowiska publicznego Go. Każde środowisko składa się z systemu plików, prostego edytora kodu z podświetlaniem składni oraz okna terminala. Obecnie dostępnych jest osiem opcji obrazu podstawowego i sześć opcji obrazu zaplecza.

Wide to internetowe środowisko IDE dla zespołów napisane w języku programowania Go i dla niego. Wykorzystuje edytor programowania tematycznego oparty na CodeMirror z podświetlaniem składni wspomaganym przez gocode, autouzupełnianiem, formatowaniem kodu i współpracą w czasie rzeczywistym. Szeroki wymienia LiteIDE jako zależność.

Gogland

JetBrains Gogland, obecnie we wczesnej wersji zapoznawczej, wydaje się być najbardziej kompletnym dostępnym środowiskiem Go IDE, chociaż nie zostało jeszcze wydane komercyjnie. Zintegrowany debugger, analiza pokrycia i uruchomienie testów znacznie ułatwiają odróżnienie go od zwykłych edytorów, które mają kilka integracji narzędzi.

Na poniższym zrzucie ekranu, gdzie używam Goglanda do zbadania części kodu źródłowego projektu w języku Go, możesz zobaczyć kilka funkcji edycji Gogland, w tym drzewo projektu, wskazówkę inspekcyjną (żarówkę), podświetlanie punktu wyjścia i szybkie przeglądanie za pomocą pasek nawigacji po prawej stronie (pole kodu z numerami wierszy nie w kolejności). Więcej zrzutów ekranu pokazujących, co potrafi Gogland, odsyłam do przewodnika po funkcjach JetBrains.

Gogland korzysta z tego samego ekosystemu wtyczek JetBrains, co IntelliJ IDEA i WebStorm, i zawiera już wiele istotnych funkcji odziedziczonych po tych produktach. Na przykład, możesz użyć Goglanda do pracy z HTML oraz językami i frameworkami frontonu, dokładnie tak jak WebStorm. Gogland umożliwia także pracę z bazami danych SQL, takimi jak IntelliJ IDEA i DataGrip. Jeśli chcesz połączyć obsługę Node.js z kodowaniem w Go lub potrzebujesz wsparcia Subversion oprócz integracji z Git, wystarczy dodać wtyczki.

Visual Studio Code

Visual Studio Code z wtyczką vscode-go to fajny edytor Go, który działa dobrze i ma dobrą integrację z Git. Visual Studio Code wymaga aktualizacji i ponownego uruchomienia co najmniej raz w miesiącu, ale rzadko działa wolno podczas edycji. Na poniższym zrzucie ekranu widzimy eksplorator po lewej stronie, instalację narzędzi Go w prawym dolnym rogu i edycję kodu w prawym górnym rogu.

Narzędzia Go włączają wtyczkę vscode-go, która zapewnia wiele funkcji edycji i sprawdzania kodu. Obejmują one listy uzupełnień (używanie gocode), pomoc dotyczącą podpisów (używanie gogetdoclub godefplus godoc), fragmenty, szybkie informacje (używanie gogetdoclub godefplus godoc), przechodzenie do definicji (używanie gogetdoclub godefplus godoc), znajdowanie odniesień (używanie guru), konspekt pliku (używanie go-outline), wyszukiwanie symboli w obszarze roboczym (używając go-symbols), zmień nazwę (używając gorename), buduj przy zapisywaniu (używając go buildi go test), lint-przy zapisie (używając golintlub gometalinter), formatuj (używając goreturnslub goimportslub gofmt), generuj szkielet testów jednostkowych (używając gotests), dodaj import (używając gopkgs), i częściowo zaimplementowano debugowanie (przy użyciudelve).

To bardzo dużo przydatnych funkcji, chociaż nie tak dużo, jak w Gogland IDE. Prezentacja ekranu w pliku readme vscode-go dobrze pokazuje, jak działa większość funkcji.

Chmura9

Z trzech chmurowych IDE, które obsługują Go, obecnie najciekawszym wydaje się być Cloud9. Ma najbardziej funkcjonalny edytor programowania z trzech i oprócz Go obsługuje około 17 języków. Chociaż uzupełnianie kodu w języku Go jest oznaczone jako eksperymentalne, okazało się, że działa całkiem dobrze i nie powodowało zbyt wielu opóźnień w pisaniu.

Edytor Ace Cloud9 obsługuje obecnie podświetlanie składni dla ponad 100 języków programowania. Liczba 17 powyżej dotyczy języków, które mają również inne wsparcie, takie jak uruchamianie kodu, linting, tworzenie konspektu, uzupełnianie kodu i debugowanie.

Obszary robocze Cloud9 działają obecnie pod kontrolą Ubuntu 14.04 i Go 1.7.3. Możesz zaktualizować swoją instalację Go z powłoki Bash (patrz dół zrzutu ekranu), a także uruchomić Go i inne programy z Bash.

Jak widzieliśmy, masz wiele możliwości wyboru środowiska programowania dla rozwoju Go. Natomiast wybrałem Gogland jak najlepiej full-featured Go IDE, Visual Studio Code z vscode-go za najlepszy edytor Go i Cloud9 jako najlepszy Go cloud IDE dla mnie , istnieje ponad 30 innych możliwości. Biorąc pod uwagę, jak osobisty może być wybór środowisk programistycznych, powinieneś wypróbować kilka i sprawdzić, które najlepiej odpowiadają Twoim potrzebom i preferencjom.