I migliori IDE ed editor di lingue Go

Il linguaggio Go di Google, alias Golang, è stato recentemente scelto come linguaggio di programmazione di Tiobe del 2016, in base alla sua rapida crescita di popolarità nel corso dell'anno, più del doppio di quella dei secondi classificati Dart e Perl. L'indice linguistico di Tiobe si basa sul "numero di ingegneri qualificati in tutto il mondo, corsi e fornitori di terze parti", utilizzando i risultati di più motori di ricerca.

Quella crescita di popolarità porta con sé un crescente interesse per gli strumenti di sviluppo per il linguaggio di programmazione. Poiché il linguaggio Go è distribuito in forma open source completo di compilatori, strumenti e librerie, ciò che resta ai programmatori di trovare da soli sono ambienti di editing compatibili con Go, che siano editor diretti o ambienti di sviluppo integrati (IDE), ospitati localmente o nel nube.

Per questo articolo ho cercato di esaminare tutti gli ambienti di editing compatibili con Go disponibili e di concentrarmi su quelli che sembrano utili. Ho iniziato con l'elenco ufficiale di IDE e plug-in per Go e ho vagliato i circa 35 elementi nell'elenco fino a quelli che potrebbero meritare una prova. Inizierò con una rapida carrellata dei prodotti utili che ho trovato in ciascuna categoria e finirò con uno sguardo ravvicinato alle mie scelte migliori.

Nota che lo sviluppo del linguaggio Go si basa in genere sulla variabile GOPATH impostata sulla radice dell'area di lavoro di sviluppo Go. Questo può essere un problema per le applicazioni GUI come gli editor, che non sempre rispettano le impostazioni dell'ambiente.

Ci sono più di una dozzina di strumenti di lingua Go che puoi installare nelle directory sotto la cartella GOPATH con il go getcomando, una volta installato Go stesso. Molti degli editor che ho valutato utilizzano uno o più di questi strumenti.

Passa agli IDE

C'è un numero sorprendente di IDE che supportano Go. Tuttavia, il significato di "supporto" varia. Quattro IDE si sono distinti per me: Gogland, Eclipse con goclipse, LiteIDE e Komodo IDE.

Nella fascia alta, Gogland di JetBrains offre completamenti intelligenti, ispezioni e correzioni rapide, refactoring semplice, navigazione rapida, popup rapidi, generazione di codice molto semplice, rilevamento delle chiamate ricorsive, popup del tipo di espressione, evidenziazione del punto di uscita, rilevamento dell'utilizzo, formattazione del codice, evidenziazione semantica e suggerimenti sui parametri nel suo editor. Sì, sono molte funzionalità per modificare una lingua giovane. Altre funzionalità di Gogland includono un debugger integrato, analisi della copertura, esecuzione di test, un menu per l'esecuzione di strumenti Go e alcune funzionalità non specifiche di Go che sono simili a quelle che troverai in altri prodotti JetBrains, come IntelliJ IDEA. Gogland può gestire più impostazioni GOPATH, piuttosto che fare affidamento esclusivamente sull'ambiente GOPATH del sistema.

Gogland è attualmente disponibile gratuitamente come prodotto ad accesso anticipato. Alla fine sarà probabilmente valutato sulla falsariga di altri prodotti JetBrains. Aspettatevi che sia disponibile tramite abbonamento annuale da solo o in bundle con il resto degli strumenti di JetBrains, con sconti per accademici e collaboratori open source.

A un livello di complessità leggermente inferiore, Eclipse con goclipse fornisce l'evidenziazione della sintassi, il rientro automatico e la struttura nel suo editor, il tutto nello spirito di altri moduli del linguaggio Eclipse come Java. Le integrazioni includono il debug con GDB, la ricerca di definizioni con gli strumenti guru e godef Go e il completamento automatico con lo strumento gocode. Eclipse e il plug-in goclipse sono gratuiti e open source.

LiteIDE mette in mostra un browser di pacchetti, una vista e una struttura per classi, browser di documenti, navigazione nel codice, trova usi e refactoring del codice nel suo editor. Le integrazioni includono supporto gocode, indice API GOPATH, debug con GDB e un playground Go. LiteIDE è gratuito e open source.

L'IDE di Komodo supporta il controllo della sintassi (linting) e l'evidenziazione di Go, la colorazione della sintassi, la piegatura del codice e altre funzionalità di miglioramento della produttività. Komodo supporta anche l'intelligenza del codice Go con completamenti, suggerimenti per le chiamate, schemi e definizione. Il refactoring include la ridenominazione di variabili e membri di classi e l'estrazione di metodi. Komodo supporta Go unit test, collaborazione sul codice, controllo della versione, shell interattive e profilazione del codice. La principale pretesa di fama di Komodo è che supporta tutti i principali linguaggi open source, inclusi Python, Node.js, Ruby, Go, Perl e Tcl.

Komodo IDE è un prodotto commerciale. Komodo Editor, che ha un sottoinsieme delle funzionalità dell'IDE, è gratuito.

Vai editori

Sebbene un IDE possa fornire tutte le funzionalità desiderate per lo sviluppo di codice, gli IDE possono spesso sembrare "pesanti". In altre parole, possono richiedere molto tempo per avviarsi, utilizzano molta memoria e talvolta non rispondono mentre digiti il ​​codice perché stanno facendo troppo in background. Gli editor di codice a volte possono essere preferibili, soprattutto per sessioni brevi, purché non si sia disturbati dal dover passare a una finestra della shell della riga di comando separata per la compilazione.

I plugin a volte possono aggiungere funzionalità simili a IDE agli editor di codice. Di solito è un bene, a patto che il sovraccarico periodico di mantenere aggiornati i plugin e il sovraccarico costante dei plugin che eseguono processi in background non rallentino la modifica.

Atom, Brackets e Visual Studio Code sono i tre editor che si sono distinti per me per aver lavorato nella lingua Go. Tutti sono gratuiti e open source. Tuttavia, BBEdit, Emacs, Notepad ++, Sublime Text, TextMate e Vim si integrano tutti con i plugin del linguaggio Go e tutti hanno i loro sostenitori. Emacs, Notepad ++ e Vim sono gratuiti e open source. BBEdit è commerciale, ma il suo fratellino TextWrangler è gratuito.

L'editor Atom di GitHub viene fornito con il pacchetto language-go, che supporta la grammatica e gli snippet di Go. Pacchetti aggiuntivi per Go portano più funzionalità. Ad esempio, go-plus si integra con molti strumenti Go standard (per completamento automatico, formattazione, linting, test) per fornire un ambiente simile a IDE e go-debug si integra con il debugger delve.

L'editor Brackets di Adobe ha diverse estensioni della community per il supporto di Go. Questi includono Go-IDE, che utilizza gocodeper il completamento automatico; Go-Syntax, che utilizza CodeMirror per l'evidenziazione della sintassi; e Go Formatter migliorato, che utilizza gofmtper formattare il codice e goimportsgestire le importazioni.

Visual Studio Code supporta l'evidenziazione della sintassi di Go immediatamente. Funzionalità aggiuntive sono fornite dal plug-in vscode-go, che si integra con più di una dozzina di strumenti Go standard. Se non hai il tuo GOPATH impostato, il plugin ti chiederà di impostarlo non appena provi a modificare un file di lingua Go; è possibile impostarlo per il progetto e / o l'ambiente di sistema. Se non hai installato gli strumenti Go, il plugin chiederà di installarli nelle posizioni standard determinate dal tuo GOPATH.

Go IDE basati su cloud

Gli IDE basati su cloud sono un'innovazione relativamente recente nello spazio di sviluppo software. Hanno due vantaggi intrinseci: non richiedono alcuna configurazione locale diversa da un browser compatibile e possono consentire la modifica da parte di più sviluppatori se progettati per questo. Il lato negativo è che gli IDE basati su cloud spesso soffrono di lag, che può far impazzire gli sviluppatori e interferire con il "flusso" che consente ai programmatori di essere più produttivi. Tre IDE basati su cloud attualmente supportano la lingua Go: Cloud9, CodeEnv e Wide.

Cloud9 è un IDE multilingua basato su cloud che supporta Go out of the box. Si connette ai repository GitHub, Bitbucket e Google Cloud Platform e dispone di aree di lavoro che puoi condividere e clonare. Oltre a un editor di codice con un ampio set di funzionalità e un file system online, ha MySQL e altri database, terminale e finestre immediate e associazioni di tastiera personalizzabili, con le modalità Vim, Emacs e Sublime Text fornite come standard. Il completamento automatico e il debug per Go sono ancora sperimentali, ma l'evidenziazione della sintassi, il pannello di esecuzione, la vista struttura e il linting sono tutti completamente supportati.

CodeEnv è anche un IDE multilingua basato su cloud. Esiste un'immagine di ambiente di base Go per ambienti privati, nonché un'immagine di ambiente Go pubblica. Ogni ambiente è costituito da un file system, un semplice editor di codice con evidenziazione della sintassi e una finestra di terminale. Attualmente ci sono otto scelte di immagine di base e sei scelte di immagine di back-end.

Wide è un IDE basato sul web per team scritto in e per il linguaggio di programmazione Go. Utilizza un editor di programmazione a tema basato su CodeMirror con evidenziazione della sintassi assistita da gocode, completamento automatico, formattazione del codice e collaborazione in tempo reale. Wide cita LiteIDE come dipendenza.

Gogland

JetBrains Gogland, attualmente in uno stato di anteprima iniziale, sembra essere l'IDE Go più completo disponibile, sebbene non sia ancora stato rilasciato in commercio. Il suo debugger integrato, l'analisi della copertura e l'esecuzione dei test fanno molto per distinguerlo dagli editor ordinari che hanno alcune integrazioni di strumenti.

Nello screenshot qui sotto, dove utilizzo Gogland per esaminare parte del codice sorgente del progetto in lingua Go, puoi vedere diverse funzionalità di modifica di Gogland, tra cui l'albero del progetto, un suggerimento di ispezione (la lampadina), l'evidenziazione del punto di uscita e la navigazione rapida utilizzando la barra di navigazione a destra (la casella del codice con i numeri di riga fuori ordine). Per ulteriori screenshot che mostrano cosa può fare Gogland, ti rimando alla guida alle funzionalità di JetBrains.

Gogland utilizza lo stesso ecosistema di plug-in JetBrains di IntelliJ IDEA e WebStorm e include già molte funzionalità rilevanti ereditate da quei prodotti. Ad esempio, puoi utilizzare Gogland per lavorare con HTML e linguaggi e framework front-end, esattamente come WebStorm. Gogland ti consente anche di lavorare con database SQL, come IntelliJ IDEA e DataGrip. Se hai bisogno di combinare il supporto di Node.js con la tua codifica Go o hai bisogno del supporto di Subversion oltre all'integrazione di Git, è una questione rapida di aggiungere i plugin.

Codice di Visual Studio

Visual Studio Code con il plug-in vscode-go è un bel editor Go che funziona bene e ha una buona integrazione con Git. Visual Studio Code necessita di aggiornamenti e riavvio almeno mensilmente, ma raramente si sente lento durante la modifica. Nello screenshot qui sotto vediamo l'explorer a sinistra, l'installazione degli strumenti Go in basso a destra e la modifica del codice in alto a destra.

Gli strumenti Go abilitano il plug-in vscode-go, che fornisce molte funzionalità di modifica e controllo del codice. Questi includono elenchi di completamento (usando gocode), guida alla firma (usando gogetdoco godefpiù godoc), frammenti, informazioni rapide (usando gogetdoco godefpiù godoc), vai alla definizione (usando gogetdoco godefpiù godoc), trova riferimenti (usando guru), struttura del file (usando go-outline), ricerca di simboli nell'area di lavoro (usando go-symbols), rinomina (usando gorename), build-on-save (usando go builde go test), lint-on-save (usando golinto gometalinter), formatta (usando goreturnso goimportso gofmt), genera scheletro di unit test (usando gotests), aggiungi importazioni (usando gopkgs), e debug parzialmente implementato (usandodelve).

È un sacco di funzionalità utili, anche se non tanto quanto l'IDE di Gogland. Lo screencast nel file readme di vscode-go fa un buon lavoro nel dimostrare come funzionano la maggior parte delle funzionalità.

Nuvola 9

Dei tre IDE cloud che supportano Go, il più interessante attualmente sembra essere Cloud9. Ha l'editor di programmazione più funzionale dei tre e supporta circa 17 lingue oltre a Go. Sebbene il completamento del codice della lingua Go sia contrassegnato come sperimentale, ho scoperto che funzionava abbastanza bene e non ha causato molti ritardi nella digitazione.

L'editor Ace di Cloud9 attualmente supporta l'evidenziazione della sintassi per oltre 100 linguaggi di programmazione. Il numero 17 sopra è per le lingue che hanno anche altro supporto, come l'esecuzione del codice, il linting, la struttura, il completamento del codice e il debug.

Le aree di lavoro Cloud9 attualmente eseguono Ubuntu 14.04 e Go 1.7.3. Puoi aggiornare la tua installazione di Go dalla shell Bash (vedi la parte inferiore dello screenshot), nonché eseguire Go e altri programmi da Bash.

Come abbiamo visto, hai molte scelte possibili di ambiente di programmazione per lo sviluppo di Go. Anche se ho scelto Gogland come miglior IDE Go completo, Visual Studio Code con vscode-go come miglior editor Go e Cloud9 come miglior IDE Go cloud per me , ci sono più di 30 altre possibilità. Dato quanto può essere personale la scelta degli ambienti di sviluppo software, dovresti provarne alcuni e vedere quale si adatta meglio alle tue esigenze e preferenze.