Quelles sont les efficacités offertes par Emacs ou Vim vs Eclipse?

J’ai commencé à coder il y a environ 5 ans. J’ai été initié à travers Java et Eclipse, qui sont tous deux fortement stigmatisés dans la communauté de la programmation. Un certain nombre de personnes de la société que je suis actuellement stagiaire chez emacs ou vim préfèrent. Je ne vois pas comment un éditeur de texte basique est plus rapide ou plus facile qu’un IDE en général bien que j’apprécie que certaines choses comme la construction tendent à être plus rapides depuis la ligne de commande.

S’agit-il d’un club de «vieux garçons» ou peut-il être plus efficace de programmer un projet de cette manière?

Pouvez-vous fournir des cas d’utilisation à démontrer? Si je préconisais Eclipse, je dirais que le refactoring et l’auto-complétion étaient des outils très pratiques.

Gav

J’ai commencé dans des IDE comme Eclipse, mais je suis passé à Vim il y a environ 2 ans.

Raisons pour lesquelles vous voudrez peut-être utiliser un éditeur en mode texte:

  • Il peut être utilisé comme IDE pour à peu près n’importe quel langage (vous l’apprendrez une fois et l’utiliserez pour tout)
  • Il peut faire toutes ces choses fantaisistes comme l’auto-complétion, le refactoring et de nombreuses opérations plus complexes, que vous pouvez étendre en ajoutant des macros ou des plug-ins.
  • Il fonctionne à peu près partout (et peut être utilisé via un shell SSH)
  • Vous n’avez pas besoin d’un Go de RAM pour l’exécuter

Si vous persévérez vraiment, vous constaterez que travailler dans un éditeur comme celui-ci finira par être plus rapide et deviendra en fait une sorte de «mémoire musculaire». Cela signifie que vous pouvez coder sans ralentir pour réfléchir au processus.

Vim / Emacs

  • Écriture de code très rapide / efficace
  • Faible empreinte mémoire
  • Accès rapide à la ligne de commande
  • Des possibilités infinies grâce aux scripts / plugins
  • Ne jamais avoir à quitter le clavier

Éclipse

  • IDE complet pour de nombreuses langues
  • Excellent support de refactoring

Tous

  • Multiplateforme
  • Fonctionnalité riche
  • Extensible grâce à des plugins

Je me trouve généralement à écrire des volumes de code via vim et à effectuer des tâches de débogage via mon IDE. La familiarité avec la base de code est certainement un facteur, car un IDE est un excellent outil pour sauter et apprendre du code source peu familier.

L’argument “Eclipse for Java” est un argument différent de “Eclipse for [quelque chose qui n’est pas java]”. Eclipse fait du rock pour Java.

Je veux dire, vi est comme un tournevis, ou peut-être un couteau suisse, et Eclipse est comme un grand moulin combo CNC et un épandeur d’asphalte. Vous ne les comparez pas exactement, vous utilisez simplement les deux.

Travaillez-vous également à l’intérieur de quelque chose de géant que vous connaissez peu, mais que comprend Eclipse? Un exemple serait de travailler sur Eclipse lui-même. Ici, Eclipse a une visibilité parfaite, une prise en charge linguistique totale et vous avez besoin des invites de toast et des liens de documentation.

Mais si vous saisissez un programme Ruby de 100 lignes pour convertir une firebase database SQL, Eclipse n’ajoute pas beaucoup de valeur, surtout si l’on considère ses bagages.

Il est également essentiel de mettre en place vi ou vous ne serez pas séduit. Autoindent, showmatch, la gestion des tabs et diverses autres options doivent être définies. Vous devriez avoir un moyen facile de générer un fichier de balises. Google peut trouver des générateurs de tags, ou simplement en créer un à partir de rien, avec quelques lignes de shellcode et sed (1).

Je ne considère pas le refactoring comme un critère. Ce n’est pas quelque chose que vous faites une fois par heure ou même une fois par jour. Bien sûr, lancez le gros IDE lorsque vous avez besoin de refactoriser. Oh, et ne vous attendez pas à la refactorisation automatisée de tout, sauf Java.

Enfin, vi peut réellement faire beaucoup de choses que l’EDI ne peut pas commencer à faire. La substitution globale des expressions régulières groupées est en quelque sorte un moteur de refactoring-choses généralisé. Pour apprécier la vi gestalt, vous devez apprendre le mode ligne (“:”). Bref, c’est comme avoir sed (1) dans votre éditeur.

Tout dépend de ce que vous voulez / attendez et de votre modèle d’utilisation.

Si vous recherchez un IDE Java, Eclipse est difficile à battre. Il est écrit en Java, pour Java, par les utilisateurs de Java.

Si vous cherchez un outil pour éditer des fichiers à partir de la ligne de commande rapidement, Emacs ou vi tous deux correspondent à la facture.

Si vous cherchez un outil dont vous n’avez jamais besoin, car il peut faire tout ce que vous voulez (envoyer / lire des messages, gérer des projets, faire des listes, comstackr, déboguer, etc., etc.), alors Emacs est plus “efficace”.

Si vous cherchez des raisons de changer d’éditeur, déterminez ce que vous voulez. Si vous voulez une meilleure Eclipse, vi et Emacs ne vous le donneront pas, restz fidèle à Eclipse.

Si vous cherchez un petit éditeur agile, vi correspondra à la facture.

Si vous recherchez l’éditeur ultimement extensible, Emacs est la solution.

Quel que soit l’outil que vous décidez d’utiliser, plongez-vous . Apprenez tous les tenants et les aboutissants, élargissez-le pour répondre à vos besoins. Utilisez-le à ses limites et devenez efficace dans son utilisation.

Emacs peut être un puissant IDE, mais étant passé d’Emacs à Eclipse, je dois dire que je n’y retournerai jamais. Eclipse offre juste autant de fonctionnalités que vous ne pouvez pas obtenir dans Emacs.

Mylyn et les vues étendues des données et fichiers que j’utilise, l’interface utilisateur de débogage, l’interface utilisateur CVS, sont tous intégrés et faciles à obtenir et à utiliser. Je vais utiliser un peu la souris pour le comprendre.

Les premières choses d’abord VIM est plus productif pour la programmation que Eclipse. Votre productivité personnelle dans VIM peut être catastrophique, mais le plafond potentiel de VIM est beaucoup plus élevé. C’est un fait.

VIM est un art martial. Cela ne semble pas naturel lorsque vous l’utilisez pour la première fois. Et vous ne pouvez même pas le faire fonctionner. Il faut des années de pratique pour devenir progressivement productif. Vous vous concentrez sur la maîsortingse d’un petit détail au début. Lentement, tous ces bits que vous maîsortingsez s’ajoutent jusqu’à ce que le texte s’écoule sans effort de votre doigt sur l’écran. Des modifications compliquées qui amèneraient votre collègue à soupirer sauteront de vos mains avant qu’il puisse terminer son expiration. Peu de personnes peuvent utiliser VIM. Moins qui peut l’utiliser productivley. Et vous ne rencontrerez peut-être jamais un maître dans votre vie. Mais ils sont supposés exister.

VIM est conçu pour garder les mains sur la ligne de départ. Déplacer votre main du clavier à la souris est démoralisant. C’est un mouvement moteur brut. Bouger votre arm a un effet phycologique qui nuit à votre motivation. À l’aide de VIM, quelqu’un pourrait fixer vos poignets sur le clavier et ouvrir facilement des fichiers, diviser des fenêtres, ouvrir des tabs, créer un projet, rechercher / remplacer, modifier des fonts, changer de couleur, etc.

VIM est modal. Cela signifie que vous n’avez pas à faire de combinaisons de touches complexes lorsque vous maintenez la touche Ctrl + Maj + Touche enfoncée. Cela fait mal à vos mains à long terme. Au lieu de cela, vous exécutez des commandes. Les combinaisons de touches ne sont pas nécessaires en raison de la nature modale.

Nous stockons des données dans notre mémoire comme les ordinateurs. Notre mémoire ne peut contenir que quelques valeurs à la fois. Voyez combien de nombres entiers distincts vous pouvez tenir dans votre tête avant qu’ils ne commencent à glisser. Nous surmontons cette limitation humaine en écrivant des choses. Si les données ne sont plus dans notre mémoire, nous pouvons facilement voir ce que nous avons écrit pour le récupérer. Si votre temps est consacré à la mosortingcité globale, les choses physiques que vous perdez du temps qui auraient pu être consacrées au traitement des données dans votre cerveau. Vous voulez que votre esprit coule sur l’écran sans aucun effort. Cela peut ne pas sembler beaucoup, mais la capacité de VIM à transférer sans effort ce qui vous passe par la tête est une augmentation de productivité BIG. C’est difficile de mettre en mots ce que j’essaie de dire.

VIM prend en charge l’achèvement du code. À la fois textuel et basé sur la recherche. Il peut extraire du texte de plusieurs fichiers. Tout ce que vous désirez peut être obtenu dans VIM. Faites-le vous-même ou utilisez quelque chose que quelqu’un d’autre a préparé.

VIM prend en charge les définitions avec ctags. Vous pouvez également trouver toutes les références d’un article. Encore une fois, tout ce que vous désirez peut être obtenu dans VIM.

Le script de VIM est énorme. Vous pouvez télécharger ou créer des milliers de combinaisons de couleurs et modifier les couleurs en un instant. Essayez de modifier les fonts ou les couleurs dans Microsoft Visual Studio et il se bloque pendant 20 secondes pendant le chargement des données. Il ne vous laissera pas stocker les palettes de couleurs et vous devrez passer 30 minutes à peaufiner vos couleurs et vos fonts à chaque fois que vous souhaitez changer de décor. Dans VIM, vous pouvez définir l’interligne sur zéro pour adapter davantage de lignes de code à l’écran. Je reçois plus de 80 lignes. Visual Studio utilise 2 pixels d’espacement pour chaque ligne et vous ne pouvez pas l’ajuster !!! Moins de lignes = plus de défilement = moins de productivité = obligé d’utiliser de petites fonts pour plus de lignes = fatigue oculaire.

Les fenêtres fractionnées s’ouvrent dans un instat dans VIM. C’est utile lorsque vous devez regarder des données dans une section du code qui est loin de l’endroit où vous tapez (ou dans un fichier différent). Vous n’avez pas à passer du temps à redimensionner les fenêtres ou à vous inquiéter du fait que les fenêtres de l’interface graphique se chevauchent et se chevauchent. Les fenêtres de code non liées peuvent être ouvertes dans des tabs afin de ne pas occuper d’espace sur l’écran, mais permettent une commutation rapide.

VIM en tant qu’EDI: http://www.youtube.com/watch?v=MQy2rVOf-z0&feature=fvwrel VIM la vengeance: http://www.youtube.com/watch?v=lQNFfhC4QI8

J’ai utilisé vi pendant des années pour éditer du code dans une variété de langues et je l’aime vraiment. Mais j’ai trouvé que les IDE comme Eclipse étaient encore plus performants pour le développement Java, et maintenant je travaille presque entièrement dans Eclipse. J’abandonne de temps en temps l’utilisation de vi pour quelques activités spécialisées telles que l’insertion en masse d’avis de copyright, principalement ceux traitant de certains types de modifications par cœur qui ne sont pas bien automatisés dans Eclipse. J’ai aussi mon type de fichier Windows .java mappé sur vi pour quand je veux juste regarder un fichier source sans attendre qu’Eclipse s’ouvre.

Certaines des fonctionnalités attrayantes d’Eclipse sont les suivantes:

  • achèvement du nom de la méthode
  • erreur mettant en évidence
  • commentaires javadoc pop-up
  • refactoring

Je trouve cela beaucoup plus efficace que vi en général, alors vous devriez l’essayer et voir si cela vous convient également.

Cela dépend des langues.

Pour Java ou .NET, utilisez un IDE (Eclipse, Netbeans, Visual Studio …).

Pour presque tous les autres langages (C, C ++, ruby, python, haskell, lisp …), à mon avis, vi et emacs sont meilleurs.

Je me souviens avoir lu quelque part à propos d’une étude qui montrait que les raccourcis clavier étaient plus efficaces que le fait de souris, alors que ce n’était pas toujours le cas.

Un autre effet psychologique est que nous attachons de la valeur à des choses qui sont chères, c’est-à-dire qu’avec Emacs, il est plus difficile d’apprendre, c’est mieux.

Je pense que ces effets pourraient expliquer en grande partie l’extrême affection que certaines personnes éprouvent pour Emacs / Vi.

Cependant, dans le cas d’Eclipse, je trouve que cela peut être très lent et même occasionner un plantage, mais ce n’est pas le cas contre les IDE en général.

J’utilise régulièrement Eclipse, VS et Emacs. J’utiliserais aussi TextMate, mais je n’ai plus de mac. Cela dépend de ce que je fais, plus précisément, quel système supporte le mieux mon langage et mes outils.

Je connais des gens qui consacrent beaucoup plus de temps à la programmation de leur éditeur qu’ils ne font quelque chose d’utile. Certains d’entre eux admettent même qu’ils ne le font que pour le défi. D’autres personnes affirment souvent qu’Emacs / Vi peut faire beaucoup plus que les IDE, car ils sont scriptables. Eh bien, la plupart des IDE (y compris Eclipse) peuvent également être scriptés. En ce sens, presque tous les éditeurs sont équivalents (même si certains rédacteurs sont plus faciles à écrire que d’autres).

Si vous aimez les IDE, mon conseil est de continuer à en utiliser un. Il n’y a pas un seul vrai éditeur .

MODIFIER:

Cela semble être l’article auquel Nick Bastin fait référence. Je suis d’accord que c’est loin d’être une source définitive. Cependant, je pense toujours que mon sharepoint vue sur la productivité perçue et réelle n’est pas la même chose.

L’efficacité fournie par vim / emacs est principalement due à leur utilisation intensive du clavier. Dans ces programmes, vous pouvez faire presque tout directement depuis le clavier, plutôt que de devoir vous arrêter et utiliser la souris.

Je dirais que les éditeurs de vim / emacs sont de loin supérieurs à l’éditeur de texte Eclipse en termes de raccourcis qu’ils proposent. Cependant, je suis complètement d’accord avec vous en ce qui concerne le refactoring.

La plupart des utilisateurs doivent écrire des scripts pour effectuer le type de refactoring dont Eclipse est capable. Je pense qu’une partie de cela est de se vanter des droits ou des gens qui le font comme ils l’ont toujours fait.

J’irais n’importe quand pour Emacs plutôt que pour éclipse. Je dois également dire que les emacs nus ne sont pas géniaux, mais après quelques ajustements, vous ne voudrez jamais les laisser tomber. En particulier, je vais vous dire à quel point emacs a été utile lors de la rédaction de ma thèse de maîsortingse, qui devrait expliquer pourquoi Eclipse est inférieur, simplement parce qu’il est moins polyvalent.

J’ai rédigé mon mémoire dans les langages de programmation suivants: C ++, Python et R. Complémentaire. J’ai dû rédiger la thèse pour laquelle j’ai utilisé LaTeX. De plus, j’ai dû écrire un tas de scripts shell et de scripts cmake. Devine quoi? Emacs a un excellent support pour tout cela. En particulier, ce fut un plaisir de travailler avec AuCTeX pour produire des documents LaTeX. Ensuite, Emacs fournit le mode ESS idéal pour travailler avec R. De même, il fournit des fonctionnalités pour python. Une fois que j’avais mes scripts cmake pour construire le code C ++, je n’avais qu’à appeler comstack avec emacs et j’ai été fait. Eclipse ne peut pas faire cela tout à fait, vous devrez donc apprendre à utiliser de nombreux programmes différents. Prendre des notes? Il y a un org-mode pour ça, et c’est génial!

Et puis, mon programme avait besoin d’un ordinateur très puissant (pas comme n’importe quel ordinateur portable). Donc, je pouvais tout faire à distance depuis emacs !!!! En utilisant Tramp, je me suis retrouvé à faire une évaluation interactive à distance du code R, à comstackr à distance, à exécuter et à déboguer du code C ++, et tout ce qui se trouvait dans la bonne fenêtre emacs locale que j’utilisais. En revanche, mes amis qui utilisaient un outil distinct pour tout étaient beaucoup plus lents dans le développement de logiciels destinés à être exécutés sur un autre ordinateur.

Comme ça, j’ai d’autres histoires, mais je pense que cela vous donnera une bonne idée des choses que vous pouvez faire avec Emacs. Dans l’ensemble, je pense que choisir d’utiliser emacs (malgré la courbe d’apprentissage) a été la décision la plus productive que j’ai jamais prise.

J’espère que cela aide.

Nous avons eu cet argument au travail récemment. Mon sharepoint vue était qu’une des fonctionnalités que je ne pouvais pas faire est l’autocomplétion d’Emacs. La saisie semi-automatique d’Eclipse est basée sur une parsing syntaxique: le code est analysé et, au fur et à mesure que vous tapez le code, vous avez le choix de l’achèvement. La saisie semi-automatique d’Emacs est basée sur une parsing textuelle simple. Cela signifie qu’il fonctionne en texte brut, dans les commentaires, dans la documentation – partout. Je continue à dire que la saisie semi-automatique d’Emacs est ce qu’IntelliSense veut être quand il grandit.

Mettre à jour:

Eclipse propose Alt- / qui est supposé être similaire à Emacs. Je ne sais pas si cela fonctionne bien.

Le seul endroit où je préfère un IDE est le débogage. J’ai configuré mon environnement vim pour le débogage, mais il était si pénible à utiliser, si maladroit, que je passe maintenant à mon IDE (Netbeans) lorsque j’ai besoin de déboguer. vim est idéal pour l’édition de texte, l’IDE est idéal pour les tâches plus complexes (comme le débogage et certaines tâches liées à la gestion de projets).

Comme certains des articles ci-dessus, j’ai commencé avec un IDE (Eclipse). De là, je suis passé à Emacs, puis je suis revenu à un éditeur de texte riche (TextMate).

Pour moi, l’efficacité était la capacité d’avoir un éditeur au niveau de l’interface. Permettre d’intégrer d’autres services que j’ai créés (ou d’autres) dans mon environnement pseudo-IDE.