Les meilleurs IDE et éditeurs du langage Go

Le langage Go de Google, alias Golang, a récemment été choisi comme le langage de programmation de 2016 par Tiobe, sur la base de sa croissance rapide en popularité au cours de l’année, plus de deux fois supérieure à celle des finalistes Dart et Perl. L’indice de langage de Tiobe est basé sur le « nombre d’ingénieurs qualifiés dans le monde, les cours et les fournisseurs tiers », en utilisant les résultats de plusieurs moteurs de recherche.

Cette grande croissance de la popularité entraîne un intérêt accru pour les outils de développement du langage de programmation. Parce que le langage Go est distribué en open source complet avec des compilateurs, des outils et des bibliothèques, ce qu’il reste aux programmeurs à trouver par eux-mêmes, ce sont des environnements d’édition Go-aware, qu’il s’agisse d’éditeurs droits ou d’environnements de développement intégrés (IDE), hébergés localement ou dans le cloud.

Pour cet article, j’ai tenté d’examiner tous les environnements d’édition Go-aware disponibles et de mettre à zéro ceux qui semblent valables. J’ai commencé par la liste officielle des IDE et des plugins pour Go et j’ai vanné les quelque 35 éléments de la liste pour ne retenir que ceux qui pourraient mériter un essai. Je vais commencer par un rapide tour d’horizon des produits utiles que j’ai trouvés dans chaque catégorie et terminer par un examen approfondi de mes meilleurs choix.

Notez que le développement du langage Go repose généralement sur la variable GOPATH définie à la racine de votre espace de travail de développement Go. Cela peut être un problème pour les applications GUI telles que les éditeurs, qui n’honorent pas toujours les paramètres d’environnement.

Il existe plus d’une douzaine d’outils de langage Go que vous pouvez installer dans des répertoires sous le dossier GOPATH avec la commande go get, une fois que Go lui-même est installé. Beaucoup des éditeurs que j’ai évalués utilisent un ou plusieurs de ces outils.

Les IDE de Go

Il existe un nombre surprenant d’IDE qui supportent Go. Cependant, la signification du terme  » support  » varie. Quatre IDE se sont démarqués pour moi : Gogland, Eclipse avec goclipse, LiteIDE et Komodo IDE.

En haut de gamme, Gogland de JetBrains propose des complétions intelligentes, des inspections et des corrections rapides, un refactoring simple, une navigation rapide, des popups rapides, une certaine génération de code très basique, la détection d’appels récursifs, des popups de type d’expression, la mise en évidence des points de sortie, la recherche d’utilisation, le formatage du code, la mise en évidence sémantique et des indices de paramètres dans son éditeur. Oui, c’est beaucoup de fonctionnalités pour l’édition d’un jeune langage. Les autres fonctionnalités de Gogland incluent un débogueur intégré, l’analyse de couverture, l’exécution de tests, un menu pour l’exécution d’outils Go, et quelques fonctionnalités non spécifiques à Go qui sont similaires à ce que vous trouverez dans d’autres produits JetBrains, comme IntelliJ IDEA. Gogland peut gérer plusieurs paramètres GOPATH, plutôt que de s’appuyer exclusivement sur l’environnement GOPATH du système.

Gogland est actuellement disponible gratuitement en tant que produit à accès anticipé. Il sera probablement tarifé sur le modèle des autres produits JetBrains à terme. Attendez-vous à ce qu’il soit disponible par abonnement annuel, soit seul, soit dans un bundle avec le reste des outils de JetBrains, avec des réductions pour les universitaires et les contributeurs open source.

À un niveau de complexité légèrement inférieur, Eclipse with goclipse fournit la coloration syntaxique, l’indentation automatique et le contour dans son éditeur, le tout dans l’esprit d’autres modules de langage Eclipse tels que Java. Les intégrations comprennent le débogage avec GDB, la recherche de définitions avec les outils Go guru et godef, et l’autocomplétion avec l’outil gocode. Eclipse et le plugin goclipse sont gratuits et open source.

LiteIDE arbore un navigateur de paquets, une vue et un aperçu des classes, un navigateur de documents, une navigation dans le code, la recherche d’usages et le refactoring du code dans son éditeur. Les intégrations présentent le support de gocode, l’index API GOPATH, le débogage avec GDB et un terrain de jeu Go. LiteIDE est gratuit et open source.

Komodo IDE prend en charge la vérification (linting) et la mise en évidence de la syntaxe Go, la coloration syntaxique, le pliage du code et d’autres fonctionnalités d’amélioration de la productivité. Komodo prend également en charge l’intelligence du code Go avec les complétions, les conseils d’appel, les contours et la définition des go-to-be. Le refactoring inclut le renommage des variables et des membres de classe et l’extraction de méthodes. Komodo prend en charge les tests unitaires Go, la collaboration en matière de code, le contrôle de version, les shells interactifs et le profilage du code. Le principal titre de gloire de Komodo est qu’il prend en charge tous les principaux langages open source, notamment Python, Node.js, Ruby, Go, Perl et Tcl.

Komodo IDE est un produit commercial. Komodo Editor, qui possède un sous-ensemble des capacités de l’IDE, est gratuit.

Voir les éditeurs

Bien qu’un IDE puisse fournir toutes les fonctionnalités que vous souhaitez pour développer du code, les IDE peuvent souvent se sentir « lourds ». En d’autres termes, ils peuvent prendre beaucoup de temps à démarrer, utiliser beaucoup de mémoire, et parfois sembler ne pas répondre lorsque vous tapez du code parce qu’ils font trop de choses en arrière-plan. Les éditeurs de code peuvent parfois être préférables, surtout pour les sessions courtes, tant que vous n’êtes pas gêné par le fait de devoir basculer vers une fenêtre de shell en ligne de commande distincte pour la compilation.

Les plugins peuvent parfois ajouter des fonctionnalités de type IDE aux éditeurs de code. C’est généralement une bonne chose, tant que la surcharge périodique de maintien à jour des plugins et la surcharge constante des plugins exécutant des processus en arrière-plan ne ralentissent pas votre édition.

Atom, Brackets et Visual Studio Code sont les trois éditeurs qui se sont démarqués pour moi pour travailler dans le langage Go. Tous sont gratuits et open source. Néanmoins, BBEdit, Emacs, Notepad++, Sublime Text, TextMate et Vim intègrent tous des plugins pour le langage Go, et ont tous leurs partisans. Emacs, Notepad++ et Vim sont gratuits et open source. BBEdit est commercial, mais son petit frère TextWrangler est gratuit.

L’éditeur Atom de GitHub est livré avec le paquet language-go, qui prend en charge la grammaire et les snippets Go. Des paquets supplémentaires pour Go apportent davantage de fonctionnalités. Par exemple, go-plus s’intègre à de nombreux outils Go standard (pour l’autocomplétion, le formatage, le linting, les tests) pour fournir un environnement de type IDE, et go-debug s’intègre au débogueur delve.

L’éditeur Brackets d’Adobe dispose de plusieurs extensions communautaires pour la prise en charge de Go. Il s’agit notamment de Go-IDE, qui utilise gocode pour l’autocomplétion ; Go-Syntax, qui utilise CodeMirror pour la coloration syntaxique ; et Improved Go Formatter, qui utilise gofmt pour formater le code et goimports pour gérer les importations.

Visual Studio Code prend en charge la coloration syntaxique Go d’emblée. Des fonctionnalités supplémentaires sont fournies par le plugin vscode-go, qui s’intègre à plus d’une douzaine d’outils Go standard. Si votre GOPATH n’est pas défini, le plugin vous demandera de le faire dès que vous tenterez d’éditer un fichier de langage Go ; vous pouvez le définir pour le projet et/ou l’environnement système. Si les outils Go ne sont pas installés, le plugin vous demandera de les installer aux endroits standard déterminés par votre GOPATH.

Les IDE Go basés sur le cloud

Les IDE basés sur le cloud sont une innovation relativement récente dans l’espace de développement logiciel. Ils présentent deux avantages inhérents : Ils ne nécessitent aucune configuration locale autre qu’un navigateur compatible, et ils peuvent permettre l’édition par plusieurs développeurs s’ils sont conçus pour cela. En revanche, les EDI basés sur le cloud computing souffrent souvent de décalage, ce qui peut rendre les développeurs fous et interférer avec le « flux » qui permet aux codeurs d’être les plus productifs. Trois IDE basés sur le cloud computing prennent actuellement en charge le langage Go : Cloud9, CodeEnv et Wide.

Cloud9 est un IDE basé sur le cloud multilingue qui prend en charge Go dès le départ. Il se connecte aux dépôts GitHub, Bitbucket et Google Cloud Platform, et il dispose d’espaces de travail que vous pouvez partager et cloner. Outre un éditeur de code doté de nombreuses fonctionnalités et d’un système de fichiers en ligne, il dispose de bases de données MySQL et autres, d’un terminal et de fenêtres immédiates, ainsi que de liaisons clavier personnalisables, avec les modes Vim, Emacs et Sublime Text fournis en standard. L’autocomplétion et le débogage pour Go sont encore expérimentaux, mais la coloration syntaxique, le panneau d’exécution, la vue des contours et l’encrage sont tous entièrement pris en charge.

CodeEnv est également un IDE multilingue basé sur le cloud. Il existe une image d’environnement de base Go pour les environnements privés, ainsi qu’une image d’environnement Go public. Chaque environnement se compose d’un système de fichiers, d’un éditeur de code simple avec coloration syntaxique et d’une fenêtre de terminal. Il existe actuellement huit choix d’image de base et six choix d’image d’environnement.

Wide est un IDE en ligne pour les équipes qui est écrit dans et pour le langage de programmation Go. Il utilise un éditeur de programmation à thème basé sur CodeMirror avec une coloration syntaxique assistée par gocode, une autocomplétion, un formatage du code et une collaboration en temps réel. Wide cite LiteIDE comme une dépendance.

Gogland

JetBrains Gogland, actuellement dans un état de preview précoce, semble être l’IDE Go le plus complet disponible, bien qu’il n’ait pas encore été commercialisé. Son débogueur intégré, son analyse de couverture et l’exécution de tests contribuent largement à le distinguer des éditeurs courants qui disposent de quelques intégrations d’outils.

Dans la capture d’écran ci-dessous, où j’utilise Gogland pour examiner une partie du code source du projet de langage Go, vous pouvez voir plusieurs fonctionnalités d’édition de Gogland, notamment l’arbre du projet, une indication d’inspection (l’ampoule), la mise en évidence des points de sortie et la navigation rapide à l’aide de la barre de navigation sur la droite (la boîte de code avec les numéros de ligne hors de l’ordre). Pour plus de captures d’écran montrant ce que Gogland peut faire, je vous renvoie au guide des fonctionnalités de JetBrains.

InfoWorld

Gogland utilise le même écosystème de plugins JetBrains qu’IntelliJ IDEA et WebStorm, et il comprend déjà de nombreuses fonctionnalités pertinentes héritées de ces produits. Par exemple, vous pouvez utiliser Gogland pour travailler avec HTML et les langages et frameworks frontaux, exactement comme WebStorm. Gogland vous permet également de travailler avec des bases de données SQL, comme IntelliJ IDEA et DataGrip. Si vous avez besoin de combiner le support de Node.js avec votre codage Go ou si vous avez besoin du support de Subversion en plus de l’intégration de Git, c’est une question rapide d’ajouter les plugins.

Visual Studio Code

Visual Studio Code avec le plugin vscode-go est un éditeur Go agréable qui fonctionne bien et qui a une bonne intégration de Git. Visual Studio Code a besoin de mises à jour et d’un redémarrage au moins une fois par mois, mais il semble rarement lent pendant l’édition. 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 (utilisant go build et go test), lint-on-save (utilisant golint ou gometalinter), formater (en utilisant goreturns ou goimports ou gofmt), générer le squelette des tests unitaires (en utilisant gotests), ajouter des importations (en utilisant gopkgs), et implémenter partiellement le débogage (en utilisant delve).

C’est tout un tas de fonctionnalités utiles, bien que pas autant que ce que vous obtenez dans l’IDE Gogland. Le screencast dans le fichier readme de vscode-go fait un bon travail de démonstration du fonctionnement de la plupart des fonctionnalités.

Cloud9

Des trois IDE en nuage qui prennent en charge Go, le plus intéressant actuellement semble être Cloud9. Il possède l’éditeur de programmation le plus fonctionnel des trois et supporte environ 17 langages en plus du Go. Bien que sa complétion de code en langage Go soit marquée comme expérimentale, j’ai trouvé qu’elle fonctionnait plutôt bien et ne causait pas beaucoup de retards de frappe.

InfoWorld

L’éditeur Ace de Cloud9 prend actuellement en charge la coloration syntaxique pour plus de 100 langages de programmation. Le nombre 17 ci-dessus concerne les langages qui disposent également d’autres prises en charge, telles que l’exécution du code, le linting, le outlining, la complétion de code et le débogage.

Les espaces de travail de Cloud9 fonctionnent actuellement sous Ubuntu 14.04 et Go 1.7.3. Vous pouvez mettre à jour votre installation de Go à partir du shell Bash (voir le bas de la capture d’écran), ainsi qu’exécuter votre programme Go et d’autres programmes à partir de Bash.

Comme nous l’avons vu, vous avez plusieurs choix possibles d’environnement de programmation pour le développement de Go. Si j’ai choisi Gogland comme meilleur IDE Go complet, Visual Studio Code avec vscode-go comme meilleur éditeur Go, et Cloud9 comme meilleur IDE Go en nuage pour moi, il existe plus de 30 autres possibilités. Étant donné à quel point le choix des environnements de développement logiciel peut être personnel, vous devriez en essayer quelques-uns et voir ceux qui correspondent le mieux à vos besoins et à vos préférences.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.