Najbolji IDE-ovi i urednici na Go jeziku

Googleov jezik Go, zvan Golang, nedavno je izabran za Tiobeov programski jezik 2016. godine, na temelju brzog rasta njegove popularnosti tijekom godine, više nego dvostruko više od drugoplasiranih Dart-a i Perla. Tiobeov indeks jezika temelji se na "broju kvalificiranih inženjera širom svijeta, tečajeva i nezavisnih dobavljača", koristeći rezultate više pretraživača.

Toliki rast popularnosti nosi sa sobom povećan interes za razvojne alate za programski jezik. Budući da se jezik Go distribuira u obliku otvorenog koda, zajedno s kompajlerima, alatima i bibliotekama, programeri mogu sami pronaći okruženja za uređivanje s osvještavanjem, bilo da se radi o direktnim uređivačima ili integriranim razvojnim okruženjima (IDE), hostiranim lokalno ili u oblak.

U ovom sam članku pokušao pogledati sva dostupna uređivačka okruženja svjesna Go i uključiti ona koja se čine vrijednima. Počeo sam sa službenim popisom IDE-a i dodataka za Go i razvio oko 35 stavki s popisa, sve do onih koje bi mogle zaslužiti suđenje. Započet ću s brzim pregledom korisnih proizvoda koje sam pronašao u svakoj kategoriji, a na kraju ću detaljno pogledati svoje najbolje odabire.

Imajte na umu da se razvoj jezika Go obično oslanja na varijablu GOPATH postavljenu kao korijen vašeg radnog prostora za razvoj programa Go. To može biti problem za GUI aplikacije kao što su uređivači koji ne poštuju uvijek postavke okoline.

Postoji više od desetak alata Go jezika koje možete go getnaredbom instalirati u direktorije pod mapom GOPATH nakon što se sam Go instalira. Mnogi urednici koje sam procijenio koriste jedan ili više ovih alata.

Idi IDE-i

Iznenađujući je broj IDE-a koji podržavaju Go. Međutim, značenje "podrške" varira. Četiri IDE-a su mi se istaknula: Gogland, Eclipse s goclipse, LiteIDE i Komodo IDE.

Na vrhu, Gogland iz JetBrains-a sadrži pametna dovršavanja, inspekcije i brze popravke, jednostavno refaktoriranje, brzu navigaciju, brze skočne prozore, nekoliko vrlo osnovnih generiranja koda, rekurzivno otkrivanje poziva, skočne prozore tipa izraza, isticanje izlazne točke, pronalaženje upotrebe, oblikovanje koda semantičko isticanje i savjeti za parametre u njegovom uređivaču. Da, to je velika funkcionalnost za uređivanje mladog jezika. Ostale Goglandove značajke uključuju integrirani program za ispravljanje pogrešaka, analizu pokrivenosti, probno pokretanje, izbornik za pokretanje alata Go i neke nespecifične funkcije koje su slične onima koje ćete naći u drugim JetBrains proizvodima, poput IntelliJ IDEA. Gogland može upravljati s više postavki GOPATH-a, umjesto da se oslanja isključivo na sistemsko GOPATH okruženje.

Gogland je trenutno dostupan besplatno kao proizvod s ranim pristupom. Vjerojatno će na kraju imati cijenu poput ostalih JetBrains proizvoda. Očekujte da će biti dostupan putem godišnje pretplate, bilo samostalno ili u paketu s ostalim JetBrainsovim alatima, uz popuste za akademike i suradnike otvorenog koda.

Na nešto nižoj razini složenosti, Eclipse s goclipse u svom uređivaču nudi isticanje sintakse, automatsko uvlačenje i ocrtavanje, a sve u duhu ostalih jezičnih modula Eclipse kao što je Java. Integracije uključuju otklanjanje pogrešaka s GDB-om, pronalaženje definicija s alatima guru i godef Go te automatsko dovršavanje pomoću alata gocode. Eclipse i dodatak za goclipse besplatni su i otvorenog koda.

LiteIDE se u svom uređivaču bavi preglednikom paketa, prikazom i prikazom klase, preglednikom dokumenata, navigacijom koda, pronalaženjem upotreba i refaktoriranjem koda. Integracije uključuju podršku za gocode, GOPATH API indeks, ispravljanje pogrešaka s GDB-om i igralište Go. LiteIDE je besplatan i otvoren izvor.

Komodo IDE podržava provjeru sintakse Go (povezivanje) i isticanje, bojanje sintakse, presavijanje koda i druge značajke za povećanje produktivnosti. Komodo također podržava Go code inteligenciju s dovršenjima, savjetima za pozive, obrisima i prijelazom u definiciju. Refaktoriranje uključuje preimenovanje varijabli i članova klase te izdvajanje metode. Komodo podržava Go jedinstveno testiranje, suradnju s kodom, kontrolu verzija, interaktivne ljuske i profiliranje koda. Glavna Komodoova tvrdnja o slavi je da podržava sve glavne otvorene jezike, uključujući Python, Node.js, Ruby, Go, Perl i Tcl.

Komodo IDE je komercijalni proizvod. Komodo Editor, koji ima podskup mogućnosti IDE-a, besplatan je.

Idite urednici

Iako IDE može pružiti sve funkcije koje želite za razvoj koda, IDE-ovi se često mogu osjećati "teškim". Drugim riječima, može im trebati puno vremena da se pokrenu, koriste puno memorije i ponekad se osjećaju neodgovorno dok tipkate kôd jer previše rade u pozadini. Uređivači koda ponekad mogu biti poželjni, posebno za kratke sesije, sve dok vas ne muči to što se morate prebaciti na zaseban prozor školjke naredbenog retka za sastavljanje.

Dodaci ponekad mogu dodati IDE-slične značajke uređivačima koda. To je obično dobro, sve dok povremeni troškovi redovnog održavanja dodataka i stalni troškovi dodataka koji se izvode u pozadini ne usporavaju vaše uređivanje.

Atom, Brackets i Visual Studio Code tri su me urednika koja su se istakla zbog rada na jeziku Go. Svi su besplatni i otvoreni kod. Ipak, BBEdit, Emacs, Notepad ++, Sublime Text, TextMate i Vim integriraju se s dodacima za jezik Go i svi imaju svoje zagovornike. Emacs, Notepad ++ i Vim besplatni su i otvorenog koda. BBEdit je komercijalan, ali njegov mali brat TextWrangler je besplatan.

Uređivač Atom iz GitHub isporučuje se s paketom language-go koji podržava Go gramatiku i isječke. Dodatni paketi za Go donose više funkcionalnosti. Na primjer, go-plus se integrira s mnogim standardnim Go alatima (za automatsko dovršavanje, formatiranje, povezivanje, testiranje) kako bi pružio okruženje nalik IDE-u, a go-debug se integrira s programom za otkrivanje pogrešaka.

Uređivač zagrada iz Adobe ima nekoliko proširenja zajednice za podršku Go. To uključuje Go-IDE, koji se koristi gocodeza automatsko dovršavanje; Go-Syntax, koji koristi CodeMirror za isticanje sintakse; i poboljšani Go Formatter koji se koristi gofmtza formatiranje koda i goimportsupravljanje uvozom.

Visual Studio Code podržava isticanje sintakse Go iz okvira. Dodatne značajke pruža dodatak vscode-go, koji se integrira s više od desetak standardnih Go alata. Ako nemate postavljen GOPATH, dodatak će tražiti da ga postavite čim pokušate urediti datoteku Go jezika; možete ga postaviti za projekt i / ili za okruženje sustava. Ako nemate instalirane alate Go, dodatak će ih tražiti da ih instalirate na standardna mjesta kako je određeno vašim GOPATH-om.

IDE-ovi Go-a temeljeni na oblaku

IDE-ovi zasnovani na oblaku relativno su nedavna inovacija u prostoru za razvoj softvera. Imaju dvije svojstvene prednosti: Ne zahtijevaju lokalno postavljanje osim kompatibilnog preglednika i mogu dopustiti uređivanje više razvojnih programera ako su dizajnirani za to. S negativne strane, IDE-ovi zasnovani na oblaku često pate od zaostajanja, što razvojne programere može izluđivati ​​i ometati "protok" koji omogućuje koderima da budu najproduktivniji. Tri IDE-a temeljena na oblaku trenutno podržavaju jezik Go: Cloud9, CodeEnv i Wide.

Cloud9 je višejezični IDE zasnovan na oblaku koji podržava Go out of the box. Povezuje se s spremištima GitHub, Bitbucket i Google Cloud Platform i ima radne prostore koje možete dijeliti i klonirati. Uz uređivač koda s opsežnim skupom značajki i mrežnim sustavom datoteka, on ima MySQL i druge baze podataka, terminal i prozore te prilagodljive veze na tipkovnici, s Vim, Emacs i Sublime Text načinima rada koji se isporučuju standardno. Automatsko dovršavanje i uklanjanje pogrešaka za Go i dalje su eksperimentalni, ali isticanje sintakse, ploča za pokretanje, prikaz obrisa i povezivanje u potpunosti su podržani.

CodeEnv je također višejezični IDE zasnovan na oblaku. Postoji Go osnovna slika okoline za privatna okruženja, kao i javna Go okolišna slika. Svako okruženje sastoji se od datotečnog sustava, jednostavnog uređivača koda s isticanjem sintakse i prozora terminala. Trenutno postoji osam izbora osnovne slike i šest izbora pozadinske slike.

Wide je mrežni IDE za timove koji je napisan u programskom jeziku Go i za njega. Koristi uređivač tematskih programa temeljenih na CodeMirror-u s isticanjem sintakse uz pomoć gocode-a, automatskim dovršavanjem, oblikovanjem koda i suradnjom u stvarnom vremenu. Wide navodi LiteIDE kao ovisnost.

Gogland

JetBrains Gogland, trenutno u stanju ranog pregleda, čini se najcjelovitijim Go IDE-om na raspolaganju, iako još uvijek nije komercijalno objavljen. Njegov integrirani program za pronalaženje pogrešaka, analiza pokrivenosti i probno pokretanje uvelike pomažu u razlikovanju od tekućih urednika koji imaju nekoliko integracija alata.

Na snimci zaslona u nastavku, gdje Gogland koristim za ispitivanje izvornog koda projekta Go language, možete vidjeti nekoliko značajki uređivanja Goglanda, uključujući stablo projekta, savjet za inspekciju (žarulja), isticanje izlazne točke i brzo pregledavanje pomoću navigacijska traka s desne strane (okvir koda s brojevima redaka koji nisu u redu). Za više snimaka zaslona koji pokazuju što Gogland može učiniti, uputit ću vas u JetBrainsov vodič za značajke.

Gogland koristi isti ekosustav dodataka JetBrains kao IntelliJ IDEA i WebStorm, a već uključuje mnoge relevantne značajke naslijeđene od tih proizvoda. Na primjer, Gogland možete koristiti za rad s HTML-om i prednjim jezicima i okvirima, točno kao WebStorm. Gogland vam također omogućuje rad s SQL bazama podataka, poput IntelliJ IDEA i DataGrip. Ako trebate kombinirati podršku za Node.js s vašim Go kodiranjem ili vam je potrebna subverzijska podrška uz Git integraciju, brzo je pitanje dodavanja dodataka.

Visual Studio kôd

Visual Studio Code s dodatkom vscode-go lijep je Go editor koji dobro radi i ima dobru Git integraciju. Visual Studio Code treba ažuriranja i ponovno pokretanje barem jednom mjesečno, ali se rijetko osjeća sporo tijekom uređivanja. Na snimci zaslona ispod vidimo istraživača s lijeve strane, instalaciju alata Go u donjem desnom kutu i uređivanje koda u gornjem desnom dijelu.

Alati Go omogućuju dodatak vscode-go koji pruža brojne značajke za uređivanje i provjeru koda. To uključuje popise dovršavanja (pomoću gocode), pomoć za potpis (pomoću gogetdocili godefplus godoc), isječke, brze informacije (pomoću gogetdocili godefplus godoc), idite na definiciju (pomoću gogetdocili godefplus godoc), pronađite reference (pomoću guru), obris datoteke (pomoću go-outline), pretraživanje simbola radnog prostora (koristeći go-symbols), preimenuj (koristeći gorename), nadogradi-na-spremi (koristi go buildi go test), obloži-spremi (koristi golintili gometalinter), formatiraj (koristi goreturnsili goimportsili gofmt), generiraj kostur jedinstvenih testova (koristi gotests), dodaj uvoz (koristi gopkgs), i djelomično implementirano ispravljanje pogrešaka (pomoćudelve).

To je puno korisnih funkcionalnosti, iako ne onoliko koliko imate u Gogland IDE-u. Snimak zaslona u datoteci vscode-go readme dobro pokazuje posao rada većine značajki.

Oblak 9

Od tri IDE-a u oblaku koji podržavaju Go, čini se da je trenutno najzanimljiviji Cloud9. Ima najfunkcionalniji programski uređivač od tri, a uz Go podržava i oko 17 jezika. Iako je popunjavanje koda jezika Go označeno kao eksperimentalno, otkrio sam da je radio prilično dobro i da nije uzrokovao mnogo kašnjenja u tipkanju.

Uređivač Acea Cloud9 trenutno podržava isticanje sintakse za više od 100 programskih jezika. Gore navedeni broj 17 odnosi se na jezike koji imaju i drugu podršku, poput izvođenja koda, povezivanja, ocrtavanja, dovršenja koda i ispravljanja pogrešaka.

Cloud9 radni prostori trenutno izvode Ubuntu 14.04 i Go 1.7.3. Instalaciju Go možete ažurirati iz Bash ljuske (vidi dno snimke zaslona), kao i pokrenuti Go i druge programe s Bash-a.

Kao što smo vidjeli, imate mnogo mogućih izbora programskog okruženja za Go razvoj. Iako sam Gogland izabrao za najbolje cjelovite Go IDE-ove, Visual Studio Code s vscode-go kao najbolji Go editor i Cloud9 kao najbolji Go Cloud IDE za mene , postoji više od 30 drugih mogućnosti. S obzirom na to koliko izbor okruženja za razvoj softvera može biti osoban, isprobajte nekoliko i pogledajte koja najbolje odgovaraju vašim potrebama i preferencijama.