Programmering

De bedste Go-sprog IDE'er og redaktører

Googles Go-sprog, også kaldet Golang, blev for nylig valgt som Tiobes programmeringssprog i 2016 baseret på dets hurtige vækst i popularitet i løbet af året, mere end dobbelt så stort som Dart og Perl. Tiobes sprogindeks er baseret på "antallet af dygtige ingeniører over hele verden, kurser og tredjepartsleverandører" ved hjælp af resultaterne fra flere søgemaskiner.

Den store popularitetsvækst medfører en øget interesse for udviklingsværktøjer til programmeringssproget. Fordi Go-sproget distribueres i open source-form komplet med compilere, værktøjer og biblioteker, er det, der er tilbage for programmører at finde for sig selv, Go-bevidste redigeringsmiljøer, hvad enten lige redaktører eller integrerede udviklingsmiljøer (IDE'er), hostet lokalt eller i Sky.

Til denne artikel har jeg forsøgt at se på alle de tilgængelige Go-bevidste redigeringsmiljøer og nulstille dem, der synes værd. Jeg startede med den officielle liste over IDE'er og plugins til Go og vindede de omkring 35 emner på listen ned til dem, der muligvis fortjener en prøve. Jeg starter med en hurtig sammenfatning af de nyttige produkter, jeg fandt i hver kategori, og slutter med et nøje kig på mine topvalg.

Bemærk, at Go-sprogudvikling typisk er afhængig af GOPATH-variablen, der er indstillet til roden til dit Go-udviklingsarbejdsområde. Det kan være et problem for GUI-applikationer såsom redaktører, som ikke altid respekterer miljøindstillingerne.

Der er mere end et dusin Go-sprogværktøjer, som du kan installere i mapper under GOPATH-mappen med Hent når Go selv er installeret. Mange af de redaktører, jeg evaluerede, bruger et eller flere af disse værktøjer.

Gå IDE'er

Der er et overraskende antal IDE'er, der understøtter Go. Men betydningen af ​​"support" varierer. Fire IDE'er stod ud for mig: Gogland, Eclipse with goclipse, LiteIDE og Komodo IDE.

I den høje ende har Gogland fra JetBrains smarte afslutninger, inspektioner og hurtige rettelser, enkel refactoring, hurtig navigation, hurtig pop op, nogle meget grundlæggende kodegenerering, rekursiv opkaldsdetektering, ekspressionstype pop op, udgangspunktsfremhævning, brugsfinding, kodeformatering, semantisk fremhævning og parametertip i dens editor. Ja, det er meget funktionalitet til redigering af et ungt sprog. Andre Gogland-funktioner inkluderer en integreret debugger, dækningsanalyse, testkørsel, en menu til kørsel af Go-værktøjer og nogle ikke-Go-specifikke funktioner, der ligner det, du finder i andre JetBrains-produkter, såsom IntelliJ IDEA. Gogland kan administrere flere GOPATH-indstillinger i stedet for at stole udelukkende på systemets GOPATH-miljø.

Gogland fås i øjeblikket gratis som et produkt med tidlig adgang. Det vil sandsynligvis blive prissat i retning af andre JetBrains-produkter til sidst. Forvent, at det vil være tilgængeligt ved årligt abonnement enten alene eller i en pakke med resten af ​​JetBrains 'værktøjer med rabatter til akademikere og open source-bidragydere.

På et lidt lavere niveau af kompleksitet giver Eclipse med goclipse syntaksfremhævning, automatisk indrykning og skitsering i sin editor, alt sammen i ånden af ​​andre Eclipse-sprogmoduler som Java. Integrationer inkluderer debugging med GDB, definitionsfinding med guru- og godef Go-værktøjerne og autofuldførelse med gocode-værktøjet. Eclipse og goclipse-pluginet er gratis og open source.

LiteIDE har en pakkebrowser, klassevisning og kontur, dokumentbrowser, kodnavigation, find brug og kodefakturering i dens editor. Integrationer har gocode-understøttelse, GOPATH API-indeks, fejlretning med GDB og en Go-legeplads. LiteIDE er gratis og open source.

Komodo IDE understøtter Go-syntaks-kontrol (linting) og fremhævning, syntaksfarvning, kodefoldning og andre produktivitetsfremmende funktioner. Komodo understøtter også Go-kodeintelligens med færdiggørelser, opkaldstips, konturer og go-to-definition. Refactoring inkluderer omdøbning af variabler og klassemedlemmer og metodeudtrækning. Komodo understøtter Go-enhedstest, kodesamarbejde, versionskontrol, interaktive skaller og kodeprofilering. Komodos største påstand om berømmelse er, at den understøtter alle større open source-sprog, inklusive Python, Node.js, Ruby, Go, Perl og Tcl.

Komodo IDE er et kommercielt produkt. Komodo Editor, som har en delmængde af IDE's muligheder, er gratis.

Gå redaktører

Mens en IDE muligvis leverer al den funktionalitet, du ønsker til udvikling af kode, kan IDE'er ofte føles "tunge". Med andre ord kan det tage lang tid at starte dem, bruge meget hukommelse og nogle gange føle sig ikke reagere, når du skriver kode, fordi de laver for meget i baggrunden. Kode redaktører kan undertiden være at foretrække, især for korte sessioner, så længe du ikke er generet af at skulle skifte til et separat kommandolinjeskalvindue til kompilering.

Plugins kan undertiden tilføje IDE-lignende funktioner til kodeditorer. Det er normalt godt, så længe den periodiske overhead for at holde plugins opdateret og den konstante overhead for plugins, der kører processer i baggrunden, ikke sænker din redigering.

Atom, beslag og Visual Studio-kode er de tre redaktører, der skiller sig ud for mig for at arbejde på Go-sproget. Alle er gratis og open source. Ikke desto mindre integreres BBEdit, Emacs, Notepad ++, Sublime Text, TextMate og Vim med Go-sprog-plugins, og alle har deres fortalere. Emacs, Notepad ++ og Vim er gratis og open source. BBEdit er kommerciel, men dens lillebror TextWrangler er gratis.

Atom-redaktøren fra GitHub leveres med sprog-go-pakken, som understøtter Go-grammatik og uddrag. Yderligere pakker til Go giver mere funktionalitet. For eksempel integreres go-plus med mange standard Go-værktøjer (til autofuldførelse, formatering, linting, test) for at give et IDE-lignende miljø, og go-debug integreres med delve-fejlfindingsprogrammet.

Brackets-editoren fra Adobe har flere community-udvidelser til Go-support. Disse inkluderer Go-IDE, som bruger gocode til autofuldførelse Go-Syntax, der bruger CodeMirror til syntaksfremhævning; og Improved Go Formatter, som bruger gofmt for at formatere kode og goimports til at styre import.

Visual Studio Code understøtter Go-syntaksfremhævning uden for boksen. Yderligere funktioner leveres af vscode-go-pluginet, der integreres med mere end et dusin standard Go-værktøjer. Hvis du ikke har dit GOPATH-sæt, beder pluginet dig om at indstille det, så snart du prøver at redigere en Go-sprogfil; du kan indstille det til projektet og / eller systemmiljøet. Hvis du ikke har Go-værktøjerne installeret, beder pluginet om at installere dem på de standardsteder som bestemt af din GOPATH.

Cloud-baserede Go IDE'er

Cloudbaserede IDE'er er en relativt ny innovation inden for softwareudviklingsområdet. De har to iboende fordele: De kræver ingen anden lokal opsætning end en kompatibel browser, og de kan tillad redigering af flere udviklere, hvis de er designet til det. Ulempen er, at skybaserede IDE'er ofte lider under forsinkelse, hvilket kan drive udviklerens nødder og forstyrre "flowet", der gør det muligt for kodere at være mest produktive. Tre skybaserede IDE'er understøtter i øjeblikket Go-sproget: Cloud9, CodeEnv og Wide.

Cloud9 er en flersproget skybaseret IDE, der understøtter Gå ud af boksen. Det forbinder med GitHub, Bitbucket og Google Cloud Platform-arkiver, og det har arbejdsområder, du kan dele og klone. Ud over en kodeditor med et omfattende funktionssæt og et online filsystem har den MySQL og andre databaser, terminal- og øjeblikkelige vinduer og tilpassede tastaturbindinger med Vim, Emacs og Sublime Text-tilstande leveret som standard. Autofuldførelse og fejlretning til Go er stadig eksperimentel, men syntaksfremhævning, kørselspanelet, oversigtsvisning og fnug understøttes alle fuldt ud.

CodeEnv er også en flersproget skybaseret IDE. Der er et Go-basismiljøbillede til private miljøer såvel som et offentligt Go-miljøbillede. Hvert miljø består af et filsystem, en simpel kode editor med syntaks fremhævning og et terminalvindue. Der er i øjeblikket otte valg af basisbillede og seks valg af back-end-billede.

Wide er en webbaseret IDE til teams, der er skrevet på og til Go-programmeringssproget. Det bruger en CodeMirror-baseret programmeringseditor med tema med gocode-assisteret syntaks fremhævning, autofuldførelse, kodeformatering og realtids samarbejde. Wide nævner LiteIDE som en afhængighed.

Gogland

JetBrains Gogland, der i øjeblikket er i en tidlig forhåndsvisningstilstand, ser ud til at være den mest komplette Go IDE til rådighed, selvom den endnu ikke er frigivet kommercielt. Dens integrerede fejlfindingsanordning, dækningsanalyse og testkørsel går langt i retning af at skelne den fra de løbende redaktører, der har få værktøjsintegrationer.

I skærmbilledet nedenfor, hvor jeg bruger Gogland til at undersøge nogle af Go-sprogprojektets kildekode, kan du se flere Gogland-redigeringsfunktioner, herunder projekttræet, et inspektionstip (pæren), fremhævelse af udgangspunkt og hurtig browsing ved hjælp af navigationslinjen til højre (kassen med kode med linjenumre ude af rækkefølge). For flere skærmbilleder, der viser, hvad Gogland kan gøre, henviser jeg dig til JetBrains 'funktionsvejledning.

Gogland bruger det samme JetBrains-plugin-økosystem som IntelliJ IDEA og WebStorm, og det indeholder allerede mange relevante funktioner, der er nedarvet fra disse produkter. For eksempel kan du bruge Gogland til at arbejde med HTML og front-end sprog og rammer, nøjagtigt som WebStorm. Gogland giver dig også mulighed for at arbejde med SQL-databaser som IntelliJ IDEA og DataGrip. Hvis du har brug for at kombinere Node.js-support med din Go-kodning eller har brug for Subversion-support ud over Git-integration, er det et hurtigt spørgsmål om at tilføje plugins.

Visual Studio-kode

Visual Studio Code med vscode-go-pluginet er en dejlig Go-editor, der fungerer godt og har god Git-integration. Visual Studio Code har brug for opdateringer og genstart mindst en gang om måneden, men det føles sjældent langsomt under redigering. I skærmbilledet nedenfor ser vi opdagelsesrejsende til venstre, installation af Go-værktøjer nederst til højre og kodedigering øverst til højre.

Go-værktøjerne aktiverer vscode-go-pluginet, som leverer mange redigerings- og kodekontrolfunktioner. Disse inkluderer færdiggørelseslister (ved hjælp af gocode), signaturhjælp (ved hjælp af gogetdoc eller godef plus godoc), uddrag, hurtig info (ved hjælp af gogetdoc eller godef plus godoc), gå til definition (ved hjælp af gogetdoc eller godef plus godoc), find referencer (ved hjælp af guru), filoversigt (ved hjælp af go-outline), arbejdsområdesymbolsøgning (ved hjælp af go-symboler), omdøb (ved hjælp af gorename), build-on-save (ved hjælp af gå bygge og gå test), lint-on-save (ved hjælp af golint eller gometalinter), format (ved hjælp af goreturns eller goimports eller gofmt), generer enhedstests skelet (ved hjælp af gotests), tilføj import (ved hjælp af gopkgs), og delvist implementeret fejlfinding (ved hjælp af dykke).

Det er en hel masse nyttig funktionalitet, men ikke så meget som du får i Gogland IDE. Screencast i vscode-go readme-filen gør et godt stykke arbejde med at demonstrere, hvordan de fleste af funktionerne fungerer.

Cloud9

Af de tre cloud-IDE'er, der understøtter Go, ser det mest interessante i øjeblikket ud til at være Cloud9. Det har den mest funktionelle programmeringseditor af de tre og understøtter omkring 17 sprog ud over Go. Selvom færdiggørelsen af ​​Go-sprogkoden er markeret som eksperimentel, fandt jeg, at den fungerede ret godt og ikke forårsagede meget for at skrive forsinkelser.

Cloud9s Ace-editor understøtter i øjeblikket syntaksfremhævning i mere end 100 programmeringssprog. Nummeret 17 ovenfor er til sprog, der også har anden support, såsom at køre koden, fnug, omrids, kodefuldførelse og fejlretning.

Cloud9-arbejdsområder kører i øjeblikket Ubuntu 14.04 og Go 1.7.3. Du kan opdatere din Go-installation fra Bash-skallen (se nederst på skærmbilledet) samt køre din Go og andre programmer fra Bash.

Som vi har set, har du mange mulige valg af programmeringsmiljø til Go-udvikling. Mens jeg valgte Gogland som den bedste Go IDE med fuld funktion, Visual Studio Code med vscode-go som den bedste Go-editor og Cloud9 som den bedste Go cloud IDE for mig, der er mere end 30 andre muligheder. I betragtning af hvor personligt valget af softwareudviklingsmiljøer kan være, skal du prøve et par og se, hvilke der passer bedst til dine behov og præferencer.