• # IDE python

    Posté par . En réponse au journal Point de vue : un IDE est il un outil de programmation indispensable ?. Évalué à 5.

    Alors, je programme en Python. De temps à autres en Cython et enfin, très rarement en C.
    Je code aussi énormément en XSLT, mais je n'en parlerais pas ici parce que je ne me suis pas penché sur la question d'un IDE pour les fichiers xml, xslt, xschema, etc…

    Avant, j'utilisais Geany, quand je vivais dans le péché et la luxure sous Gnome. C'est vraiment très bien comme "petit" éditeur de code.
    Puis, j'ai migré vers KDE, loué soit son nom à travers les âges et que sa lumière nous éclaire, et j'ai commencé à utiliser Kate. C'est vraiment bien aussi, mais moins puissant que Geany je trouve (mais ça va certainement s'arranger, j'ai vu le mois dernier le blog de Kate et il y a ENFIN la possibilité de créer SIMPLEMENT des scripts Python \o/. Mais le temps que ça arrive dans Debian, j'aurais déjà coder mon propre IDE…)

    Je me suis mis à la recherche intensive d'un IDE qui correspondrait à mes attentes (principalement, la coloration syntaxique, la documentation visible LE PLUS RAPIDEMENT possible et un tas d'autres petits machins). J'ai testé KDevelop (que j'ai fermé au bout de 30 secondes), et j'ai galéré quelques heures sur Eric (qui est vraiment horrible à configurer, la faute à une documentation merdique).

    Puis, au fin fond d'une question stackoverflow, je suis tombé sur Spyder. Je l'ai testé, et je l'ai finalement adopté comme IDE depuis un bon moment maintenant (plus d'un an ? deux ans ? J'ai oublié)
    Ce qui améliore ma productivité :
    - le fait d'avoir un widget avec la documentation en reStructuredText (et allelluia, Spyder accepte la documentation typée numpydoc. Même si j'avoue avoir légèrement forké le style numpydoc pour un usage personnel car la génération avec sphinx ne produit pas un résultat satisfaisant à mes yeux. On s'égare mais c'est essentiel pour moi d'avoir une documentation lisible DANS le code et APRÈS la génération d'une doc html.
    - La coloration syntaxique. Bon, 99,9% des éditeurs de code ont ça, qui est généralement de bon niveau. Mais j'aime bien celle proposer par Spyder.
    - Mettre des points d'arrêts en un click pour utiliser le debugger Python pdb. Ma période "print print print" est terminé.
    - La console interactive python ou ipython. Accessible d'un click ou raccourci clavier.
    - L'intégration de pylint, pour respecter à peu près les standards d'écriture Python, et profiler le code, pour repérer les bouchons. La sortie du profiler est très lisible et visuel, c'est cool.
    - La complétion du code presque efficace (j'en parle un peu plus bas)
    - Le pc ne fait pas fondre la table sous la charge processeur (non, non, je ne vise personne…).

    Y a des trucs qui peuvent être utile à d'autres:
    - L'inspecteur d'objet. Quand on lance le code, on peut aller trifouiller dans la mémoire via un widget et observer/remplacer visuellement les valeurs des objets Python. Perso, bien que je comprenne l'utilité, je ne l'utilise pas du tout, préférant la console.
    - L'intégration git. Vu que je ne fais que des "pull, commit, push", je vais plus vite en ligne de commande que clicker.
    - Y a un tas de features sur les graphiques mathématiques, les formules et plein de bordel scientifique. Moi, je suis un gueux, je n'y connais rien et je n'en ai pas du tout l'utilité pour le moment. Mais je comprend parfaitement ce coté killer-feature de Spyder.
    - etc…

    Et Spyder est vivant, ce n'est pas un code qui dort dans google code.

    Le seul truc qui me déçoit, c'est la complétion de code DANS l'éditeur de code. Sur les libs standard, pas de problème. Sur mon propre code non plus. Mais dès que je tape dans lxml par exemple (une bibliothèque indispensable pour mon boulot), ou SFML, la complétion ne me propose plus rien du tout. L'effet de bord non négligeable est que le widget de documentation ne se remplit pas automatiquement.
    Mais par contre, dans la console de l'IDE, pas de problème. J'ai bien toutes les complétions possible, avec la doc qui s'affiche en temps réel.

    En tout cas, j'ai presque trouver mon bonheur avec Spyder !