• # no silver bullet

    Posté par . En réponse au journal Qu'est-ce qu'un outils de développement de rève ?. Évalué à 1.

    Il faut éviter la fiction de l'« outil de développement de rêve » : de même qu'il n'y a pas de silver bullet technique (i.e. ce n'est pas en adoptant tel nouveau paradigme qu'on résout tous les problèmes), il n'y a pas d'outil miracle qui élimine tous les soucis de la programmation. La programmation est par construction une activité intellectuellement complexe et elle le restera.

    De mon côté ce qui me plaît c'est d'avoir de petits outils légers et souples. Comme je vis dans le monde Python je choisirai mes exemples dans ce monde-là :
    - un interpréteur interactif avec complétion des symboles locaux
    - une commande help() dans ce même interpréteur interactif qui fonctionne sur n'importe quel objet
    - un exécutable "pydoc" qui fait la même chose que le help() suscité, mais depuis bash (exemple : "pydoc unittest")
    - la possibilité d'écrire simplement, et d'exécuter tout aussi simplement des tests unitaires (comme avec nose ou py.test)
    - la possibilité de faire rapidement des packages ou bibliothèques, avec gestion de certaines métadonnées de base (setuptools)
    - la possibilité d'installer facilement des bibliothèques ou outils packagés avec l'outil sus-mentionné (easy_install qui lit les métadonnées depuis http://pypi.python.org/ )
    - des conventions saines définies par le langage, par exemple pour les exceptions
    - des fonctions intégrées à la bibliothèque standard, pour faire du logging par exemple, voire du profiling

    Certains, selon leur goût, ajouteront probablement un debugger intégré. Ne pas devoir recompiler (faire un build séparé) pour avoir la possibilité de debugger est certainement un très gros plus.

    Le tout est d'avoir un environnement habitable et, comme dans une maison, cela veut dire combiner de multiples éléments de mobilier bien conçus, et non chercher la solution ultime (l'analogie originale est de Joel Spolsky je crois).