web-dev-qa-db-fra.com

Qu'est-ce qui justifie l'utilisation d'un IDE par rapport à un éditeur standard?

Je me retrouve à utiliser mon éditeur de texte de choix (vim, nano, gedit, choisissez votre poison) beaucoup plus souvent que tout IDE récemment).

Après avoir remarqué que mes raccourcis idéaux devenaient poussiéreux, j'ai commencé à y penser et à me demander: ce qui justifie l'utilisation d'un IDE pour vous opposé à un éditeur de texte?

D'ailleurs, quelle justification auriez-vous pour pas en utilisant un IDE et en vous appuyant simplement sur un éditeur?

39
Chris

Le I: intégration. Un bon éditeur de texte peut être bien pour écrire du code, mais la plupart de votre programmation n'est pas consacrée à l'écriture; il est passé à tester et déboguer, et pour cela vous voulez que votre éditeur de texte s'intègre avec votre compilateur et votre débogueur. C'est la plus grande force d'un IDE.

70
Mason Wheeler

Ce sont mes fonctionnalités préférées de mon IDE préféré, IntelliJ, que j'aime utiliser pour Java, PHP, Javascript, HTML, même ActionScript.

  • Vérification d'erreur - Comme la vérification orthographique en direct pour le code. Absolument essentiel.
  • Navigation par code - Ctrl+click sur une fonction, variable, tapez pour aller à la définition. (IntelliJ est très bon dans tous les langages ci-dessus)
  • Compléter le code - J'utilise Ctrl+space constamment pour aider à remplir le nom de classe ou de méthode dont j'ai besoin. Cela accélère le codage d'une tonne , et aide même à détecter les bogues avant qu'ils ne se produisent lorsque quelque chose dont vous avez besoin n'est pas accessible à partir du contexte dans lequel vous vous trouvez. IntelliJ va même vous aider à développer des acronymes - tapez NPE, appuyez sur Ctrl+space, et il affichera "NullPointerException", "NoPageError", etc. Frapper Alt+enter pour ajouter automatiquement le import est vraiment bien aussi.
  • Génération de code - Générez des getters et setters, implémentez des méthodes à partir d'une interface en quelques clics.
  • Très bien coloration du code - IntelliJ fait non seulement le mot clé standard, la chaîne, la coloration du nom de variable, mais colore également les variables membres, les variables locales, les paramètres. Dans ActionScript, une variable qui est en fait un setter/getter sera colorée comme une fonction.
  • Refactoring - Le renommage sans erreur est le plus grand. IntelliJ est très bon pour renommer même les setters et les getters ou les utilisations de chaînes. Bien sûr, il existe une recherche et un remplacement basés sur des expressions rationnelles lorsque vous en avez besoin, et une option "conserver le cas" pour vous permettre de remplacer "monNuméro", "MonNuméro" et "MONNOMBRE" par "maString", "MaString" et "MYSTRING" en une seule opération
  • Intégration du contrôle de version - Nous utilisons SVN, et mon préféré IDE VC les fonctionnalités sont capables de créer, supprimer, déplacer des classes sans penser à SVN, parcourir facilement l'historique, un très bon outil de différenciation, une bonne capacité de fusion et annoter des fichiers (montrant l'historique ligne par ligne) dans l'éditeur.
  • Importation de dépendances - Lorsque vous vous appuyez sur une bibliothèque tierce pour laquelle vous avez la source, vous pouvez facilement naviguer vers le code pour référence, débogage, etc.
  • Smart typing - coller du code et le coller automatiquement à la bonne position de tabulation, complétion automatique des parenthèses, des parenthèses, des guillemets, etc.
  • Un très bon Test runner pour JUnit, FlexUnit, PHPUnit
  • Débogage - bien sûr. Débogue JBoss, Jetty, même Flash sans problème. Ctrl + clic sur les traces de pile pour accéder directement au code.

Des choses comme la coloration du code que vous pourriez prendre pour acquis, mais une bonne coloration du code est comme la vision périphérique - elle vous permet de vous concentrer sur les choses importantes sans prendre une fraction de seconde supplémentaire pour identifier le mot complet.

IntelliJ utilise également Ctrl+space pour suggérer des noms de variables. En Java, si vous déclarez une nouvelle variable EventMessageItem et appuyez sur Ctrl+space, il proposera "eventMessageItem", "eventMessage", "item", etc.

Toutes ces choses me donnent moyen plus de temps pour réfléchir à mon code et à mon architecture, et moins penser à la correction du formatage, au traitement du système de fichiers, à la correction de la copie -et coller des erreurs, basculer entre les applications, traquer la documentation, etc. etc. Je ne sais pas comment vous pouvez dire non à ce genre d'augmentation de la productivité.

49
Nicole

Les IDE comprennent bien mieux votre code qu'un éditeur. Cela permet par exemple de compléter l'identifiant et de le refactoriser, ce qui pour les langages verbeux comme Java est un envoi de Dieu,

21
user1249
[To the IDE] You had me at intellisense/autocomplete
18
JohnFx

Productivité. Y a-t-il une autre justification qui a du sens? Pour moi, un IDE bien conçu qui centralise un grand nombre des fonctions que j'exécute lors de la programmation - création et édition de code, utilisation du contrôle de code source, débogage, interaction avec les outils de gestion de projet, communication avec autres programmeurs, création de documentation, exécution de tests automatisés - réduit considérablement la friction du processus qui réduit ma productivité.

De plus, même si je sens que j'ai besoin de savoir comment utiliser chaque outil individuellement, je ne veux pas avoir à le faire. Pour moi au moins, un clic droit de la souris est infiniment préférable à l'ouverture d'une CLI et à la saisie.

J'en ai utilisé beaucoup, mais les IDE que je reviens encore et encore sont Visual Studio, Wing IDE et NetBeans. Tous ajoutent une valeur significative au temps que je passe à programmer.

14
Adam Crossland

Historiquement, les IDE offraient une commodité inégalée sur un ordinateur à tâche unique. Mon premier compilateur C a nécessité les étapes suivantes dans le cycle d'édition-compilation-exécution:

  • Démarrer l'éditeur
  • Modifier le programme
  • Enregistrer le programme, quitter l'éditeur
  • Compiler le programme
  • Assembler le programme compilé
  • Lien programme compilé et assemblé
  • Exécuter de programme

sur mon système CP/M. (J'aurais pu automatiser une grande partie de cela comme un programme batch si mes lecteurs de disque avaient été plus gros.)

Quand j'ai obtenu Turbo Pascal, j'étais ravi de pouvoir garder l'éditeur disponible pendant la compilation et le débogage.

C'est, je crois, ce qui a rendu les IDE populaires en premier lieu.

9
David Thornley

Si vous codez dans LISP, Emacs a des capacités de type Intellisense comme la recherche de paramètres de méthode et la saisie semi-automatique, vous pouvez donc dire que c'est l'IDE d'origine. Il est également agréable de pouvoir utiliser un programme pour plusieurs tâches (édition en général, Shell/invite de commande, lecture des actualités).

En général, l'éditeur vs IDE semble dépendre du langage de programmation. D'après ce que j'ai vu, Ruby et les codeurs Haskell, par exemple, semblent préférer leur éditeur de texte préféré.

7
Larry Coleman
  • Compilation en un clic
  • Débogage
  • Modèles de code
  • Compléter le code
  • Intégration avec les outils de contrôle de version et de refactoring
  • Tests unitaires plus simples

pour n'en nommer que quelques-uns

4
ysolik

Je pense que la réponse dépendra beaucoup du langage de programmation que vous utilisez et de votre niveau. Pour les langages comme Java an IDE est indispensable si vous faites quelque chose de sérieux. Où que ce soit quand il s'agit de langages de script comme JS ou Ruby Les IDES ne sont pas d'une grande utilité.

J'utilise notepad ++ et un ensemble de scripts Shell (pour les sauvegardes, git commits) pour mon développement et cela fonctionne parfaitement.

3
Eastern Monk

Quelques arguments en faveur des "éditeurs":

  1. Il y a des cas où un IDE n'a pas encore été développé ou ne le sera jamais.
  2. Avec un éditeur, vous pouvez effectuer des modifications "plus rapidement" et plus chirurgicalement.
  3. Il nécessite beaucoup moins de ressources (donc plus facile à utiliser plusieurs ouvert en même temps)
  4. Parce que c'est la seule façon de résoudre certains problèmes comme ceux décrits ici .
  5. (personnel) Parfois, quand je dois tout taper, je travaille plus en utilisant ma conscience et je suis plus engagé dans ce que je tape. Plusieurs fois, j'ai trouvé par exemple une erreur d'orthographe dans une méthode (formaqString), qui serait passée inaperçue à l'aide d'un IDE.
  6. Il facilite le travail uniquement avec l'utilisation du clavier (vitesse/débit)
  7. Mentalité d'utiliser des macros ou d'autres gains de temps.

J'utilise un IDE tous les jours pour travailler, il est difficile d'écrire Java/C # sinon.

(2) par rapport à (3): Option essentiellement la seule pour modifier des fichiers à distance (via ssh/bureau distant) et apporter des modifications minimales à la configuration ou aux fichiers d'un serveur distant.

3

J'utilise le IDE pour les tests/débogage/intégration et KEDIT pour l'édition parce que le IDE est sérieusement déficient en capacités d'édition.
Parce que le .NET IDE reconnaît les modifications externes, tout ce que je dois faire est de sauvegarder dans l'éditeur et d'accepter l'invite pour recharger la source. Cela me permet d'optimiser mon édition et débogage des capacités en même temps.
Pour d'autres IDE, j'utilise KEDIT comme processeur de modèle et programme de recherche de source et je copie/colle cette source dans l'IDE.

2
Dave

En fonction bien sûr de votre langue, certains IDE incluent également des concepteurs visuels de formulaires/fenêtres.

Bien qu'il faille le souligner, la ligne entre l'éditeur de texte d'un programmeur et un IDE n'est pas bien définie. De nombreux éditeurs peuvent être étendus pour gérer la compilation, l'achèvement du code, le débogage, etc.

2
GrandmasterB

Pour IDE:
- les fonctionnalités avancées sont câblées hors de la boîte.
- certaines fonctionnalités sont si spécifiques à votre framework que les éditeurs n'ont pas d'équivalent.

Pour l'éditeur:
- Gardez vos mains sur le clavier.
- votre environnement de développement est le même sur tous les systèmes
- de meilleurs scripts pour votre éditeur
- certaines fonctionnalités d'un IDE sont disponibles avec des outils ou des scripts externes. (intellisense, définition goto, trouver des références)

1
mike30

Courbe d'apprentissage courte. C'est ça.

0
nate c

Le seul que je recommanderais vraiment est le débogueur. Un IDE est vraiment un éditeur avec une charge d'autres gubbins ajoutés, mais si vous pouvez compiler en tapant make (ou flèche haut + entrée) dans une invite de commande, alors vous ne le faites pas - besoin un IDE. Si vous pouvez vous engager dans SCM en faisant un clic droit dans l'Explorateur et en choisissant l'élément de menu de droite, vous n'avez pas besoin d'un IDE.

Maintenant, je sais que certaines personnes ont besoin de choses comme la prise en charge de la refactorisation (écrivez votre code dès la première fois :)) ou d'un concepteur d'interface graphique intégré (mais même alors, en utilisant Visual Studio, j'utilise Expression pour faire mon travail d'interface graphique, pas le support XAML merdique dans VS ), et de nombreuses personnes besoin intellisense et saisie semi-automatique (en particulier pour les langages verbeux comme Java et C # qui ont des noms très longs).

Mais pour moi, le débogueur GUI est la seule très bonne raison d'utiliser l'IDE. J'utilise toujours un débogueur "en ligne de commande" (enfin, windbg) mais pour le quotidien, c'est le intégré à VS.

0
gbjbaanb

Il y a des avantages à un IDE. Toutes les langues ne disposent pas d'un IDE pour vraiment faire pencher la balance ou il pourrait être extrêmement difficile d'en créer un pour une langue donnée. Raisons pour lesquelles voudrait un IDE? Commençons par ces éléments:

  • Le langage possède une API standard riche qui dans les fenêtres contextuelles IDE pourrait aider à accélérer le développement.
  • Il y a beaucoup de code de plaque de chaudière. (Essai/capture forcés, getters/setters, etc.)
  • La saisie semi-automatique peut répondre avec précision à vos besoins de codage
  • Votre suite de tests d'unités linguistiques est intégrée dans ledit IDE.
  • IDE est au courant et prend en charge de nombreuses bibliothèques de langues communes concernant les meilleures pratiques.
  • Plugins disponibles pour faire fonctionner mo'betta
  • Il n'est pas si lourd qu'il ralentit votre système
  • Débogueur hautement intégré? Qui aide.

Le problème n'est pas que toutes les langues gagnent vraiment un gros gain de productivité à partir d'un IDE complet. J'utilise des IDE pour certains travaux que je fais (Java, C #) mais pas pour d'autres (Python, Ruby, Coldfusion). Tout cela est vraiment un équilibre. Certaines langues ne nécessitent tout simplement pas une suite aussi complète.

Y a-t-il des IDE pour chacun? Sûr. En avez-vous toujours besoin? Pas vraiment.

0
Rig