Ingénieur IT, photographe amateur, musicien du dimanche
J’ai testé Visual Studio Code…
J’ai testé Visual Studio Code…

J’ai testé Visual Studio Code…

J’avais plus ou moins quitté depuis quelques temps les technologies Microsoft (du moins dans le privé) par envie de neutralité (bon Suisse inside) et surtout afin de ne pas m’enfermer dans un environnement spécifique.
Mon environnement professionnel étant lui très orienté Microsoft, j’ai malgré tout l’occasion de voir évoluer les technologies .Net. C’est d’ailleurs avec une joie non dissimulée que j’ai découvert la nouvelle orientation “open source” que s’est fixé depuis quelques temps Microsoft pour .NET, et donc de facto pour Visual Studio. Certe, l’ouverture du code .NET sur Github n’annoncera pas un Visual Studio multi-plateforme dans un futur proche, mais Visual Studio Code est un premier pas qui nous conforte pour la suite.

Visual Studio Code qu’est-ce donc ?

Visual Studio Code c’est l’IDE light que Microsoft à mis à disposition du public de tout horizon (Windows, Linux, Mac). Il devrait être la solution qui permettrait aux développeurs non Windows de se rapprocher du code .NET qui s’est ouvert à Github cette année. Etant friand de nouveauté, je ne pouvais pas passer à coté sans tester la bête. Et voici mon bilan…
Visual Studio Code
Aperçu de Visual Studio Code

VS très light mais efficace

La première réaction lorsqu’on ouvre VSC pour la première fois, c’est qu’on se dit que cet IDE n’a de son grand frère Visual Studio que le nom. En effet, on se retrouve avec un éditeur de texte qui semble être un clone basique des concurrents actuels comme Sublime Text ou Atom.
Je me suis donc motivé à fouiller un peu les menus, onglets et j’ai vite remarqué l’intégration native de git. Là encore, pas de quoi casser une patte à un canard puisqu’actuellement git est supporté soit nativement, soit via plugin par la plupart des éditeurs du marché. La meilleure façon de me faire une opinion était donc de me lancer dans un projet.

Web oui, mais pas que

Etant plutôt orienté web, je lance donc un projet api PHP avec un front Sass/AngularJS. En regardant le support de langage, je suis plutôt étonné de la palette offerte. Je m’attendais à voir un support unique de  HTML, JS, CSS accompagné des technologies MS comme C#, F# et autres VB. Pourtant en parcourant la liste, je me réjoui de voir qu’elle s’étend également aux dérivés des langages Web (Markdown, TypeScript, Jade) mais va même plus loin en supportant du PHP, Perl, Python, Java et même Objective-C !
A noter quand même que le support est surtout pour la coloration syntaxique. Dès qu’on aimerait avoir de l’intelliSense, du linting ou du refactoring, la liste se réduit sensiblement au web client (HTML, JS, CSS et dérivés) et au technologie Microsoft.

L’éditeur

En codant, je peux tester l’intelliSense qui apparait et suit fluidement le curseur, donnant ainsi un effet assez agréable. Si on est dans les technologie supporté (voir chapitre précédent), on est plutôt satisfait. Le refactoring semble bon, la proposition des méthodes/variables aussi, j’aurai par contre aimé que la proposition de path du projet soit plus poussée.

L’intégration d’Emmet fait également briller les yeux d’un Zen codeur comme moi, même si cette fonctionnalité deviens très répandu. Quelques widgets venant de Visual Studio sont aussi appréciables, comme par exemple des carrés d’aperçu devant la déclaration de couleur en CSS.

Quelques Widgets sont présent comme ici l'aperçu des couleurs
Quelques Widgets sont présents comme ici l’aperçu des couleurs

On notera aussi le champ multi-actions disponible au dessus du preview de fichier. Comme chez la concurrence, il permet à la fois de rechercher des fichiers, exécuter des commandes, des tâches ou même de l’édition (par ex: dé-/commenter).

Au fil du code je  ressent rapidement le manque de ma fonctionnalité fétiche sur Sublime Text : le multicurseur. Ma frustration sera de courte durée puisque cette fonctionnalité est implémentée et disponible à l’aide d’un alt+click, voir un ctrl+alt+up/down pour créer les curseurs sur les lignes précédentes/suivantes. On retrouve également d’autres fonctionnalités utiles comme l’inversion de ligne alt+up/down, les vues multiples, les auto-complétions de path,…

Le debugger

Le debugger est très simple à prendre en main et à la fois efficace. Bien que je regrette qu’il soit exclusivement consacré à Node.JS, je dois avouer qu’il offre des options intéressantes comme les multiples configurations de debug. J’entend par là un fichier JSON de configuration « launch.js », qui contient toutes les informations du projet et du serveur à mettre en place pour lancer votre appli Node en debug directement dans VSC. De plus l’intégration des Web Developper Tools (de Chromium svp) ajoute un confort non négligeable pour ce qui est des context.

Thèmes

Le thème clair de VSCode
Le thème clair de VSCode

Comme tout geek qui se respecte, je veux rapidement customiser la coloration syntaxique, mais je bute là sur ma première déception : 3 thèmes basiques. J’ai le choix entre un IDE clair, un dark et un très (trop) contrasté. Si j’aime bien les deux premiers, je dois avouer que le dernier est carrément horrible. Cependant il doit sûrement être utile pour les personnes souffrant de déficience visuelle. Dans tous les cas, un manque se fait sentir et je regrette de ne pas pouvoir plus varier les couleurs de mon code.

A noter que cette fonctionnalité a été proposée au développeur et a besoin de votes : VSC dev suggestions

Plugin

Si on pense theming, on se demande forcément si l’ajout de packages et disponible. Là, à nouveau, je tombe de haut. Visiblement aucune possibilité d’ajouter des plugins. Microsoft avait pris un grand retard niveau application sur Windows Phone par rapport à ses concurrents, je pensais qu’ils auraient retenu la leçon en proposant aux développeurs de participer dès le début à leur projet en complétant leurs nouveaux produits avec des add-on. Pourtant il semble qu’il n’en est rien. On a par contre la chance d’avoir l’intégration des commandes pour des outils Gulp, Grunt, MS-Build qui eux possèdent suffisamment de plugin pour contenter nos besoins.
Le produit étant toujours en version 0.x, on espère que ce manque sera corrigé avec le temps, sinon je doute qu’ils arriveront à convaincre les utilisateurs des actuels éditeurs de texte de se tourner vers VSC.
Edit: Visiblement cette fonctionnalité est planifiée : suggestions VSC

Versionning

Mon projet étant versionné, je peux à présent juger de l’intégration native de git. Pour cela, dans le menu de gauche en cliquant sur l’icône git, la liste des fichiers du projet change en une liste de fichiers trackés, modifiés,… En sélectionnant un fichier j’ai la bonne surprise de voir qu’automatiquement la zone d’édition se transforme en une comparaison git diff. Les fichiers sur la gauche sont triés par statut (ajouté, modifié, …) avec une distinction par couleur et lettre qui permet de repérer très facilement l’état des fichiers. On peut à partir de là utiliser toutes les commandes de base de git facilement (clone, commit, add, checkout, revert,…). Etant grand utilisateur de git via le terminal, ces quelques fonctions ne me paraissaient pas très utiles, mais on s’habitue vite à l’utiliser plutôt que de lancer un git status. Si bien qu’en retournant sur un autre IDE je me suis surpris à vouloir la même chose…
Le dernier détail qui vaut le détour est l’information dans la barre d’état de la branche courante. Celle-ci étant affichée quelque soit l’onglet actif (git, édition de fichier, debug,…) plus moyen de se tromper, chose qui pouvait facilement arriver par inadvertance si l’information se trouve uniquement hors IDE.
Git intégré dans VSCode
Git est intégré à VSCode et la branche courante est visible en bas à gauche dans la barre d’état

Conclusion

Après ces quelques essais, Visual Studio Code me semble être une bonne découverte même s’il ne propose rien de bien nouveau. Il faudra quand même qu’il innove un peu plus s’il espère convaincre les non-Microsoft et surtout s’il veulent justifier leur slogant :

Code Editing. Redefined.

Malgré tout, il propose une bonne alternative multi-plateforme pour les développeurs Linux/OS-X qui voudraient se tourner vers les technologies web .NET, et ceci, même s’il n’arrive pas à la cheville de Visual Studio, mais avouons le, ce n’était clairement pas le but.

L’éditeur est agréable à utiliser et propose l’essentiel qu’on attend de lui. Cependant le manque de packages est pour moi la condition rédhibitoire qui me fera passer à autre chose. J’apprécie pouvoir ajouter des plugins selon mes besoins de dev, mes envies et les trends du moment et visiblement cela ne semble pas encore prévu pour VSC. Mais d’une fois que cet outil atteindra un plus haut seuil de maturité, je reviendrai vite y faire quelques essais.

Pro/Cons

J’ai aimé 
  • l’auto-complétion fluide
  • L’intégration simple de git
  • Le multi-curseur
  • Emmet natif
  • Sa rapidité d’exécution
J’ai regretté :
  • Peu de thèmes
  • Pas de package ou plugin possible
  • Pas de fonctionnalité « Open in browser »…
  • Pas de scrollbar avec aperçu

 Liens utiles

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *