Rappelons que Erich Gamma est un des quatre auteurs du livre "Design Patterns" traitant des motifs de conception, communément appelé le GoF (pour Gang of Four). C'est aussi l'un des initiateurs de l'environnement de tests unitaires en java JUnit, et de l'environnement de développement intégré Eclipse. En effet, Gamma a mis ces idées en pratique lorsque, en tant qu'ingénieur distingué chez IBM Rational Software, il a travaillé sur l'EDI Eclipse basé sur Java. Selon Lee Nackman, directeur technique de Rational à l'époque, le projet et le nom visaient tous deux Microsoft. « Eclipse sonnait bien et nous aimions l'idée d'éclipser Visual Studio », a-t-il déclaré en 2005.
Malgré ces ambitions, en 2011, Gamma a rejoint Microsoft et a commencé à travailler sur le projet "Monaco", un éditeur de code dans le navigateur. L'une de ses premières fonctionnalités a été la sauvegarde automatique. « Afin de ne pas perdre de travail, nous avons toujours activé la sauvegarde automatique... nous n'avons jamais eu le courage de changer la valeur par défaut du code VS pour la sauvegarde automatique, mais c'est une fonction formidable et tout le monde dans l'équipe l'a activée », a déclaré Gamma.
TypeScript joue un rôle important dans le développement de VS Code
Gamma aussi parlé d'un autre projet de Microsoft, TypeScript, qui ajoute une touche importante à JavaScript. « Ce voyage de 10 ans n'aurait pas été possible si nous n'avions pas eu TypeScript comme outil qui nous a permis de garder notre code flexible afin de le restructurer », a-t-il déclaré. TypeScript était en cours de développement chez Microsoft depuis 2010 et a été rendu public en octobre 2012. En 2013, tout le code de Monaco/VS était écrit en TypeScript, a déclaré Gamma. Il ajouta que beaucoup de gens ne savent pas qu'ils avaient décidé de ne pas utiliser de framework d'interface utilisateur dès le début et c'est encore toujours le cas actuellement. Pour cause, « la performance est très importante pour nous et nous voulons être pleinement maîtres de notre propre destin », a-t-il ajouté.
Visual Studio Online "Monaco" a été lancé comme un moyen d'éditer les sites web Azure dans le navigateur, mais n'a pas réussi à attirer les utilisateurs. Il y avait « environ 3000 utilisateurs par mois, et pour Microsoft, il est très difficile d'être pertinent avec ce nombre d'utilisateurs », a rappelé Gamma. Il faudrait qu'il soit multiplié par dix ou plus, ou qu'il soit abandonné. L'année 2014 était le point pivot. L'équipe a décidé de repositionner le projet comme un outil multiplateforme, en utilisant le framework Electron, qui venait d'être développé, qui englobe le projet Chromium de Google, permettant aux applications web de s'exécuter sur le bureau.
Le projet a été baptisé "Ticino" et s'adressait aux « développeurs utilisant les technologies du web, avec des scénarios visant le développement, le débogage et le déploiement d'applications Node.js et de composants .NET multiplateformes ». Ce serait plus qu'un éditeur, mais moins qu'un EDI complet, visant un point d'équilibre entre les deux. VS Code était prêt à temps pour une présentation en avant-première à l'événement Build l'année suivante. L'étape suivante consistait à soutenir les extensions, sans lesquelles VS Code ne pourrait pas être largement adopté.
Visual Studio Code devient open source en 2015
Gamma s'est appuyé sur son expérience d'Eclipse. « Les extensions sont vraiment cool, mais les elles peuvent aussi créer des soucis », a-t-il déclaré. L'équipe de développement de VS Code a donc décidé de faire fonctionner les extensions dans un processus séparé, afin que le noyau du VS Code soit moins affecté par les extensions. L'API de l'extension utilise le RPC (Remote Procedure Call) vers l'hôte de l'extension, a expliqué Gamma, qui protège également les auteurs de l'extension des détails internes de mise en œuvre du VS Code. Le travail sur ce point a été rapide, ce qui a permis d'introduire l'API d'extension lors de l'événement Connect de Microsoft en octobre 2015, en même temps que l'annonce que VS Code était désormais open source. À ce moment-là, Microsoft avait décidé qu'adopter l'open source, était la bonne façon d'attirer les développeurs.
En 2016, un autre élément clé a été introduit, Le "language server protocol", un protocole ouvert basé sur JSON-RPC à utiliser entre les éditeurs de code source ou les environnements de développement intégrés et les serveurs qui fournissent des fonctionnalités spécifiques au langage de programmation. Il permet aux développeurs de prendre en charge les langages de programmation, en pilotant des fonctions telles que la coloration syntaxique, la complétion de code et la détection d'erreurs. Ensuite, un terminal intégré a été développé par une nouvelle équipe VS Code.
L'édition à distance a été le grand défi suivant, en partie à cause de l'introduction du sous-système Windows pour Linux (WSL), et en partie à cause de l'idée de pouvoir exécuter des applications dans le navigateur en utilisant du code dans les dépôts GitHub. Cela signifiait en partie de revenir à VS Code pour en faire une application de navigateur, ce qui nécessitait un remaniement plus important. Les appels directs aux API de Node.js et les services abstraits ont été supprimés de sorte que, par exemple, « sur le bureau, vous obtenez des dialogues natifs et dans le navigateur, des dialogues construits en HTML », a-t-il dit.
Le développement à distance prend désormais en charge à la fois le WSL et l'exécution de VS Code dans un conteneur Docker et Codespaces. Le développement de VS Code est géré par Microsoft, mais « chaque mois, nous avons un plan disponible sur GitHub. Tout le monde peut le voir. Depuis 2011, nous avons des notes de publication tous les mois pour montrer les progrès continus », a déclaré Gamma.
Source : vidéo
Et vous ?
Qu'en pensez-vous ?
Voir aussi
Draw.io intégré à VS Code : créez des diagrammes directement dans l'EDI avec cette extension open source
Debug Visualizer, une extension VS Code pour visualiser les structures de données lors du débogage qui fonctionnerait avec tous les langages qui peuvent être débogués dans VS Code
VS Code : Microsoft lance une extension pour le débogage de sites web pour les appareils iOS depuis son éditeur de code et sans avoir besoin d'un Mac