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?
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.
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.
Ctrl+click
sur une fonction, variable, tapez pour aller à la définition. (IntelliJ est très bon dans tous les langages ci-dessus)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.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é.
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,
[To the IDE] You had me at intellisense/autocomplete
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.
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:
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.
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é.
pour n'en nommer que quelques-uns
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.
Quelques arguments en faveur des "éditeurs":
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.
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.
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.
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)
Courbe d'apprentissage courte. C'est ça.
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.
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 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.