UliPad : Enfin un bon éditeur de code pour Python

Après avoir passé une décennie à tester tout ce qui peut éditer du texte de près ou de loin, je commençais à être dépité : PyDev, Gedit, Jedit, Eric, SPE, IDLE, etc. Si PyScrabble avait existé, je l’aurais essayé.

Ces éditeurs souffrent tous d’une carence majeure ou d’une autre, souvent de plusieurs en même temps :

  • pas d’auto-completion correcte (à peu près tous);
  • un démarrage leeeeeeeeent (je regarde un certain plugin eclipse, là);
  • monoplatforme (TextMate, SublimText, anyone ?);
  • un shell mal intégré (voir aucun);
  • une pléthore de choses dont un programmeur Python n’a pas besoin.

Je m’arrête, on est pas là pour casser de l’IDE et je suis bien content de trouver Eclipse quand je code en Java.

Et puis soudain, au détour d’une mailling list, je découvre UliPad, un inconnu pourtant déjà en v4.0. La liste des fonctionnalités est alléchante, alors je teste.

UliPad, le liliputien qui casse la baraque

Le premier développeur de ce petit bijou devait sans doute être Fan de « Y a t-il un flic pour sauver Hollywood ? », se disant :

Tel le nain devant l’urinoir, je devais placer la barre très haut !

En effet, UliPad, avec son interface simple et son temps de démarrage de 2 sec 17 embarque pourtant toutes les fonctions les plus attendues, ainsi que des bonus inespérés.

Dans le classique on a :

  • Coloration syntaxique / Indentation automatique / Code folding / Brace Matching ;
  • Gestion de projet et de sessions;
  • Navigateur de fichiers local, FTP et SVN;
  • Navigateur de classes;
  • Debugger;
  • Search and replace avec regexp;
  • Gestion avancée des encodages, support parfait de l’UTF-8;
  • Sauvegarde automatique;
  • Gestion des TODOs;
  • Run du code sur F5 et ouput dans un shell intégré;
  • Toutes les fonctions de Scintilla, finalement.

Dans le genre, je pompe sur les meilleurs éditeurs du marché pour inclure leur killer-features :

  • Une autocompletion digne de ce nom;
  • Snippets à la TextMate (avec import / export);
  • Calltips sur les fonctions;
  • Plugins en pur Python;
  • Fenêtres de recherche non modales;
  • Nombreux outils de manipulation de texte, incluant plusieurs modes de sélection étendue,
  • L’insertion multi-ligne et les raccourcis emacs.
  • F6 sur un import vous permet d’ouvrir dans l’éditeur le module importé;
  • Testeur de regexp Python intégré;
  • Recherche dans les fichiers (grep graphique);
  • Multiview.

Puis on se paye le luxe de rajouter ce que la concurrence ne fait pas :

  • Coloration syntaxique et autocompletion dans le shell intégré;
  • Plugin Django intégré;
  • Sauvegarder le fichier vérifie automatiquement la syntaxe en référence au PEP8. Plugin d’intégration de PyLint.
  • L’aide à la saisie se désactive en fonction de votre vitesse de frappe;
  • Intégration des doctests;
  • Gère le reStructured text;
  • Plugin de programmation collaborative, ou comment débugger son code avec un collègue de Nouvelle Zélande.

Avec tout ça, on se dit que l’éditeur doit être très lourd. Il n’en est rien, l’interface est épurée, chargée en moins de 3 secondes pour un programme qui prend 9Mo sur le disque. La bestiole prend tout de même 100 Mo en mémoire, ce qui est deux fois plus que Gedit, mais combien de fois moins qu’Eclipse ?

Bon, tout n’est pas parfait :

  • Pas de version française;
  • Des bugs d’interfaces mineurs mais nombreux;
  • Pas de paquet sous Linux;
  • Un projet jeune, tout comme sa communauté.

Néanmoins, je l’ai déjà adopté, et si vous programmez souvent en Python je vous invite chaleureusement à lui donner sa chance. Démonstration :

4 Réponses à “UliPad : Enfin un bon éditeur de code pour Python”

  1. Pense-bête : nouveau projet Django + VirtualEnv + Git | E-vidence Dit:

    [...] lance ulipad et on saute sur [...]

  2. Installation Ulipad sous Linux Ubuntu | E-vidence Dit:

    [...] le meilleur éditeur pour Python, fonctionne sous Windows, Mac et GNU/Linux, mais il n’y a pas d’outil pour installer [...]

  3. Nathan Duthoit Dit:

    Très intéressant. As-tu déjà essayé WingIDE? Pour l’instant c’est mon éditeur de choix pour Python et Django.
    Je pense bien essayer UliPad.

  4. kevin Dit:

    Essaya la version du svn alors, elle est plus stable.

    Pour wingide, étant donné qu’il n’est pas open source ni libre, je ne suis pas très motivé pour l’utilisé à moins qu’il soit vraiment exceptionnel (ex : type skype)

Ça se comprend tout seul