Post by AurelgadjoPost by Pascal PONCETJe peux en dire plus sur les avantages d'un IDE par rapport à un
éditeur, si vous y tenez. En tout cas, c'est un outil devenu
incontournable pour moi.
Si vous le voulez bien ça m'intéresse,
(des liens éventuellement vers un blog ou autre m'iraient aussi)
Bonjour,
Il faut d'abord considérer que les arguments apportés en réponse à ce
type de question sont toujours personnels. Ils dépendent fortement de
l'usage que l'on fera de ce genre d'outil, pour quelle dimension de
projet, avec quelle type d'organisation et au sein quelle structure.
Donc, je ne rapporterais-là que mon expérience personnelle à l'usage de
différents types de produits, sur plusieurs années de développement, et
dans le contexte restreint de la production de sites et d'applications
Web avec les langages HTML, CSS, Javascript, PHP et SQL.
D'abord les éditeurs :
A la base, un simple éditeur textuel suffirait (par ex. le bloc-notes de
Windows).
Mais rapidement s'impose le besoin d'y voir plus clair dans le code,
avec une coloration syntaxique dépendante du langage en cours d'édition.
A ce propos, il est essentiel que l'éditeur, déterminant automatiquement
le type de fichier en cours, détermine également le langage qui y est
associé et utilise la coloration syntaxique correspondant à ce langage.
Je suis d'abord passé par des éditeurs Wysiwyg, comme Frontpage et
Dreamweaver, qui ont l'avantage de simplifier la tâche pour la partie
HTML + CSS. Mais, commençant à maîtriser ces langages et augmentant la
taille des scripts, j'ai préféré pour ce type d'usage des éditeurs
purement textuels comme Scite et Notepad++ (j'ai conservé l'usage du
dernier à ce jour, pour des modifications rapides).
Enfin les IDEs :
Bien sûr, ils intègrent au minimum l'équivalent d'un éditeur textuel
avec coloration syntaxique ! Mais quoi de plus ?
D'abord une aide contextuelle sur le langage. Elle saura proposer une
liste de fonctions, variables, constantes, objets, méthodes ou
propriétés spécifiques au langage, correspondant aux premières lettre
saisies et au contexte d'utilisation.
Ensuite une gestion de projet. Elle permet d'englober l'ensemble des
fichiers dans un contexte unique de développement.
Pour éditer un des fichiers, il faudra d'abord ouvrir le projet dont il
fait partie. Cela permettra à l'IDE de recenser toutes les fonctions,
variables, etc., de tous les fichiers du projet et, ainsi, de pouvoir
les proposer également dans l'aide contextuelle.
Ce recensement permet souvent à l'IDE de présenter un arbre des
fonctions, classes, etc., avec même, pour ces dernières, les différents
niveaux hiérarchiques liés aux héritages.
Si l'on prend l'exemple d'Eclipse, quelque soit sa distribution, un clic
associé à la touche Ctrl me permet :
- sur un objet, de remonter directement à sa classe et au fichier qui
contient sa définition;
- idem sur une fonction;
- sur la chaîne qui suit un include ou un require, d'ouvrir le fichier
correspondant;
- sur l'utilisation d'une variable, de remonter à l'endroit où elle a
été initialisée (pour PHP, disons plutôt l'endroit où sa première valeur
a été définie).
De plus, un simple passage du pointeur sur une fonction utilisateur me
permet, si elle a été documentée de façon standard (type JavaDoc,
PHPDocumentor, etc.), de connaître son utilisation complète (usage,
syntaxe, nom et types des variables, valeur de retour).
Au-delà de ces fonctionnalités de base pour un IDE, on peut trouver
beaucoup de chose, plus ou moins utiles selon nos habitudes et nos usages.
On peut retenir, parmi les plus courantes, un gestionnaire FTP (avec ou
sans synchronisation), un outil de versionnage (CVS, subVersion, etc.),
un outil de débogage (XDebug, Zend Debugger, etc.), un gestionnaire
LAMP/WAMP (XAMPP, EasyPHP, etc.), un connecteur SGBD permettant de
passer des requêtes (Quantum), une plateforme de tests unitaires
(PHPUnit), un outil de modélisation (UML).
Il existe des IDEs payants de très hautes facture, comme PHPEdit, Zend
Studio (je me limite à ceux qui intègrent au moins PHP, bien sûr).
Pour ma part, j'utilise maintenant Eclipse dans sa distribution PDT (PHP
Development Tools), qui est construite et suivie conjointement par les
boards d'Eclipse et de Zend (donc les plus sérieuses références).
Cet IDE est gratuit, OpenSource, et peut intégrer tout ce que j'ai
décrit plus haut ! Alors quoi de mieux ?
Cordialement,
Pascal
PS: les références à Eclipse PDT se trouvent dans mon précédent billet.