A legjobb Go nyelvű IDE-k és szerkesztők

A Google Go nyelvét, azaz a Golangot nemrég a Tiobe a 2016-os év programozási nyelvének választotta, mivel népszerűsége az év során gyorsan nőtt, több mint kétszeresére a második helyezett Darthoz és Perlhez képest. A Tiobe nyelvindexe a “képzett mérnökök száma világszerte, a tanfolyamok és a harmadik féltől származó gyártók száma” alapján készül, több keresőmotor eredményeit felhasználva.”

A népszerűség ekkora növekedése magával hozza a programozási nyelv fejlesztőeszközei iránti fokozott érdeklődést is. Mivel a Go nyelvet nyílt forráskódú formában terjesztik, fordítókkal, eszközökkel és könyvtárakkal együtt, a programozóknak már csak a Go-t ismerő szerkesztő környezeteket kell maguknak megtalálniuk, legyenek azok egyszerű szerkesztők vagy integrált fejlesztőkörnyezetek (IDE-k), helyben vagy a felhőben hosztoltak.

Ezért a cikkért megpróbáltam átnézni az összes elérhető Go-t ismerő szerkesztő környezetet, és lenullázni azokat, amelyek érdemesnek tűnnek. A Go IDE-k és bővítmények hivatalos listájából indultam ki, és a listán szereplő nagyjából 35 tételből szűkítettem le azokat, amelyek megérhetnek egy próbát. Az egyes kategóriákban talált hasznos termékek gyors összefoglalásával kezdem, és a végén pedig a legjobb választásaimat veszem górcső alá.

Megjegyzem, hogy a Go nyelv fejlesztése jellemzően a Go fejlesztői munkaterület gyökerére beállított GOPATH változóra támaszkodik. Ez problémát jelenthet a GUI alkalmazások, például a szerkesztők esetében, amelyek nem mindig tartják tiszteletben a környezeti beállításokat.

Több mint egy tucat Go nyelvi eszköz van, amelyeket a go get paranccsal telepíthetünk a GOPATH mappa alatti könyvtárakba, miután maga a Go telepítve van. Az általam kiértékelt szerkesztők közül sokan használnak egy vagy több ilyen eszközt.

Go IDE-k

Meglepően sok IDE támogatja a Go nyelvet. A “támogatás” jelentése azonban változó. Számomra négy IDE emelkedett ki: Gogland, Eclipse a goclipse-szel, LiteIDE és Komodo IDE.

A magas szinten a JetBrains által készített Gogland intelligens kiegészítéseket, ellenőrzéseket és gyors javításokat, egyszerű refaktorálást, gyors navigációt, gyors felugró ablakokat, néhány nagyon alapvető kódgenerálást, rekurzív hívásfelismerést, kifejezés típus felugró ablakokat, kilépési pont kiemelést, használatkeresést, kódformázást, szemantikus kiemelést és paraméter-súgásokat kínál a szerkesztőjében. Igen, ez rengeteg funkció egy fiatal nyelv szerkesztéséhez. A Gogland további jellemzői közé tartozik az integrált hibakereső, a lefedettségi elemzés, a tesztek futtatása, a Go eszközök futtatására szolgáló menü, valamint néhány nem Go-specifikus funkció, amelyek hasonlóak a JetBrains más termékeiben, például az IntelliJ IDEA-ban találhatóakhoz. A Gogland több GOPATH-beállítást is képes kezelni, ahelyett, hogy kizárólag a rendszer GOPATH környezetére támaszkodna.

A Gogland jelenleg korai hozzáférésű termékként ingyenesen elérhető. Valószínűleg a JetBrains más termékeihez hasonló árú lesz idővel. Várhatóan éves előfizetéssel lesz elérhető akár önmagában, akár a JetBrains többi eszközével együtt, akadémikusok és nyílt forráskódú közreműködők számára kedvezményekkel.

A valamivel alacsonyabb szintű komplexitású Eclipse with goclipse a szerkesztőjében szintaxis-kiemelést, automatikus behúzást és vázlatolást biztosít, mindezt az Eclipse más nyelvi moduljainak, például a Java-nak a szellemében. Az integrációk közé tartozik a hibakeresés a GDB-vel, a definíciókeresés a guru és a godef Go eszközökkel, valamint az automatikus kitöltés a gocode eszközzel. Az Eclipse és a goclipse plugin ingyenes és nyílt forráskódú.

A LiteIDE szerkesztőjében csomagböngésző, osztálynézet és -vázlat, dokumentumböngésző, kódnavigáció, felhasználások keresése és kódrefaktálás található. Az integrációk gocode-támogatást, GOPATH API-indexet, hibakeresést a GDB-vel és Go játszóteret tartalmaznak. A LiteIDE ingyenes és nyílt forráskódú.

A Komodo IDE támogatja a Go szintaxis ellenőrzését (linting) és kiemelését, a szintaxis színezését, a kód összehajtását és más termelékenységnövelő funkciókat. A Komodo támogatja a Go kódintelligenciát is kiegészítésekkel, hívási tippekkel, vázlatokkal és go-meghatározással. A refaktorálás magában foglalja a változók és osztálytagok átnevezését és a metódus-kivonást. A Komodo támogatja a Go egységtesztelést, a kód együttműködését, a verzióvezérlést, az interaktív héjakat és a kódprofilozást. A Komodo fő hírneve, hogy támogatja az összes jelentős nyílt forráskódú nyelvet, beleértve a Pythont, a Node.js-t, a Rubyt, a Go-t, a Perlt és a Tcl-t.

A Komodo IDE kereskedelmi termék. A Komodo Editor, amely az IDE képességeinek egy részhalmazával rendelkezik, ingyenes.

Go szerkesztők

Míg egy IDE minden olyan funkciót biztosíthat, amit a kódfejlesztéshez szeretnénk, az IDE-ket gyakran “nehézkesnek” érezhetjük. Más szóval, sokáig tarthat az indításuk, sok memóriát használnak, és néha úgy érzed, hogy nem reagálnak a kód beírása közben, mert túl sok mindent csinálnak a háttérben. A kódszerkesztők néha előnyösebbek lehetnek, különösen rövid munkamenetek esetén, amennyiben nem zavar, hogy a fordításhoz külön parancssori shell ablakra kell váltani.

A pluginok néha IDE-szerű funkciókat adhatnak a kódszerkesztőkhöz. Ez általában jó, amíg a bővítmények naprakészen tartásával járó időszakos többletköltségek és a háttérben futó folyamatok állandó többletköltségei nem lassítják a szerkesztést.

Atom, a Brackets és a Visual Studio Code az a három szerkesztő, amely számomra kiemelkedett a Go nyelvvel való munkához. Mindegyik ingyenes és nyílt forráskódú. Mindazonáltal a BBEdit, az Emacs, a Notepad++, a Sublime Text, a TextMate és a Vim mind integrálható Go nyelvi bővítményekkel, és mindegyiknek megvannak a maga hívei. Az Emacs, a Notepad++ és a Vim ingyenes és nyílt forráskódú. A BBEdit kereskedelmi, de kistestvére, a TextWrangler ingyenes.

A GitHubról származó Atom szerkesztőhöz a language-go csomag jár, amely támogatja a Go nyelvtant és a snippeteket. A Go nyelvhez további csomagok további funkciókat biztosítanak. A go-plus például számos standard Go eszközzel integrálódik (automatikus kitöltés, formázás, linting, tesztelés), hogy IDE-szerű környezetet biztosítson, a go-debug pedig a delve debuggerrel integrálódik.

A Brackets szerkesztő az Adobe-tól számos közösségi bővítményt tartalmaz a Go támogatására. Ezek közé tartozik a Go-IDE, amely a gocode-t használja az automatikus kiegészítéshez; a Go-Syntax, amely a CodeMirror-t használja a szintaxis kiemeléshez; és az Improved Go Formatter, amely a gofmt-t használja a kód formázásához és a goimports-t az importok kezeléséhez.

A Visual Studio Code alapból támogatja a Go szintaxis kiemelést. A további funkciókat a vscode-go plugin biztosítja, amely több mint egy tucat szabványos Go eszközzel integrálódik. Ha nincs beállítva a GOPATH, a bővítmény kéri, hogy állítsa be, amint megpróbál egy Go nyelvi fájlt szerkeszteni; beállíthatja a projekt és/vagy a rendszerkörnyezet számára. Ha nincsenek telepítve a Go eszközök, a bővítmény kérni fogja, hogy telepítse őket a GOPATH által meghatározott szabványos helyekre.

A felhőalapú Go IDE-k

A felhőalapú IDE-k viszonylag új keletű innovációnak számítanak a szoftverfejlesztés területén. Két eredendő előnyük van: Nem igényelnek helyi beállítást egy kompatibilis böngészőn kívül, és lehetővé tehetik a több fejlesztő általi szerkesztést, ha erre tervezték őket. A felhőalapú IDE-k hátránya, hogy gyakran szenvednek a késleltetéstől, ami a fejlesztőket az őrületbe kergetheti, és megzavarhatja a “flow”-t, amely lehetővé teszi a programozók számára, hogy a legtermékenyebbek legyenek. Jelenleg három felhőalapú IDE támogatja a Go nyelvet:

A Cloud9 egy többnyelvű felhőalapú IDE, amely alapból támogatja a Go nyelvet. Csatlakozik a GitHub, a Bitbucket és a Google Cloud Platform adattárakhoz, valamint megosztott és klónozható munkaterületekkel rendelkezik. A kiterjedt funkciókészlettel és online fájlrendszerrel rendelkező kódszerkesztő mellett MySQL és más adatbázisokkal, terminál- és azonnali ablakokkal, valamint testreszabható billentyűzetkötésekkel rendelkezik, a Vim, Emacs és Sublime Text üzemmódok pedig alapfelszereltségként járnak hozzá. Az automatikus kitöltés és a hibakeresés a Go számára még kísérleti stádiumban van, de a szintaxis-kiemelés, a futtatási panel, a vázlatnézet és a linting teljes mértékben támogatott.

A CodeEnv egy többnyelvű felhőalapú IDE is. Van egy Go alap környezetkép a privát környezetekhez, valamint egy nyilvános Go környezetkép. Mindegyik környezet egy fájlrendszerből, egy egyszerű kódszerkesztőből szintaxis-kiemeléssel és egy terminálablakból áll. Jelenleg nyolcféle alapkép és hatféle háttértárkép közül lehet választani.

A Wide egy webalapú IDE csapatok számára, amely a Go programozási nyelven és a Go programozási nyelvhez íródott. CodeMirror-alapú tematikus programszerkesztőt használ, gocode-alapú szintaxis-kiemeléssel, automatikus kitöltéssel, kódformázással és valós idejű együttműködéssel. A Wide függőségként említi a LiteIDE-t.

Gogland

A jelenleg korai előzetes állapotban lévő JetBrains Gogland a legteljesebb Go IDE-nek tűnik, bár kereskedelmi forgalomba még nem került. Integrált hibakeresője, lefedettség-elemzése és tesztfuttatása nagyban megkülönbözteti a megszokott, néhány eszköz integrációjával rendelkező szerkesztőprogramoktól.

A lenti képernyőképen, ahol a Goglandot a Go nyelvi projekt néhány forráskódjának vizsgálatára használom, számos Gogland-szerkesztési funkció látható, köztük a projektfa, az ellenőrzési súgó (a villanykörte), a kilépési pontok kiemelése és a gyors böngészés a jobb oldali navigációs sáv segítségével (a kóddoboz a sorszámozott sorszámokkal rendezetlenül). További képernyőképekért, amelyek megmutatják, mit tud a Gogland, a JetBrains szolgáltatási útmutatójára hivatkozom.

InfoWorld

A Gogland ugyanazt a JetBrains plugin ökoszisztémát használja, mint az IntelliJ IDEA és a WebStorm, és már számos releváns, ezektől a termékektől örökölt funkciót tartalmaz. A Gogland például a HTML és a front-end nyelvekkel és keretrendszerekkel való munkára is használható, pontosan úgy, mint a WebStorm. A Gogland lehetővé teszi az SQL-adatbázisokkal való munkát is, akárcsak az IntelliJ IDEA és a DataGrip. Ha a Node.js támogatást kombinálni szeretné a Go kódolással, vagy a Git integráció mellett Subversion támogatásra is szüksége van, akkor a bővítmények hozzáadásával gyorsan megoldható.

Visual Studio Code

A Visual Studio Code a vscode-go bővítménnyel egy szép Go szerkesztő, amely jól működik és jó Git integrációval rendelkezik. A Visual Studio Code legalább havonta frissítéseket és újraindítást igényel, de szerkesztés közben ritkán érezzük lassúnak. In the screenshot below we see the explorer on the left, Go tools installation at the bottom right, and code editing at the top right.

InfoWorld

The Go tools enable the vscode-go plugin, which supplies many editing and code checking features. These include completion lists (using gocode), signature help (using gogetdoc or godef plus godoc), snippets, quick info (using gogetdoc or godef plus godoc), go to definition (using gogetdoc or godef plus godoc), find references (using guru), file outline (using go-outline), workspace symbol search (using go-symbols), rename (using gorename), build-on-save (go build és go test használatával), lint-on-save (golint vagy gometalinter használatával), formázás (goreturns vagy goimports vagy gofmt használatával), egységtesztek vázának generálása (gotests használatával), importok hozzáadása (a gopkgs használatával), és részben megvalósított hibakeresés (a delve használatával).

Ez egy csomó hasznos funkció, bár nem annyi, mint a Gogland IDE-ben. A vscode-go readme fájlban található screencast jól bemutatja, hogyan működik a legtöbb funkció.

Cloud9

A három Go-t támogató felhő IDE közül jelenleg a Cloud9 tűnik a legérdekesebbnek. A három közül ez rendelkezik a legfunkcionálisabb programszerkesztővel, és a Go mellett körülbelül 17 nyelvet támogat. Bár a Go nyelvi kódkiegészítője kísérleti jelzést kapott, szerintem elég jól működik, és nem okozott sok késedelmet a gépelésben.

InfoWorld

A Cloud9 Ace szerkesztője jelenleg több mint 100 programozási nyelv szintaxis-kiemelését támogatja. A fenti 17-es szám azokra a nyelvekre vonatkozik, amelyek egyéb támogatással is rendelkeznek, mint például a kód futtatása, linting, outlining, code completion és debugging.”

A Cloud9 munkaterületei jelenleg Ubuntu 14.04-et és Go 1.7.3-at futtatnak. A Go telepítését a Bash héjból frissítheti (lásd a képernyőkép alján), valamint a Go és más programokat is futtathatja a Bash-ből.

Amint láttuk, a Go fejlesztéséhez sokféle programozási környezet közül választhat. Bár én a Goglandot választottam a legjobb teljes funkcionalitású Go IDE-nek, a Visual Studio Code-t a vscode-go-val a legjobb Go szerkesztőnek, és a Cloud9-et a legjobb Go felhő IDE-nek számomra, több mint 30 másik lehetőség is van. Tekintettel arra, hogy mennyire személyes lehet a szoftverfejlesztő környezetek kiválasztása, érdemes kipróbálni néhányat, és megnézni, melyik felel meg leginkább az Ön igényeinek és preferenciáinak.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.