Perso, en théorie je suis d'accord avec Flanker (un IDE devrait faire partie des outils qui augmentent la productivité d'un programmeur), mais en pratique je suis d'accord avec Zeph (pour de multiples raisons, je continue d'utiliser un éditeur "simple"). Voilà qui va beaucoup faire avancer le débat

Pour préciser un peu plus, outre ce qu'a déjà expliqué Zeph, j'ai constaté que le temps que je passe à coder est fortement dominé par la reflexion. Ce qui veut dire que, quand bien même j'aurais un moyen 2 fois plus rapide d'écrire ou de modifier du code, le temps de développement resterait sensiblement le même. D'expérience, si jamais ce n'est pas le cas, très souvent ça veut dire deux choses :
- si je passe plus de temps à écrire qu'à réfléchir, c'est parce que je n'utilise pas le bon langage ou les bonnes bibliothèques. Ca revient en quelque sorte à faire du "brute force" pour obtenir un résultat. Pour prendre un exemple concret, même si Folco avait utilisé le meilleur IDE du monde pour écrire et débugger son "framegen" en C (700 lignes réparties dans 16 fichiers), il y aurait passé beaucoup plus de temps que ce qu'il m'aurait fallu pour faire la même chose en langage de script dans Notepad, que ce soit les 20 lignes de Perl ou un peu plus en Python, bien lisible avec de la doc et des tests.
- ou bien, si le code est légitimement fastidieux à écrire, et que je me retrouve quand même à être limité par le manque de completion automatique ou de contexte, etc... c'est que j'écris du code un peu en mode "pilote automatique" et dans ce cas je préfère me mettre à coder le pilote automatique qui codera à ma place. Typiquement, j'écris des générateurs de code. Même si au final je ne gagne pas forcément du temps, je préfère effectuer une activité stimulante intellectuellement plutôt que faire un travail de robot. Exemples : quand c'est la dixième fois que tu codes un parseur à la main et que t'as pigé la technique tu vas commencer à réfléchir à plutôt faire un générateur de parseur, pareil quand tu codes un système de RPC avec du marshalling de données, ou des bindings pour faire interagir deux langages, etc... Le but est de se retrouver à devoir coder quelque chose qui va demander plus de réflexion que de code à écrire.
Maintenant, je conçois tout a fait qu'un IDE permet de grapiller des secondes et des minutes par-ci, par-là, mais je le vois plutôt comme du confort "local". Pour moi, c'est comme quand je dis à tout le monde que j'utilise Vim parce que le mode d'édition est plus efficace qu'un éditeur classique, et que du coup je suis beaucoup plus rapide avec. En vrai, je suis bien content d'utiliser Vim parce que j'en ai l'habitude, mais si je mesure effectivement le temps gagné sur une journée ou une semaine, je suis à peu près certain que c'est négligeable. Pas de quoi casser trois pates à un canard.
Par contre, si on me présente un IDE qui permet vraiment d'aller 10 fois plus vite, en éditant directement le programme en fonctionnement (live editing), qui donne accès à toutes les valeurs du programme, même dans le passé (time travel debugging), qui permet de visualiser le résultat des algorithmes graphiquement de manière simple, etc... alors là c'est autre chose. Mais on n'y est pas encore. Aujourd'hui les IDE sont un peu archaïques, et leurs désavantages (lourdeur, spécialisation pour tel ou tel environnement, manque de flexibilité, etc...) sont trop nombreux à mon goût par rapport aux gains apportés.