Review: 6 IDE Python vont au tapis

Parmi toutes les mesures que vous pouvez utiliser pour évaluer la popularité et le succès d'un langage, un facteur infaillible est le nombre d'environnements de développement disponibles pour celui-ci. La montée en popularité de Python au cours des dernières années a entraîné une forte vague de support IDE, avec des outils destinés à la fois au programmeur général et à ceux qui utilisent Python pour des tâches telles que le travail scientifique et la programmation analytique.

Ces six IDE avec prise en charge de Python couvrent la gamme des cas d'utilisation. Certains sont des IDE multilingues prenant en charge Python via un module complémentaire ou un reconditionnement d'un autre produit avec des extensions spécifiques à Python. Chacun profite à un public légèrement différent de développeurs Python, bien que beaucoup s'efforcent d'être utiles en tant que solutions universelles.

Aujourd'hui, bon nombre des IDE sont des frameworks équipés de plugins pour des langages et des tâches spécifiques, plutôt que des applications écrites de l'intérieur pour favoriser le développement dans une langue donnée. À cette fin, votre choix d'IDE peut être déterminé par le fait que vous ayez ou non une expérience avec un autre IDE de la même famille.

Vidéo connexe: Pourquoi Python facilite la programmation

Pour ceux qui n'ont pas une telle expérience, PyCharm est l'un des meilleurs endroits pour commencer. Il est convivial pour les nouveaux arrivants, mais pas paralysé dans son ensemble de fonctionnalités. En fait, il présente certaines des fonctionnalités les plus utiles parmi tous les IDE présentés ici. Beaucoup de ces fonctionnalités ne sont disponibles que dans la version payante du produit, mais il y en a beaucoup dans la version gratuite pour aider un développeur débutant à démarrer.

LiClipse et les outils Python pour Visual Studio (PTVS) sont de bons choix pour les développeurs déjà intimement familiers avec Eclipse et Microsoft Visual Studio, respectivement. Les deux sont des environnements de développement à part entière - aussi complets que vous allez le trouver - qui intègrent assez bien Python. Cependant, ce sont aussi des applications complexes et tentaculaires qui entraînent une surcharge cognitive importante. Si vous maîtrisez déjà l'un ou l'autre, vous trouverez que c'est un excellent choix pour le travail Python.

L'incarnation Python de l'IDE Komodo d'ActiveState est naturelle pour ceux qui ont déjà utilisé l'IDE Komodo pour un autre langage, et il possède des fonctionnalités uniques (comme l'évaluateur d'expression régulière) qui devraient élargir son attrait. Komodo mérite un examen attentif de la part des novices et des experts.

Spyder est mieux adapté pour travailler avec IPython ou d'autres outils de calcul scientifique dans des distributions comme Anaconda, plutôt que comme une plate-forme de développement pour Python en général. Enfin, IDLE est mieux réservé à la création de scripts rapides et sales, et même sur ce point, il pourrait prendre un second rang pour un éditeur de code autonome avec un plugin de syntaxe Python. Cela dit, IDLE est toujours là quand vous en avez besoin.

TOURNER AU RALENTI

IDLE, l'environnement de développement inclus dans la plupart des installations de Python, pourrait être considéré comme l'IDE Python par défaut. Cependant, IDLE n'est en aucun cas un substitut à un IDE à part entière; c'est plus comme un éditeur de fichiers sophistiqué. Néanmoins, IDLE reste l'une des options par défaut pour les développeurs Python pour se familiariser avec le langage, et il s'est amélioré progressivement avec chaque version de Python, en particulier avec Python 3.5. (Voir cette page pour une discussion intéressante sur les efforts récents pour améliorer IDLE.)

IDLE est entièrement construit avec des composants fournis avec une installation par défaut de Python. En plus de l'interpréteur CPython lui-même, cela inclut la boîte à outils de l'interface Tkinter. Un avantage de construire IDLE de cette façon: il fonctionne sur plusieurs plates-formes avec un ensemble cohérent de comportements. En revanche, l'interface peut être terriblement lente. L'impression de grandes quantités de texte d'un script dans la console, par exemple, est beaucoup plus lente que si le script est exécuté directement à partir de la ligne de commande.

IDLE a quelques commodités immédiates. Il arbore une boucle intégrée de lecture-évaluation-impression (REPL), ou console interactive, pour Python. En fait, ce shell interactif est le premier élément présenté à l'utilisateur lors du lancement d'IDLE, plutôt qu'un éditeur vide. IDLE comprend également quelques outils trouvés dans d'autres IDE, tels que la fourniture de suggestions de mots-clés ou de variables lorsque vous appuyez sur Ctrl-Espace, et un débogueur intégré. Mais les implémentations de la plupart de ces fonctionnalités sont primitives par rapport aux autres IDE et cachées par la sélection limitée de composants d'interface utilisateur de Tkinter. Et la collection de modules complémentaires tiers disponibles pour IDLE (l'un de ces projets est IdleX) est loin d'être aussi riche que celle que vous trouverez avec d'autres IDE.

En résumé, IDLE est le meilleur pour deux scénarios. Le premier est lorsque vous souhaitez pirater un script Python rapide et que vous avez besoin d'un environnement préconfiguré pour le faire. Le second est pour les débutants qui ne font que faire leurs jambes. Même les débutants devront rapidement passer à une option plus robuste.

Spyder

Spyder est l'abréviation de «Scientific PYthon Development EnviRonment». Il est destiné à être utilisé comme atelier pour le calcul scientifique avec Python, et cela se reflète dans l'ensemble de fonctionnalités, l'empaquetage et le comportement global de l'EDI. Spyder a des fonctionnalités utiles pour le développement général de Python, mais à moins que vous ne travailliez principalement avec IPython et des packages de calcul scientifique, vous êtes probablement mieux avec un IDE différent.

La principale raison de ne pas utiliser Spyder comme environnement de développement Python à usage général n'est pas l'ensemble de fonctionnalités, mais le processus de configuration. Spyder n'est pas livré en tant qu'exécutable autonome à la manière d'un produit comme Visual Studio ou PyCharm. Au lieu de cela, il est installé en tant que package Python. Votre chemin le plus simple vers Spyder consiste à installer une distribution Python qui l'accompagne préchargée, telle que Anaconda de Continuum Analytics.

1. Disponible en tant qu'extension, mais ne prend en charge que la vérification de syntaxe. 2. Disponible en tant que module complémentaire Eclipse. 3. Disponible en version commerciale. 4. Voir les instructions d'intégration. 5. Utilise les systèmes de contrôle de version installés sur l'hôte.
  TOURNER AU RALENTI Komodo LiClipse PyCharm PTVS Spyder
Prise en charge de Cython Non Oui (1) Non Oui (3) Non Non
Contrôle de version Non Oui Oui Oui Oui Oui (5)
Débogueur graphique Non Oui Oui Oui Oui Non
Prise en charge d'IPython Non Non Non Oui Oui (4) Oui
Macros Non Oui Oui (2) Oui (2) Oui Non
Interprètes multiples Non Oui Oui Oui Oui Oui
Refactoring Non Oui Oui Oui Oui Non
Intégration de base de données Non Oui Oui (2) Oui (3) Oui Non
HTML / CSS / JavaScript Non Oui Oui Oui Oui (3) Non

Spyder inclut IPython, qui remplace la console Python conventionnelle. Lorsque vous tapez des commandes dans IPython, les résultats peuvent être explorés de manière interactive. Chaque commande peut être traitée comme une «cellule» ou un segment de code dont la sortie peut être stockée et collée.

Spyder ajoute à cela en intégrant les comportements de cellule dans son éditeur de code. Si vous insérez des commentaires spécialement formatés dans un script Python, vous pouvez le diviser en cellules et exécuter ces cellules dans l'interface IPython dans n'importe quel ordre. De cette façon, il est facile d'utiliser Spyder pour prototyper des cellules à placer ultérieurement dans un bloc-notes IPython.

Pour le débogage, Spyder utilise le débogueur Pdb intégré de Python. L'interface de ligne de commande pour Pdb est bien loin des débogueurs graphiques plus sophistiqués trouvés dans PyCharm ou LiClipse, bien que vous puissiez installer le débogueur graphique Winpdb en tant que module complémentaire facultatif. Malheureusement, vous ne pouvez pas utiliser Winpdb avec Python 3, car il a des dépendances sur des packages qui ne sont toujours disponibles que dans Python 2 (en particulier, wxPython). À cette fin, la plupart des gens seront bloqués avec Pdb.

Spyder est également limité par rapport aux autres IDE dans son intégration avec des systèmes de contrôle de version comme Git et Mercurial. Si vous travaillez dans un référentiel de projet initialisé, les fichiers de ce projet afficheront les éléments de menu contextuel du clic droit pour le référentiel. Cela dit, il n'y a pas de mécanismes de contrôle de version intégrés directement dans Spyder; vous devez disposer de l'application de contrôle de version appropriée déjà installée au niveau du système, avec ses exécutables disponibles à partir du chemin d'accès système. Spyder n'inclut pas non plus d'outils de gestion des référentiels dans son interface utilisateur. Ces lacunes ne sont pas si graves si vous avez déjà l'habitude de gérer vous-même les référentiels, mais elles constituent des obstacles supplémentaires si vous ne l'êtes pas.

Spyder possède des fonctionnalités utiles pour le développement général de Python. Celui qui a immédiatement attiré mon attention est le volet de l'explorateur de variables dans l'interface de Spyder. Lorsque vous tapez des commandes dans IPython, toutes les variables créées y sont enregistrées et peuvent être explorées de manière interactive. Un autre outil utile est le suppresseur de module utilisateur. Activez-le et l'interpréteur Python rechargera tous les modules à partir de zéro lorsqu'il exécutera un script Python. De cette façon, toutes les modifications apportées au code d'un module peuvent être appliquées à un programme en cours d'exécution sans avoir à redémarrer l'ensemble de l'application.

IDE ActiveState Komodo

La gamme de produits IDE d'ActiveState comprend des versions pour presque toutes les langues principales. L'approche de l'entreprise à ce sujet est un peu comme le fonctionnement de LiClipse: prenez le produit de base (dans ce cas l'IDE Komodo) et équipez-le avec des modules complémentaires pour le développement Python.

Komodo est le mieux adapté à ceux qui sont déjà familiarisés avec les incarnations de Komodo pour d'autres langues. Les personnes ayant une telle expérience à leur actif n'auront aucun mal à se plonger dans le produit Python. Si vous venez à froid, il y a quelques bizarreries d'interface utilisateur à noter. Par exemple, la barre de menus de l'application n'est pas exposée par défaut; vous devez cliquer sur le menu hamburger en haut à droite ou appuyer sur la touche Alt pour l'afficher. Il est destiné à garder les choses propres et simples, mais peut être trop minimaliste pour certains goûts.

D'autre part, certains des choix d'interface sont immédiatement attrayants. J'ai particulièrement aimé la «mini-carte», un aperçu agrandi du code dans l'éditeur, qui vous permet de jeter un coup d'œil à n'importe quelle partie du fichier que vous éditez. LiClipse a une fonctionnalité similaire, mais l'implémentation de Komodo est plus facile à utiliser.

La plupart des IDE Python sont équipés de fonctionnalités telles que la vérification de la syntaxe ou le linting de code spécifiques à Python. Komodo IDE a tout cela, mais il a également été conçu pour prendre en charge les versions 2 et 3 du langage en même temps. Si vous souhaitez lancer un shell Python, par exemple, et que vous avez des interpréteurs pour les deux versions de Python disponibles dans votre chemin système, vous pouvez choisir explicitement l'une ou l'autre version. J'ai souvent eu besoin d'exécuter des tests rapides des comportements d'une instruction donnée dans Python 2 et Python 3 côte à côte, et c'est un moyen pratique de le faire.

Komodo vous offre la possibilité d'appliquer plusieurs configurations d'exécution ou de débogage pour une application, mais c'est un peu moins flexible qu'une fonctionnalité similaire de LiClipse. Lorsque vous lancez une application, vous avez le choix entre plusieurs profils à appliquer au programme. Vous pouvez désactiver le sélecteur de profil et passer directement à l'exécution d'un profil, mais la désactivation ne peut être effectuée que sur une base d'application, pas pour un projet particulier. Je préfère le menu déroulant de la barre d'outils de LiClipse dans lequel vous pouvez sélectionner un profil donné ou lancer le profil le plus récemment utilisé en un clic.

Une inclusion vraiment merveilleuse est une boîte à outils d'expression régulière. Tapez une expression régulière dans un volet de cet outil, fournissez des exemples de données auxquels l'appliquer dans un deuxième volet, et les résultats apparaissent dans un troisième. L'outil prend également en charge plusieurs saveurs de regex, Python inclus, et vous montre même les résultats des opérations de correspondance, de fractionnement et de remplacement. Je lutte tout le temps avec la création d'expressions régulières fonctionnelles, donc cet outil est une aubaine.

Une autre fonctionnalité prête à l'emploi est un catalogue d'extraits de code courants pour Python. Cliquez sur «marcher», par exemple, et l'éditeur insère le code standard pour utiliser la os.walkfonction de Python pour parcourir les répertoires, une des fonctions dont je ne me souviens jamais de la syntaxe et de l'utilisation. D'autres langues sont également incluses. Par exemple, si vous avez besoin de glisser du code HTML standard dans un modèle Django que vous préparez, Komodo est là pour vous.

La distribution Python par défaut est fournie avec le support de SQLite prêt à l'emploi. Komodo IDE complète cela en fournissant un explorateur intégré pour les bases de données SQLite. C'est un peu comme une version allégée des applications de bureau «workbench» fournies pour MySQL ou Microsoft SQL Server. L'interface est maladroite et peu attrayante, mais elle convient parfaitement à une inspection rapide et sale ou à une édition ponctuelle d'une base de données. Il n'est pas destiné à servir d'EDI de base de données à part entière.

Vous trouverez de nombreuses autres fonctionnalités utiles dans Komodo, même si elles ne ciblent pas spécifiquement Python. L'enregistreur de macros vous permet d'enregistrer et de lire des actions courantes, bien qu'il ne semble pas enregistrer certains types d'actions telles que le choix du profil d'application à utiliser lors du lancement d'une application. Une autre fonctionnalité permet une collaboration en temps réel entre les utilisateurs de Komodo, bien qu'ils devront s'inscrire à des comptes avec ActiveState pour accéder au service.

LiClipse 

L'IDE Eclipse est souvent critiqué comme étant lent et surchargé, mais sa large prise en charge du langage et sa galerie de modules complémentaires de développement en font un outil puissant et précieux. Python est pris en charge dans Eclipse via le module complémentaire PyDev. Si vous utilisez Eclipse pour rien d'autre que le développement Python, votre meilleur pari est de récupérer LiClipse. (Tout au long de cette revue, j'utiliserai LiClipse comme raccourci pour l'ensemble des fonctionnalités fournies par LiClipse et PyDev ensemble.)

LiClipse est un reconditionnement d'Eclipse avec PyDev, ainsi que de nombreux autres composants Eclipse destinés à améliorer l'expérience utilisateur. Lors de son lancement, LiClipse ressemble et se comporte beaucoup comme l'édition régulière d'Eclipse, à l'exception de la marque et des icônes LiClipse, de sorte que les utilisateurs expérimentés d'Eclipse ne devraient pas avoir beaucoup de mal à configurer l'espace de travail à leur guise. Si vous n'avez pas d' expérience avec Eclipse, vous aurez besoin d'un peu de temps pour apprendre comment fonctionne l'espace de travail d'Eclipse (cet aspect d'Eclipse est régulièrement critiqué). En ce sens, LiClipse est le meilleur pour les personnes qui sont déjà à l'aise avec Eclipse, peut-être pour y travailler via une autre langue.

fiche d'évaluation Capacité (30%) Performance (10%) Facilité d'utilisation (20%) Documentation (20%) Modules complémentaires (20%) Note globale (100%)
RALENTI 3.5.1 6 sept 8 sept 5 6,5
Komodo IDE 10.1.1 8 8 sept 8 8 7,8
LiClipse 3.1 9 sept sept 8 9 8,2
PyCharm 2016.2.3 9 8 9 8 8 8,5
Spyder 3.0.0 sept sept sept sept 6 6,8
Python Tools 2.2 pour Visual Studio 2015 9 8 sept 9 9 8,5