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

39

Je me retrouve à utiliser mon éditeur de texte de choix (vim, nano, gedit, choisissez votre poison) beaucoup plus souvent que n’importe quel IDE ces derniers temps.

Après avoir remarqué que mes raccourcis étaient de plus en plus poussiéreux, j'ai commencé à réfléchir à cela et à me demander: qu'est - ce qui justifie l'utilisation d'un IDE pour vous opposé à un éditeur de texte ?

D'ailleurs, quelle raison voudriez-vous que vous n'utilisiez pas un IDE et que vous vous basiez simplement sur un éditeur?

Chris
la source
doublon possible de programmers.stackexchange.com/questions/1003/… ?
Larry Coleman
qu'est-ce que vous avez réellement faites dans vos éditeurs?
Écrire du code, développer des applications, ... à peu près tout en ce moment.
Chris
15
Personnellement, je trouve l'IDE beaucoup plus utile pour lire le code d'autres personnes (en particulier les gros projets) que pour écrire mon propre code. Les IDE vous permettent de naviguer plus facilement dans les sources, facilitant ainsi la compréhension rapide du code source des autres personnes.
Charles Salvia
3
Je voudrais tourner la question. Ce qui justifie de NE PAS utiliser un IDE.
Cloueur

Réponses:

70

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

Maçon Wheeler
la source
Si seulement je pouvais en trouver un qui ne me gênait pas :)
Tim Post
5
Je viens d'accepter le montage sous-pair comme prix que je paie pour la commodité de l'intégration.
TMN
Ne pas tester la programmation si vous le faites correctement? Si vous passez le plus clair de votre temps à déboguer et à tester des singes, alors je vois où se situe votre problème.
Tom Hawtin - tackline
8
@Tom, tester, c'est programmer quand vous pouvez automatiser les tests que vous faites tout le temps. Sinon, vérifiez par n'importe quelle méthode que vous obtenez la plus grande qualité.
Andres Jaan Tack
49

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 et même ActionScript.

  • Erreur de vérification - Comme vérification orthographique en direct pour le code. Absolument essentiel.
  • Code de navigation - Ctrl+clicksur une fonction, une variable, tapez pour aller à la définition. (IntelliJ est très bon dans toutes les langues ci-dessus)
  • Achèvement du code - J'utilise Ctrl+spaceconstamment pour aider à saisir le nom de la classe ou de la 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 surviennent lorsque quelque chose dont vous avez besoin n'est pas accessible depuis le contexte dans lequel vous vous trouvez. IntelliJ vous aidera même à développer les acronymes - tapez NPE, hit Ctrl+space, et affichera "NullPointerException", "NoPageError", etc. Frapper Alt+enterpour ajouter automatiquement le importest vraiment bien aussi.
  • Génération de code - Générer des getters et des setters, implémenter des méthodes à partir d’une interface en quelques clics.
  • Très bonne coloration du code - IntelliJ ne traite pas seulement le mot clé standard, la chaîne, la coloration du nom de la variable, mais également les variables membres, les variables locales et les paramètres de couleurs. 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 important. IntelliJ est très doué pour renommer même des setters et des getters ou des usages de chaîne. Bien sûr, il existe une recherche et un remplacement basés sur les expressions rationnelles lorsque vous en avez besoin, ainsi qu'une option "préserver la casse" pour vous permettre de remplacer "monNombre", "MonNombre" et "MYNUMBER" par "myString", "MyString" et "MYSTRING". en une seule opération
  • Intégration du contrôle de version - Nous utilisons SVN, et mes fonctionnalités IDE VC préférées sont de pouvoir créer, supprimer, déplacer des classes sans penser à SVN, naviguer facilement dans l'historique, un très bon outil de diff, une bonne capacité de fusion et des fichiers annotés historique en ligne) dans l'éditeur.
  • Importation de dépendances - Lorsque vous utilisez une bibliothèque tierce pour laquelle vous avez le code source, vous pouvez naviguer facilement dans le code pour référence, débogage, etc.
  • Saisie intelligente - coller du code et le faire coller automatiquement à la bonne position de l'onglet, complétion automatique des crochets, des parenthèses, des guillemets, etc.
  • Un très bon coureur de test 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 aller directement au code.

Des choses comme la coloration de code que vous pourriez prendre pour acquise, mais une bonne coloration de code est comme une 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 entier.

IntelliJ utilise même parfois Ctrl+spacepour suggérer des noms de variables. En Java, si vous déclarez une nouvelle variable EventMessageItem et que vous appuyez sur le bouton de la souris Ctrl+space, cela suggérera "eventMessageItem", "eventMessage", "item", etc.

Toutes ces choses me donnent ainsi plus de temps pour réfléchir à mon code et l' architecture, et penser moins sur la fixation de mise en forme, traiter avec le système de fichiers, corriger les erreurs et coller copie, la commutation entre les applications, pourchassant la documentation, etc. , etc. Je ne sais pas comment vous pouvez dire non à ce type d’augmentation de la productivité.

Nicole
la source
4
+ 1 pour la référence IntelliJ Idea - J'adore ça
artjom
3
+1, la plupart des points ici s'appliquent à n'importe quel IDE décent, ou devraient :)
Matthieu
21

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

utilisateur1249
la source
1
Notez que toute cette compréhension nécessite de la mémoire pour la stocker. Par conséquent, les IDE ont tendance à être très gourmands en ressources par rapport à un éditeur "ajustable sur une disquette".
19
Oui, mais ma machine de développement 8Gb i7 doit faire quelque chose pendant que je tape. : D
Dominique McDonnell
Les IDE ne doivent pas nécessairement avoir faim de ressources. Mais Smalltalk est probablement un cas extrême: la syntaxe simple, très simple de la réflexion, etc.
Frank Shearar
@Frank, cela dépend de ce que vous voulez qu'ils fassent et de la facilité avec laquelle vous le faites.
18
[To the IDE] You had me at intellisense/autocomplete
JohnFx
la source
1
+1 Même s'il est toujours déconcertant de réaliser que je ne tape plus jamais une classe, une méthode ou un nom de propriété complet, et que je sais exactement combien de touches il faut pour sélectionner l'option correcte de complétion automatique ... tic-tic-tic-tic-TAB- Point-Tic-Tic-Tic-TAB-Point-Tic-Tic-Tic
grossvogel
5
@gross, mais c'est vrai ! Taper manuellement implique souvent des erreurs de frappe.
@ TThorbjørnRavnAndersen Sauf si vous avez deux noms identiques et que vous ne saisissez pas assez de caractères par inadvertance pour obtenir le bon. J'ai accidentellement inséré une propriété "NumberOfPoints" dans quelques zones qui nécessitaient "NumberOfSegments" car je n'étais pas suffisamment attentive à mon achèvement automatique: p. Cela étant dit, je préférerais avoir la saisie semi-automatique plutôt que non.
KChaloux
14

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

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

J'en ai utilisé beaucoup, mais les IDE sur lesquels je reviens en arrière sont Visual Studio, Wing IDE et NetBeans. Tous ajoutent une valeur significative au temps que je passe à la programmation.

Adam Crossland
la source
9

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

  • Démarrer l'éditeur
  • Programme d'édition
  • Enregistrer le programme, quitter l'éditeur
  • Programme de compilation
  • Assemblez 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 en tant que programme batch si mes disques durs avaient été plus grands.)

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

Je pense que c’est ce qui a rendu les IDE populaires en premier lieu.

David Thornley
la source
Mais toutes ces choses peuvent être faites par beaucoup d'éditeurs; Emacs, par exemple.
JasonFruit
@ JasonFruit: Certainement. J'explique ce qui m'a attiré en premier. À cette époque, j'utilisais CP / M sur une TRS-80 Mod 4 et je pense qu'Emacs était encore basé sur TECO à l'époque.
David Thornley
Ok, le point. :-) (Emoticon remplissant le nombre requis de caractères.)
JasonFruit le
2
@JasonFruit, les machines CP / M-80 avaient un maximum de 64 Ko de RAM. Considérez combien Emacs vous pouvez intégrer dans cela.
7

Si vous codez en Lisp, Emacs dispose de fonctionnalités similaires à Intellisense, telles que la recherche de paramètres de méthode et la complétion automatique. Vous pouvez donc dire que c'est l'EDI d'origine. Il est également agréable de pouvoir utiliser un programme pour plusieurs tâches (édition en général, invite de commande / shell, lecture de nouvelles).

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

Larry Coleman
la source
Emacs peut vraiment le faire dans presque toutes les langues. Le mode PHP est très bon, sont les modes pour Javascript, Haskell, Erlang et SQL. (Les autres peuvent être bons aussi, mais je ne les ai pas utilisés).
Zachary K
Une fois que vous ajoutez tous ces éléments à emacs (ou à n’importe quel éditeur), vous avez un IDE. Environnement de développement intégré. Je compare cela à l'achat d'un gâteau dans une boulangerie (IDE) plutôt que de le fabriquer à partir de zéro (éditeur trompé)
sal
+1, Pour Coq, Haskell et Lisp, Emacs est la seule chose à avoir un soutien décent
Daniel Gratzer
4
  • Compilation en un clic
  • Débogage
  • Modèles de code
  • Complétion de code
  • Intégration avec les outils de contrôle de version et de refactoring
  • Tests unitaires plus simples

pour en nommer quelques-uns

Ysolik
la source
3

Je pense que la réponse dépendra beaucoup du langage de programmation que vous utilisez et de votre efficacité. Pour les langues telles que JAVA, un IDE est indispensable si vous faites quelque chose de sérieux. Les langages de script tels que JS ou Ruby IDES n’ont pas beaucoup d’utilité.

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

Moine oriental
la source
J'utilise GVIM pour Javascript et trouve qu'il est BEAUCOUP plus rapide que d'utiliser un IDE. Il utilise également beaucoup moins de mémoire. Ajoutez environ 3 ou 4 scripts shell à des tâches telles que jsLint, le formatage et le contrôle de sélénium. Je constate que je n'ai presque jamais besoin de retirer ma main du clavier. (Et pour être honnête, je pourrais probablement transformer tous ces scripts en plugins VIM si je m'en souciais)
Zachary K
3

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 de manière plus chirurgicale.
  3. Il nécessite beaucoup moins de ressources (il est donc plus facile d’utiliser beaucoup d’ouvert en même temps)
  4. Parce que c'est le seul moyen de résoudre certains problèmes tels que ceux décrits ici .
  5. (personnel) Parfois, lorsque je dois tout taper, je travaille davantage 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 est plus facile de travailler uniquement avec l’utilisation du clavier (vitesse / débit)
  7. Mentalité de l’utilisation de macros ou d’autres épargnants.

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

(2) comparé à (3): Fondamentalement, seule option pour éditer des fichiers à distance (sur ssh / remote desktop) et faire des changements minimes dans la configuration ou les fichiers d'un serveur distant.

Dimitrios Mistriotis
la source
2

En fonction de votre langue, certains IDE incluent également des concepteurs visuels de formulaire / fenêtre.

Bien qu'il faille le souligner, la ligne de démarcation 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, la complétion de code, le débogage, etc.

Grand maître b
la source
2

J'utilise l'EDI pour tester / déboguer / intégrer et KEDIT pour l'édition, car l'EDI est gravement déficient en capacités d'édition.
Etant donné que .NET IDE reconnaît les modifications externes, tout ce que j'ai à faire est de sauvegarder dans l'éditeur et d'accepter l'invite pour recharger la source. Cela me permet d’optimiser simultanément mes capacités d’édition et de débogage.
Pour d'autres IDE, j'utilise KEDIT en tant que processeur de modèles et programme de recherche de sources, puis je copie / colle cette source dans l'EDI.

Dave
la source
Que faites-vous dans kedit que l'EDI ne peut pas faire? Je suis vraiment curieux de n'avoir jamais vraiment utilisé qu'un IDE pour la plupart de mes problèmes de codage sérieux ...
Dean Harding
KEDIT, à l'instar d'autres éditeurs intelligents, dispose de fonctionnalités de script qui me permettent de faire des choses que l'EDI ne peut pas faire. Par exemple, j'utilise KEDIT pour effectuer plusieurs copies (copier / coller) et éditer des colonnes dans un tampon (jusqu'à 100 par session kedit) que l'EDI ne peut même pas approcher.
Dave
1

Pour IDE:
- Les fonctionnalités avancées sont câblées hors de la boîte.
Certaines fonctionnalités sont tellement 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 -
Des scripts plus agréables pour votre éditeur -
Certaines fonctionnalités d'un environnement de développement intégré sont disponibles avec des outils ou des scripts externes. (IntelliSense, aller à la définition, trouver des références)

mike30
la source
0

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

nate c
la source
4
Je suppose que tu n'as pas
atteint
4
Avec vim comme co-pilote, je n'ai pas besoin de le faire.
Nate c
Courbe d'apprentissage courte pour ....? pardon mais ce n'était pas évident pour moi.
Chris
0

Le seul que je recommande vraiment est le débogueur. Un IDE est en réalité un éditeur auquel ont été ajoutés d’autres gubbins, mais si vous pouvez compiler en tapant make (ou flèche haut + entrée) dans une invite de commande, vous n’avez pas besoin d’ un IDE. Si vous pouvez vous engager dans SCM en cliquant avec le bouton droit de la souris 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 support comme le refactoring (écrivez votre code correctement la première fois :)) ou un concepteur d'interface graphique intégré (mais même dans ce cas, j'utilise Expression pour faire mon travail d'interface graphique, mais pas le support XAML de VS ), et beaucoup de gens ont besoin d’ intellisense et d’autocomplete (en particulier pour les langages verbeux tels que Java et C # qui portent des noms divins).

Mais pour moi, le débogueur graphique est la seule très bonne raison d’utiliser l’EDI. J'utilise toujours un débogueur 'en ligne de commande' (enfin, windbg), mais pour le jour le jour, c'est celui qui est intégré à VS.

gbjbaanb
la source
0

Il y a des avantages à un IDE. Toutes les langues n’ont pas un IDE complet pour vraiment faire pencher la balance; sinon, il pourrait être extrêmement difficile d’en créer un pour une langue donnée. Pourquoi voudriez-vous un IDE? Eh bien, commençons par ceux-ci:

  • Le langage possède une API standard riche qui, dans les popups IDE, pourrait aider à accélérer le développement.
  • Il y a beaucoup de code de plaque de chaudière. (Essai / attrapé forcé, getters / setters, etc.)
  • La saisie semi-automatique peut répondre avec précision à vos besoins de codage
  • Votre suite de tests d'unités de langue est intégrée dans ledit IDE.
  • IDE est conscient et prend en charge de nombreuses bibliothèques de langages communs concernant les meilleures pratiques.
  • Plugins disponibles pour faire du travail 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 réellement en productivité grâce à un IDE complet. J'utilise des IDE pour certains travaux que je fais (Java, C #) mais pas pour d'autres (Python, Ruby, Coldfusion). Tout est vraiment un acte d'équilibre. Certaines langues ne nécessitent simplement pas une suite aussi complète.

Existe-t-il des IDE pour chacun? Sûr. Avez-vous toujours besoin d'un? Pas vraiment.

Plate-forme
la source