Lors de l'édition 2015 de sa conférence annuelle F8 dédiée aux développeurs, Facebook a proposé Nuclide en open source. Facebook a précisé que Nuclide est un ensemble de paquets intégrés à Atom et que ses développeurs continuent de travailler en étroite collaboration avec GitHub afin de mener à bien le projet. L’EDI est principalement dédié aux développeurs JavaScript, et offre des fonctionnalités comme l’autocomplétion et la coloration syntaxique. Il dispose d’une intégration native de React, la bibliothèque JavaScript de Facebook pour la création d’interfaces utilisateurs.
Au départ, Nuclide a été conçu pour supporter la bibliothèque JavaScript de Facebook React ainsi que son framework React Native, mais il peut également gérer le développement web ainsi que le développement d’applications natives. La migration vers Nuclide est simplifiée pour les développeurs qui utilisent déjà Atom.
« Nous avons été capable d’éviter de produire un fork du code de l’éditeur, aussi, Nuclide va s’installer sur une version récente et régulière d’Atom et les utilisateurs peuvent continuer à bénéficier d’autres packages de la communauté aux côtés de Nuclide », a expliqué Michael Bolin, ingénieur logiciel pour le compte de Facebook. Parmi les fonctionnalités, Facebook évoquait :
- le développement à distance : Nuclide fournit une paire de packages qui permettent des connexions sur SSH à un nœud daemon léger sur le serveur, rendant possible l’édition de fichier à distance et la validation de syntaxe/type Bien entendu cela fonctionne également pour les machines virtuelles, permettant d’effectuer un développement en local sur HHVM par exemple ;
- le support du langage Hack : cela inclut la coloration syntaxique, l’auto complétion, la recherche de type et autres ;
- le support de Flow et de Mercurial : comme il le fait pour Hack ;
- l’omni-search : cette mouture intègre un package de l’outil de recherche universelle de Facebook qui peut s’avérer bien pratique
En 2018, Facebook a retiré la version open source de Nuclide, mais a continué à utiliser Nuclide en interne. Fin 2018, Facebook a annoncé à ses ingénieurs qu'il allait transférer Nuclide vers Visual Studio Code. De nombreux travaux de développement ont été effectués pour migrer la fonctionnalité actuelle de Nuclide, ainsi que certaines nouvelles fonctionnalités, en tant qu'extensions orientées vers l'intérieur pour Visual Studio Code. Le code Visual Studio est maintenant largement utilisé dans l’ensemble de la société en version bêta.
Pourquoi Visual Studio Code ?
Visual Studio Code est un outil de développement très populaire, avec un investissement et un support importants de Microsoft et de la communauté open source. Il fonctionne sous macOS, Windows et Linux, et dispose d'une API d'extension robuste et bien définie qui permet à Facebook de continuer à développer les fonctionnalités importantes requises pour le développement à grande échelle effectué par la société. Selon Facebook, « Visual Studio Code est une plateforme sur laquelle nous pouvons parier en toute sécurité sur l'avenir de notre plateforme de développement ».
Améliorer l'expérience de développement à distance
Alors que les ingénieurs de Facebook ont installé Visual Studio Code localement sur leurs ordinateurs portables, la plupart des développements sont effectués directement sur des serveurs de développement réservés individuellement et hébergés dans ses centres de données. L'accès au code sur ces serveurs de manière transparente et performante est essentiel pour la productivité.
Comme l’a dit l’équipe de Microsoft Visual Studio Code lors de la première publication des extensions distantes, le développement à distance est une tendance émergente. Bien que les cas d'utilisation rencontrés par Facebook soient plus avancés que la plupart des équipes de développement, compte tenu de sa taille, tout développeur peut tirer parti des avantages du développement à distance :
- travailler avec un matériel plus volumineux, plus rapide ou plus spécialisé que celui disponible sur votre ordinateur local ;
- créer des environnements dédiés sur mesure pour les dépendances spécifiques de chaque projet, sans vous soucier des erreurs dues à des configurations mixtes ou conflictuelles ;
- prendre en charge la possibilité de basculer rapidement entre plusieurs environnements de développement en cours d'exécution sans affecter les ressources locales ou les performances des outils.
« Tous les développeurs devraient pouvoir bénéficier de ces avantages, et nous, chez Facebook, pensons pouvoir appliquer notre expertise unique dans cet espace problématique pour vous aider. C’est pourquoi, aujourd’hui, nous sommes ravis de partager non seulement notre utilisation de leurs extensions de développement à distance, mais également notre implication dans l’aide apportée à Microsoft pour améliorer encore les extensions de développement à distance, avec pour objectif de permettre aux ingénieurs de réaliser un développement à distance avec Visual Studio Code.
« Pour aider Microsoft à améliorer son offre de produits, nous avons fourni des informations grâce à notre expérience et à notre expertise en matière de développement à distance pour Nuclide. Et Microsoft a maintenant créé une telle expérience de communication à distance, qui nous a permis de sortir de notre propre solution personnalisée.
« Nous sommes également heureux que les fonctionnalités de développement à distance ajoutées par Microsoft soient disponibles en tant qu’extensions pour toute personne utilisant le code Visual Studio ».
En mai, Microsoft a annoncé des préversions de trois extensions permettant le développement dans des conteneurs, à distance sur des machines physiques ou virtuelles et avec le sous-système Windows pour Linux (WSL).
Microsoft a lancé les extensions pour donner aux développeurs la possibilité d'exécuter des outils de développement localement et de se connecter aux services de développement exécutés à distance, par exemple sur un conteneur ou une machine virtuelle. Cela permet aux développeurs de coder sur du matériel plus puissant et spécialisé que sur une machine locale.
Et la suite ?
Compte tenu de l'ampleur du développement de Facebook, la plateforme estime qu'il est essentiel de soutenir l'efficacité et la productivité de ses ingénieurs. Un travail constant est en cours pour permettre à Visual Studio Code d'être l'EDI de choix au sein de l'entreprise, que ce soit en développant des extensions ou en améliorant ses technologies actuelles pour mieux le prendre en charge.
« Par exemple, en matière de code, Facebook est un polyglotte. Le code est écrit en Python, C ++, Java et dans certains de nos propres langages créés tels que Flow, Hack et Reason. Des extensions existent pour prendre en charge ces langages, notamment la coloration syntaxique, les formateurs, les linters, etc. Flow, par exemple, possède une extension publique Visual Studio Code développée par Facebook depuis 2015. Avec le passage interne de Facebook à Visual Studio Code, Flow est désormais en développement actif via des domaines tels que les améliorations du protocole LSP (Language Service Protocol), pour mieux garantir le bon fonctionnement du langage avec Visual Studio Code.
« Un autre exemple concerne le contrôle de source. Facebook utilise Mercurial en interne comme infrastructure de contrôle de source. Les travaux de développement se poursuivent sur une extension permettant la manipulation du contrôle de source directement dans Visual Studio Code ».
Visual Studio Code fait désormais partie intégrante du développement futur de Facebook.
Source : Facebook
Et vous ?
Avez-vous déjà utilisé Visual Studio Code ? Pour quelles raisons ?
Quels sont les éléments qui vous intéressent le plus dans Visual Studio Code ?
Quels sont les éléments avec lesquels vous éprouvez le plus de difficulté ?
Qu'avez-vous pensé de Visual Studio Code ?
Que pensez-vous du choix de Facebook ?