Microsoft présente le serveur de langage Python dans Visual Studio Code
Qui s'accompagne de belles promesses de performance

Le , par Stéphane le calme, Chroniqueur Actualités
Microsoft a annoncé l’arrivée de l’extension Python pour Visual Studio Code. L’objectif à termes est de proposer un composant autonome que vous pourrez utiliser avec n'importe quel outil fonctionnant avec le protocole langage serveur.

Petit retour en arrière sur IntelliSense et les langages serveurs

Steve Dower, de Microsoft, rappelle que depuis l'époque de Visual Basic, IntelliSense était déjà l'une des principales fonctionnalités de la série Visual Studio d'IDE. Il permettait notamment les complétions automatiques pour les variables, les fonctions et d'autres symboles qui apparaissent lorsque vous tapez dans votre code. Grâce à une combinaison astucieuse d'analyse de code statique, de bases de données précompilées et de superpositions d'interface utilisateur, IntelliSense peut être un plus dans la productivité des développeurs


Aujourd'hui, IntelliSense est toujours l'une des fonctionnalités les plus importantes. Plus d'outils exigent que les utilisateurs écrivent du code, et les complétions sont pratiquement une nécessité dans ces éditeurs. Cependant, il est difficile d'écrire l'analyse statique nécessaire pour fournir une bonne expérience, et la plupart des implémentations sont étroitement liées à l'éditeur avec lequel elles travaillent. Vient alors le protocole langage serveur.

Les serveurs de langage sont des programmes autonomes implémentant le protocole de serveur de langue et ont été créés pour fonctionner avec Visual Studio Code. Les éditeurs peuvent démarrer l'exécution d'un serveur de langage et utiliser ce canal de communication basé sur JSON pour fournir et demander des informations sur le code de l'utilisateur. Toutes les opérations d'analyse et "intelligentes" sont gérées par le serveur, ce qui permet à l'éditeur de se concentrer sur la présentation et l'interaction avec l'utilisateur.

Visual Studio Code utilise des serveurs de langue pour la plupart des langages pris en charge, notamment C ++, C # et Go. Du point de vue de l'éditeur, il n'y a pas de différences entre ces langages. Cela signifie qu'il est facile d'ajouter du support pour de nouveaux langages à Visual Studio Code, et cela ne nécessite pas du tout de modifier l'éditeur. Les serveurs de langage peuvent également être utilisés avec des plugins pour Sublime Text, vim et plus encore.
.
Présentation du serveur de langage Python

Auparavant, Python IntelliSense dans Visual Studio était très spécifique à cet IDE, ce qui implique que seuls les utilisateurs de Visual Studio ont pu apprécier le travail de Microsoft. Récemment, l’entreprise a décidé de restructurer son implémentation pour la séparer de Visual Studio et la rendre disponible en tant que programme autonome en utilisant le protocole du serveur de langage.

Du point de vue de l'éditeur, les serveurs de langage sont une boîte noire qui reçoit du texte et renvoie des listes de plus de texte. Mais la boîte noire contient normalement un processus connu sous le nom d'inférence de type statique, où le serveur de langage détermine ("infère") le type de chaque variable sans réellement exécuter le code. Pour les langages statiquement typés, tels que C #, cela revient souvent à trouver la définition de la variable et le type spécifié. Cependant, les variables Python peuvent changer de type à chaque fois qu'elles sont assignées, et les affectations peuvent se produire presque n'importe où dans n'importe quel code qui est exécuté. Cela rend l'inférence de type statique parfaite impossible !


Steve Dower a déclaré :

« Notre serveur de langage Python utilise une analyse itérative de programme complet pour suivre les types de toutes les variables dans votre projet tout en simulant l'exécution de tout le code dans votre projet. Normalement, ce type d'approche peut prendre des heures pour des programmes complexes et nécessite des quantités illimitées de RAM, mais nous avons utilisé de nombreuses astuces pour la rendre complète assez rapidement pour l'utilisation d'IntelliSense. Nous avons également fait les compromis nécessaires pour fournir des informations utiles, bien qu'il ne soit pas possible de déduire parfaitement tous les types dans un programme Python.

« Le résultat final est que nous avons une boîte noire qui prend le code Python et fournit toutes les informations dont votre éditeur a besoin pour les infobulles, les complétions, la recherche de définitions et de références, le changement de nom des variables globales et plus encore. Pour les performances, elle fonctionne avec .NET Core sous Windows, macOS et Linux, fonctionne avec Python 2.5 à Python 3.7 et prend en charge les dernières fonctionnalités de langage telles que async / await, les annotations de type et les paquets stub de type (parmi lesquels typeshed, dont une copie est incluse dans le serveur de langage). Elle effectue des mises à jour incrémentielles au fur et à mesure de la frappe et est déjà reconnu comme une fonctionnalité principale de Visual Studio ».

Avantages de Python dans Visual Studio Code

Les fonctionnalités qui sont nouvelles pour les développeurs de VS Code dans cette version incluent:
  • les erreurs de syntaxe lorsque vous tapez du code
  • les avertissements lorsque les modules ne sont pas trouvés
  • la possibilité d’utiliser des fichiers mis à jour pour compléter les complétions manquantes pour les modules
  • des performances améliorées pour l'analyse de votre espace de travail et la présentation des complétions
  • la possibilité de détecter les erreurs de syntaxe sur l'ensemble de votre espace de travail, plutôt que sur le fichier en cours.
  • des temps de démarrage plus rapides
  • des importations plus rapides
  • une meilleure manipulation pour un certain nombre de constructions de langage

Source : Microsoft

Et vous ?

Êtes-vous un utilisateur de Python ?
Que pensez-vous de cet ajout ?
Vous servez-vous souvent de cet éditeur pour vos développements ou d'un autre ? Pourquoi ?

Voir aussi :

Visual Studio : Microsoft annonce la disponibilité d'une mise à jour d'IntelliCode, une version d'IntelliSense basée sur l'intelligence artificielle
Visual Studio Code 1.25 est disponible : tour d'horizon des nouveautés dans l'éditeur de code open source et multiplateforme
La troisième préversion de Visual Studio 15.8 est disponible : un aperçu des principales nouveautés et améliorations de l'EDI de Microsoft
Visual Studio Team Services (VSTS) fait peau neuve avec une nouvelle navigation, allez-vous l'adopter ou comptez-vous rester sur l'ancien affichage ?
Windows Template Studio 2.2 est disponible, l'extension Visual Studio dédiée au développement UWP vient avec un assistant de configuration amélioré


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse Signaler un problème

Avatar de SimonDecoline SimonDecoline - Membre expérimenté https://www.developpez.com
le 23/07/2018 à 19:44
Citation Envoyé par Stéphane le calme Voir le message
Steve Dower, de Microsoft, rappelle que depuis l'époque de Visual Basic, IntelliSense était déjà l'une des principales fonctionnalités de la série Visual Studio d'IDE. Il permettait notamment les complétions automatiques pour les variables, les fonctions et d'autres symboles qui apparaissent lorsque vous tapez dans votre code. Grâce à une combinaison astucieuse d'analyse de code statique, de bases de données précompilées et de superpositions d'interface utilisateur, IntelliSense peut être un plus dans la productivité des développeurs
Il ne manque pas d'humour, ce Steve Dower. J'ai pas mal utilisé VS6 et VS2002 et dans mon souvenir, IntelliSense fonctionnait quand il voulait et après avoir mis une éternité à faire son "analyse astucieuse"...
Avatar de CaptainDangeax CaptainDangeax - Membre confirmé https://www.developpez.com
le 24/07/2018 à 14:16
Grande question : vais-je devoir abandonner vim ? Et quid des serveurs où je n'ai qu'une connexion ssh sans interface graphique ? Visual Studio Code avec l'interface de Qbasic, réimplémentée en ncurses ?
Avatar de Nolent Nolent - Membre à l'essai https://www.developpez.com
le 24/07/2018 à 16:58
Pas besoin d'abandonner vim ou d'utiliser VSCode. Avec les serveurs de langage il suffit d'un plugin pour se connecter au dit serveur et tout est géré.
Avatar de pgodard pgodard - Nouveau Candidat au Club https://www.developpez.com
le 12/08/2018 à 11:26
@CaptainDangeax quand je n'ai qu'une connexion SSH j'utilise sshfs pour monter le dossier distant sur ma machine locale.
J'utilise très souvent VIM mais j'apprécie aussi d'avoir un vrai IDE

 
Contacter le responsable de la rubrique Accueil