web-dev-qa-db-fra.com

Emacs fera-t-il de moi un meilleur programmeur?

Steve Yegge a écrit n commentaire sur son blog :

Tous les plus grands ingénieurs du monde utilisent Emacs. Les types qui changent le monde. Pas la grande fille du cube à côté de toi. Pas Fred, le gars incroyable dans le couloir. Je parle des plus grands développeurs de logiciels de notre profession, ceux qui ont changé le visage de l'industrie. Les James Goslings, les Donald Knuths, les Paul Grahams, les Jamie Zawinskis, les Eric Bensons. De vrais ingénieurs utilisent Emacs. Vous devez être très intelligent pour bien l'utiliser, et cela vous rend incroyablement puissant si vous pouvez le maîtriser. Allez regarder par-dessus l'épaule de Paul Nordstrom pendant qu'il travaille, si vous ne me croyez pas. C'est une véritable révélation pour quelqu'un qui a utilisé des IDE de type Visual Blub .NET pendant toute sa carrière.

Emacs est l'éditeur centenaire.

La dernière fois que j'ai utilisé un éditeur de texte pour écrire du code était de retour alors que j'écrivais encore du HTML dans le Bloc-notes il y a environ 1000 ans. Depuis lors, j'ai été plus ou moins dépendant IDE, ayant utilisé Visual Studio, NetBeans, IntelliJ, Borland/Codegear Studio et Eclipse pendant toute ma carrière.

Pour ce que ça vaut, j'ai ont essayé Emacs, et mon expérience a été frustrante en raison de son manque total de fonctionnalités découvrables prêtes à l'emploi. (Apparemment, il y a une commande Emacs pour découvrir d'autres commandes Emacs, que je n'ai pas pu trouver en passant - c'est comme vivre votre propre blague zen cruelle.) J'ai essayé de me faire aimer le programme pendant un bon mois, mais finalement a décidé que je préfèrerais plutôt les concepteurs d'interface graphique par glisser-déposer, IntelliSense et le débogage interactif.

Il est difficile de séparer les faits du fanboyisme, donc je ne suis pas encore prêt à prendre les commentaires de Yegge pour argent comptant.

Existe-t-il une différence mesurable de compétence, de productivité ou de plaisir de programmation entre les personnes qui dépendent des IDE et celles qui ne le font pas, ou est-ce simplement du fanboyisme?

131
Juliet

Permettez-moi d'abord de dire que je suis un vrai croyant autoproclamé dans le culte d'Emacs.

Cela dit, le blogueur est fou. Vous écrivez ce que vous trouvez utile. Je trouve qu'Emacs m'aide, principalement parce que j'ai passé mes années collégiales à payer d'avance le coût de démarrage pour apprendre à le modifier en fonction de mes besoins et à m'adapter à ses besoins.

Mais d'autres personnes font les choses différemment, et comme ils disent "c'est OK".

121
Brian Postow

Il (Steve Yegge) a développé cela, en morceaux, dans d'autres publications de lui. http://steve-yegge.blogspot.com/2008_04_01_archive.html est probablement le plus complet, mais les informations y sont enfouies car elles sont tangentes au sujet principal.

Je suppose que pour résumer: les programmeurs qui sont simplement bons ou compétents seront prenez un IDE et apprenez-le vraiment bien, et faites-le assez décemment, mais ils se limiteront à ce que le IDE prévoit En d'autres termes, ils s'adaptent à l'EDI. Les grands programmeurs, d'autre part, adapteront leurs environnement pour s'adapter à eux-mêmes , par exemple en écrivant des scripts ou leurs propres outils, ou en étendant leurs outils. Et sur ce dernier point, non seulement Emacs est l'environnement le plus extensible, mais aussi le plus facile l'environnement à étendre est, et c'est l'environnement où vous récoltez le plus l'avantage de l'étendre - vos extensions s'intégrer dans Emacs comme s'il s'agissait de fonctionnalités en stock, et donc vos futures extensions pourraient s'appuyer sur les précédentes (genre de chose à boucle de rétroaction positive).

104
Nietzche-jou

Les meilleurs programmeurs utilisent vi ou emacs, car les programmeurs les plus expérimentés sont les meilleurs, et il y a 20 ans, il n'y avait pas beaucoup de choix sauf vi et emacs.

Après avoir commencé avec vi (vers 1987) sur une machine avec un terminal texte très lent, je me suis converti en (GNU) Emacs après quelques années (sur une machine plus rapide), et je l'ai utilisé presque exclusivement pendant près de 10 ans.

Emacs a été le premier environnement de développement véritablement intégré - l'ensemble du cycle d'édition/liaison/compilation peut être contrôlé dans emacs, et vous pouvez rouler le vôtre pour le compilateur que vous avez utilisé.

De nos jours, les IDE comme Eclipse sont encore mieux intégrés (pour être honnête: emacs craint les graphismes), mais Emacs est toujours l'un des meilleurs environnements pour l'édition de texte "pure".

56
mfx

L'amélioration de votre pensée claire et de la résolution de problèmes fera de vous un meilleur programmeur. Aucun programme ne peut le faire.

Utiliser un meilleur marteau ne m'aidera pas à construire une maison plus agréable à moins de savoir comment et pourquoi. ;)

34
Jas Panesar

Yegge doit rencontrer Bill Joy. Non seulement il est l'un des grands programmeurs du monde, mais il a également écrit de gros morceaux de vi. Dans vi.

Short Shameful Confession: Après 20 ans d'utilisation de vi (et vim/gvim ces dernières années) pour tout, au cours de la dernière année, j'ai commencé à utiliser Eclipse pour Java (et Thunderbird pour e-mail), bien que dans mon travail actuel, ma machine ait si peu de mémoire que j'utilise habituellement vi sauf quand j'ai besoin du débogueur.

21
Paul Tomblin

Existe-t-il une différence mesurable dans les compétences, la productivité ou le plaisir de programmation entre les personnes qui dépendent des IDE et celles qui ne le font pas, ou est-ce simplement du fanboyisme?

Limitons cela à Visual Studio vs. Emacs --- la question est trop large sinon, et je pense que la plupart des gens (au moins ici sur StackOverflow) connaissent ces deux-là. [Je le suis et j'utilise et préfère emacs]

Ensuite, décomposons les trois composantes de la question.

Le plaisir de la programmation se résume à aimer principalement la programmation en soi, et secondairement à ne pas faire apparaître de facteurs de gêne lorsque vous le faites. L'utilisation d'outils avec lesquels vous avez du mal va vous soustraire au plaisir. Donc, je dirais, le plaisir est probablement maximisé en utilisant des outils que vous aimez et que vous connaissez.

Bien sûr, une fois que vous vous serez familiarisé avec un nouvel outil, vous constaterez peut-être que vous l'aimez mieux et que vous aimerez donc davantage la programmation si vous le faites avec votre nouvea outil préféré. Il n'est pas clair pour moi que les gens en général aimeront VS sur emacs (ou vice versa) quand ils les connaissent bien.

Ensuite, la compétence de programmation. S'il y a un lien entre la compétence et le choix de VS/emacs, je pense que c'est la compétence qui cause le choix, pas le choix qui cause la compétence. Aucun de {VS, emacs}, d'après mon expérience, ne semble me faire apprendre quoi que ce soit sur l'écriture de code mieux.

Un bon outil peut me permettre d'écrire le même code (et donc le même qualité de code) en moins de temps; si nous supposons que productivity = quality of code `times` code per time, il va de soi que tout éditeur qui vous permettra d'écrire du bon code en moins de temps est un gain de productivité.

Je ne connais peut-être pas trop VS, mais ici je pense qu'emacs a des forces que je n'ai pas trouvées dans VS. Cela peut sembler ridicule, mais quelque chose d'aussi simple qu'un mouvement de curseur avec Ctrl-[fbnp] est une véritable aubaine --- cela signifie que vous n'avez pas à déplacer vos mains sur les touches fléchées. Autre chose: vous pouvez faire une recherche ou remplacer ce qui inclut des sauts de ligne, que j'utilise assez souvent pour que je déteste le manquer.

Une autre chose que j'aime, c'est la possibilité d'intégrer un Shell dans mon éditeur. D'après mon expérience, c'est beaucoup plus précieux sur les plates-formes non Windows (et ma première expérience de "programmation", IIRC, écrivait des fichiers DOS .bat, donc je ne suis pas seulement un fanboy enflammé), mais sur ces plates-formes, c'est une grande victoire . Il permet à emacs de "s'intégrer" à "tout" (recherche de fichiers avec find/Locate, recherche de texte avec grep, contrôle de version avec svn/git/hg/..., vous l'appelez).

Verdict final - devez-vous apprendre emacs ou non? Et est-ce que c'est du fanboyisme? Si vous avez le temps, je dirais que cela vaut toujours la peine d'apprendre de nouvelles façons de faire la même chose, car la nouvelle façon pourrait s'avérer mieux fonctionner pour vous. Et je vous encourage à ne pas le rejeter pour ce qu'il semble être lorsque vous êtes nouveau. En ce sens, c'est comme passer à la disposition du clavier Dvorak: vous êtes plus lent au début, mais une fois que vous serez à jour, vous serez probablement au moins aussi rapide que sur qwerty et plus confortable. Je recommande également la même approche pour apprendre de nouveaux langages (de programmation): parce que vous ne connaissez pas le vocabulaire (bibliothèque standard), dire que les choses sont difficiles, mais la récompense est toujours là à l'horizon qui vous attend.

13
Jonas Kölker

Avec le texte cité commençant par "Tous les plus grands ingénieurs du monde utilisent Emacs", je ne le prendrais pas non plus pour argent comptant. Connaît-il tous les plus grands ingénieurs du monde? Est-ce la même liste des meilleurs ingénieurs du monde que vous ou moi?

Une fois appris, un éditeur puissant comme EMACS ou vi vous rendra plus efficace, ou du moins plus efficace si vous vous faites prendre sans votre IDE préféré.

C'est la partie "une fois apprise" qui est le tueur. L'utilisation de ces outils nécessite beaucoup de travail et de pratique, et c'est très difficile au début.

10
John

Je suis un fanboy d'Emacs, personnellement, mais Emacs n'est qu'un outil. Il ne fera pas de vous un meilleur programmeur pas plus qu'un stylo ultra-sophistiqué ne fera de vous un meilleur écrivain.

La clarification selon laquelle les "grands programmeurs" adaptent leur environnement à eux-mêmes peut avoir un certain mérite, mais de nombreux outils peuvent le faire (par exemple vim et SlickEdit), donc il n'y a rien de particulier à propos d'Emacs à cet égard.

Je pense que ce qui est vraisemblablement vrai, c'est que les "grands programmeurs" sont passionnés par la programmation et les gens qui sont passionnés par celle-ci ont tendance à trouver des outils qui aident à stimuler cette passion. Emacs (et vim et SlickEdit, et al) est un tel outil.

9
Joe Casadonte

Je ne pense pas qu'il y ait de différence, c'est plutôt une question de préférence.

Cependant, ce que j'ai remarqué, c'est que plus vous codez depuis longtemps, ou plus vous codez à un niveau inférieur, plus vous avez de chances d'utiliser emacs ou vi.

8
Stephane Grenier

Bien que les IDE se soient beaucoup améliorés au cours de la dernière décennie, ils contiennent toujours la programmation dans une petite "bulle" sûre, loin de certains des détails les plus laids. Ce qui a tendance à se produire, c'est que cette augmentation de l'abstraction permet à plus de programmeurs d'en faire plus, avec moins de connaissances. Bien sûr, cela ne s'applique pas à tous les programmeurs, mais des outils plus simples permettent de diffuser la programmation à un public plus large.

Une meilleure connaissance des outils de niveau inférieur se traduit souvent par une plus grande stabilité dans le code, car il y a moins de chances de "contre-courant" accidentellement. Il est injuste de simplement énumérer EMACS comme étant le seul indicateur avancé, car il provient de toute une gamme de langages et d'outils, et concerne davantage la profondeur de la compréhension, pas la technologie spécifique.

En arrière, vous avez appris VI ou EMACS sur les boîtes UNIX ou vous vous êtes spécialisé dans les PC (OK, il y avait aussi VMS, CMS, AS400, etc., mais c'étaient des technologies plus anciennes). Les deux flux ont attiré des gens très enthousiastes, mais les gars UNIX avaient tendance à vouloir une solution sophistiquée, tandis que les gars PC voulaient juste que cela se fasse rapidement. Les cultures étaient très différentes.

8
Paul W Homer

Les IDE à mon humble avis ont tendance à être optimisés autour d'une plate-forme, d'un langage ou d'un système d'exploitation spécifiques: Eclipse JDT est idéal pour Java, Visual Studio est centré sur C++/.NET, etc. cette plate-forme, mais si vous changez de plate-forme, vous devez essentiellement apprendre un nouveau IDE (ou au moins un nouvel ensemble de plugins, de vues, de perspectives et je ne sais pas quoi d'autre pour Eclipse).

L'avantage de connaître emacs, ou Textmate, ou vim (ma préférence personnelle), ou n'importe quel éditeur générique, c'est que les compétences que vous acquérez dans cet éditeur s'appliquent quelle que soit la plateforme pour laquelle vous écrivez. Ils sont optimisés pour édition de texte, et une fois que vous les maîtrisez, vous pouvez éditer le texte très efficacement dans n'importe quelle langue.

Il y a aussi l'affirmation de Yegge que les grands programmeurs adaptent leurs outils à leur style de travail plutôt que vice versa. Je pense que c'est une victoire pour les éditeurs génériques, car vous personnalisez n éditeur, plutôt que de devoir trouver comment adapter quatre IDE différents pour que tous se comportent comme vous le souhaitez.

7
Sam Stokes

Je dirais que les meilleurs programmeurs ont tendance à être ceux qui prendront le temps de personnaliser leur environnement, ce qui rend plus rapide/plus facile l'exécution des tâches qu'ils sont susceptibles de faire. Emacs est l'un des éditeurs les plus puissants lorsqu'il s'agit de personnaliser votre environnement. Il a une courbe d'apprentissage abrupte mais, une fois passé, il n'y a pratiquement aucune limite à ce que vous pouvez faire pour vous.

Quelqu'un a dit un jour que les meilleurs programmeurs étaient les paresseux; ceux qui, une fois qu'ils ont besoin de faire plus d'une fois, trouvent un moyen de l'automatiser pour que cela demande moins d'efforts. Emacs vous permet d'être très, très paresseux;)

6
RHSeeger

J'ai utilisé des IDE depuis le tout début (sans doute; après avoir commencé avec QBASIC), et pendant de nombreuses années. Je suis maintenant passé presque complètement à VIM (dans diverses saveurs) pour tout mon travail de développement et je ne le regrette pas. Ma productivité a définitivement augmenté.

Bien sûr, rien ne remplacera le concepteur Windows Forms de Visual Studio. Mais par rapport à VIM (et Emacs, je suis sûr), l'éditeur de texte à l'intérieur de Visual Studio est vraiment moche. Une fois que vous exploitez la puissance brute de la console et le GNU outils de développement (j'entends par là make, GCC, binutils et gdb, et puis certains), vous remarquerez que ces outils peuvent sembler primitifs mais ils ' re exactement le contraire, et offre en fait tous les outils qu'un IDE fournit (enfin, sauf pour le concepteur de formulaires).

C'est juste que vous avez une montée très raide devant vous lorsque vous commencez à utiliser ces outils et que l'incitation peut être faible. J'ai eu la chance (?) D'être obligé d'utiliser ces outils, donc je n'avais pas le choix de me déchaîner.

4
Konrad Rudolph

Non. Un bon code fait de vous un meilleur programmeur.

Cela dit, une bonne manipulation du texte est la clé de l'efficacité. Vim ou emacs changeront la façon dont vous travaillez avec le texte - les deux sont efficaces mais sont presque en désaccord en termes de style. En outre, ce débat est assez ancien (retour aux années 80 et 90 où le compilateur texte -> était la clé), il existe donc de nombreux autres éditeurs de texte et/ou IDE qui peuvent vous aider à être le meilleur programmeur possible.

3
Overflown

Pour moi, la principale raison pour laquelle je choisirais Emacs plutôt qu'un IDE est parce qu'il me permet de tout faire à partir de mon clavier. C'est bien car cela permet de gagner du temps lorsque j'utiliserais normalement un depuis que je me trouve très mobile, j'ai tendance à avoir ma programmation "groove" interrompue en raison de l'utilisation de mon pavé tactile lent. De plus, sa personnalisation le fait briller sur certains IDE pour moi. avec un IDE alors je dirais que la courbe d'apprentissage d'Emacs ne vaut pas la peine.

3
Anton

Personnellement, je pense que vous devez utiliser tout ce qui vous rend plus productif. Si vous n'avez pas le temps d'investir dans un projet pour vous asseoir et apprendre Emacs, ce n'est probablement pas la meilleure utilisation de votre temps à ce stade.

Cependant, je pense que c'est une bonne idée de faire connaissance avec d'autres IDE lorsque vous avez suffisamment de temps pour le faire.J'utilise Visual Studio dans mon travail quotidien, mais à la maison j'utilise Eclipse pour de petits projets et j'ai utilisé Emacs aussi. Au moment précis où j'ai envisagé d'utiliser Emacs, mon effort était mieux servi à faire le travail réel que de me ralentir en luttant avec Emacs.

Je pense que dans une certaine mesure, il est absurde de penser que tous les meilleurs programmeurs utilisent Emacs. Il existe de nombreux programmeurs incroyables qui ne sont pas aussi populaires (ou vocaux, peut-être) qui n'utilisent pas Emacs.

3
jamesmillerio

Non. Si vous pensez que l'utilisation d'emacs fait de vous un meilleur programmeur, vous confondez cause et effet.

Je l'utilise tous les jours, cependant. Je trouve que je suis plus productif avec emacs + maven qu'avec Eclipse pour Java (bien que je lance toujours Eclipse de temps en temps pour faire la session de refactoring ou de débogage occasionnelle).

Ce sont mes raisons:

  • L'expérience réelle d'édition de texte dans emacs bat tout le reste. C'est incroyable à quelle vitesse vous pouvez accomplir autant en utilisant uniquement votre clavier. Eclipse est plus orienté souris et lorsque vous tapez, vous rencontrez de nombreux accrocs irritants.
  • Pouvoir personnaliser emacs à l'aide d'elisp est incroyablement puissant. J'irai jusqu'à dire que si vous ne prenez pas le temps d'apprendre des éléments rudimentaires et de personnaliser votre environnement, vous perdez simplement votre temps.
  • Il existe des extensions pour pratiquement tout ce que vous pourriez souhaiter faire dans un éditeur de texte.
3
fred-o

J'ai commencé à utiliser Emacs il y a environ un an et demi parce que c'était la confluence de plusieurs désirs - je voulais travailler avec des expressions régulières (dans un éditeur qui les supportait), je voulais apprendre LISP, je voulais un meilleur éditeur.

La modification de mon code avec des expressions rationnelles m'a beaucoup appris sur la recherche de modèles dans le code. Les frappes ont mis du temps à s'habituer, mais je vole beaucoup plus vite sans souris.

Emacs m'a donné la possibilité de continuer à travailler avec mes notes et mon codage dans la même application - un changement de contexte minimal signifie un changement de cerveau minimal, et je peux rester concentré sur la tâche à accomplir.

3
Michael Paulukonis

Je pense qu'Emacs peut faire de vous un meilleur programmeur, bien qu'indirectement. Je pense qu'Emacs m'a fait écrire dans un langage fonctionnel ( Elisp ) ce qui m'a intéressé à d'autres langages fonctionnels ( Clojure ) qui, selon moi, me feront un meilleur programmeur. Cela dit, je suppose que le temps nous le dira.

2
Justin Abrahms

Non.

La discipline, la pensée critique et le désir de s'améliorer feront de vous un meilleur programmeur. Votre ensemble d'outils, tout en étant un facteur majeur de votre productivité, ne créera pas de génie.

Si vous n'aimez pas emacs ou vi, ne les utilisez pas. En faisant le choix conscient de ne pas le faire, vous façonnez votre environnement de développement pour l'adapter à vos propres besoins et pratiques de travail. Dans tous les cas, vous avez le droit d'utiliser ce que vous aimez - et d'ignorer quiconque est assez stupide pour vous réprimander pour l'outil que vous utilisez pour écrire des bits sur le disque - ce sont les bits qui comptent.

Remarque: "Ensemble d'outils" signifie ici, littéralement, la "marque" d'outils - éditeurs spécifiques, compilateurs, etc. Des ensembles d'outils conceptuels, par exemple l'utilisation du contrôle de version, des tests unitaires - en général - font partie du processus d'auto-amélioration.

2
Rob

Je ne pense pas que cela ferait de vous un meilleur programmeur, mais quand vous aurez CE niveau, vous utiliserez très probablement emacs (ou vi)

: - /

La bonne chose à propos de ces deux (je n'ai jamais utilisé emacs auparavant, mais j'utilise toujours vi pour la tâche la plus banale) est le fait, ils n'interrompent pas votre train de pensée , vous ne le faites pas devez retirer vos mains du clavier pour saisir la souris et rechercher dans le menu fichier l'option correcte. Continuez à écrire. Dans votre esprit, vous dites quelque chose comme: "Remplacez toutes les occurrences de ce mot pour cela", appuyez sur Entrée et continuez votre travail.

De plus, je ne pense pas qu'ils utilisent emacs est leur seul outil.

Cela ferait-il de vous un meilleur programmeur? Probablement pas. Mais lorsque vous avez ce niveau d'expertise, vous aimerez probablement la rapidité avec laquelle vous pouvez coder en utilisant ces outils.

2
OscarRyz

Y a-t-il une différence mesurable dans les compétences, la productivité ou le plaisir de programmation entre les personnes qui dépendent des IDE et celles qui ne le font pas, ou est-ce juste du fanboyisme?

Je ne pense pas que vous puissiez vraiment obtenir une réponse à cela. Il y a tellement de façons différentes de mesurer les compétences, la productivité et le plaisir de la programmation - et toutes sont probablement très subjectives et/ou ne peuvent pas être décomposées en UNE seule cause ou non.

C'est toujours une question intéressante.

Ma conviction personnelle est - cela dépend du programmeur :)

G-Man

2
GeoffreyF67

Emacs m'a rendu plus efficace pour la manipulation de texte et la navigation dans le système de fichiers. Et puisque ces deux choses sont impliquées lorsque je programme, cela a fait de moi un programmeur plus efficace (donc meilleur).

2
Steve

Je sais que vous ne l'avez pas demandé, mais une chose que l'apprentissage d'emacs (de façon inattendue) s'est améliorée pour moi était la manipulation d'une ligne de commande. Avant d'apprendre les raccourcis clavier emacs, j'avais l'habitude de déplacer le curseur et de parcourir l'historique à l'aide des touches de curseur car je ne connaissais pas mieux. C'était quelque chose comme un moment d'ampoule quand j'ai réalisé que je pouvais utiliser backward-Word, move-beginning-of-line et backward-kill-Word (que j'ai toujours lié à C-w, comme le suggère Stevey ) dans bash (M-t est souvent utile aussi, et le plus impressionnant pour ceux qui ne l'ont jamais vu auparavant).

Je fais beaucoup de travail sur Solaris, où le shell racine est "le shell posix", et n'a pas de liaisons emacs par défaut. Je trouve que mes doigts tapent maintenant exec bash de leur plein gré, chaque fois que je me connecte, je me sens tellement plus vite avec les commandes d'édition désormais familières sous mes doigts.

Je dois admettre cependant que je trouve toujours les livres de Knuth difficiles (bien que cela en vaille la peine) - donc je ne pense pas que cela ait magiquement amélioré ma programmation.

2
Tom Dunham

L'une des grandes fonctionnalités d'emacs est qu'il peut gérer à peu près n'importe quel type de fichier que vous lui lancez, de n'importe quelle taille. Certes, si vous ouvrez un énorme fichier crypté fou, il ne sera pas nécessairement utile mais il s'ouvrira. La plupart des éditeurs (et IDE) vous donneront un chagrin d'amour majeur si vous leur remettez un fichier trop volumineux et/ou pas l'un de leurs formats attendus.

Essayez d'ouvrir un fichier 1 Gig dans le Bloc-notes pour un exemple.

J'ai commencé à utiliser Emacs vers 1980 et cela a toujours été un outil dans ma boîte à outils. Ce n'est pas l'outil seulement mais c'est toujours quelque chose vers lequel je peux me tourner et je sais que je pourrai faire un travail utile.

Commentaire inflammatoire obligatoire: Par contre, je n'ai rien de bon à dire sur vi. J'ai toujours pensé que vi me tuerait volontiers et vendrait mes organes juste par dépit ...

Dans la vraie vie, j'utilise Netbeans pour presque toutes les formes de développement et j'utilise emacs de temps en temps pour faire un montage rapide. Il n'y a presque rien là-bas qui soit aussi pratique qu'emacs (pour moi) quand il s'agit de faire quelque chose de fou en ce moment.

Quelqu'un d'autre a-t-il déjà dû éditer des chaînes statiques dans des exécutables binaires compilés? Existe-t-il un meilleur outil pour ce genre de chose que Emacs? Cela fonctionne certainement pour moi.

2
Bob Cross

Pouvoir utiliser certains éditeur personnalisable vous permet de faire des choses astucieuses, mais emacs en particulier n'est pas nécessairement le meilleur possible. Je suis moi-même un utilisateur de SlickEdit, je fais tous les mêmes trucs semi-automatisés bizarres avec lesquels emacs est célèbre. J'ai vu des gens faire des choses similaires avec vi et divers éditeurs Windows.

Donc, oui, les jeux de douilles sont bons, mais argumenter que Craftsman fabrique le jeu One True Socket est un peu stupide.

1
mjfgates

La maîtrise des raccourcis clavier Emacs et de ses fonctions intégrées vous permettra de manipuler du texte plus rapidement que les IDE tels qu'Eclipse ou Visual Studio.

Ne prenez pas ma parole pour ça, regardez ces vidéos de pros utilisant Emacs .

Une fois que vous avez atteint un niveau décent dans Emacs, vous pouvez modifier efficacement n'importe quel langage: Java Script, Java, Ruby, Python, HTML, C, C++, etc.

Commencer avec Emacs est une douleur dans le cul, l'expérience hors de la boîte est pire que mauvaise. La configuration par défaut d'Emacs n'expose pas le débutant d'Emacs aux fonctionnalités les plus puissantes (hippie-expand, etags, yasnippets, etc.) d'Emacs. Je suggère de commencer par les fichiers Emacs Starter Kit dot.

Une autre raison pour laquelle Steve Yegge prétend que les meilleurs programmeurs du monde utilisent Emacs, c'est elisp. Elisp permet au programmeur expérimenté de pouvoir facilement étendre Emacs. Écrire une extension dans Eclipse ou Visual Studio est beaucoup plus difficile que d'écrire une fonction rapide ou même une nouvelle mode mineur dans elisp.

1
Justin Tanner

Je crois que c'est une grande idée fausse que l'utilisation de ces éditeurs basés sur du texte tels que VI et Emacs est très appréciée ou nécessaire pour devenir un "grand programmeur". J'ai toujours senti que les IDE sont plus puissants qu'autrefois, et cela dépend vraiment d'une préférence et d'un style.

1
Bryan

Non

Nous suivons tous des chemins différents dans la vie, nous regardons les problèmes sous différents angles.

Pour être un excellent programmeur, l'éditeur ne peut pas vous aider à être meilleur, d'autres choses améliorent vos compétences en programmation. Mais veuillez noter que les mauvais outils qui ne vous aident pas peuvent réellement entraver votre propre évolution en tant que programmeur.

Ou si nous prenons l'exemple d'un charpentier, un grand marteau ne peut pas améliorer un grand charpentier, mais un mauvais marteau peut l'empêcher de faire de son mieux.

/ Johan

0
Johan

Divulgation: J'utilise emacs la plupart du temps.

Je ne pense pas que l'on doive nécessairement choisir entre utiliser emacs ou IDE. Vous pouvez avoir des "emacs" dans votre IDE. Avec emacs, une fois que vous avez mémorisé les raccourcis clavier, vous pouvez être très productif et vous vous sentirez impuissant avec n'importe quel autre éditeur. Mais si de nombreux --- malheureusement pas tous --- des raccourcis clavier emacs sont disponibles dans votre IDE alors votre productivité s'améliorera sensiblement et vous ne pensez pas que le temps que vous avez passé à apprendre emacs était gaspillé.

J'ai essayé le plugin emacs pour Eclipse et je l'ai trouvé tout à fait utilisable. Bien sûr, ce n'est pas parfait. Mais vous obtenez tous les avantages de l'utilisation d'un IDE comme la complétion de code, la refactorisation, etc. J'espère que ce plugin est amélioré pour fournir plus de fonctionnalités emacs.

En ce qui concerne emacs, malheureusement, il n'a pas suivi le temps et un programmeur manquera beaucoup en s'y tenant.

Cependant, s'il vous arrive de programmer en scala et que vous êtes un amoureux d'emacs, vous avez de la chance car vous pouvez utiliser ensime package pour emacs et obtenir la plupart des IDE --- mise en évidence des erreurs de syntaxe, complétion de code, navigation dans les packages, inspection de type, refactoring, débogage, etc.

0
Babu Srinivasan

J'ai commencé avec emacs mais je suis passé à vi qui pour moi est plus élégant à cause de sa simplicité. De plus, si vous êtes coincé en mode mono-utilisateur, les commandes ed sont un sous-ensemble des commandes vi. Je ne sais pas si emacs peut gérer ça.

À cet égard, je pense que vi fait de vous un meilleur programmeur ..

0
klyde

"Le texte que vous avez publié n'est qu'un troll. Oui. Pas d'autre raison que de déclencher une guerre de religion."

Je suis d'accord avec la citation.

Quiconque croit que la véritable valeur ajoutée d'un programmeur réside dans l'éditeur que ce programmeur utilise, est un idiot.

Quiconque croit que la vraie valeur d'un véritable programmeur peut être diminuée en donnant à ce programmeur le mauvais éditeur, est un idiot.

(Oh oui, je pourrais inclure ici un exercice de logique formelle - ajoutez des valeurs de vérité pour rendre ces propositions cohérentes avec la logique commune :) Programmeur FORALL: bon (programmeur) ===> usesEMACS (programmeur) Programmeur FORALL: usesEMACS (programmeur) = ==> bon (programmeur) (programmeur FORALL: bon (programmeur) ===> utiliseEMACS (programmeur)) ===> (programmeur FORALL: utiliseEMACS (programmeur) ===> bon (programmeur))

(Et en ce qui concerne la guerre religieuse :) Tous les programmeurs vraiment précieux ont été élevés sur ISPF, pas EMACS.

0
Erwin Smout

Eh bien ... Pour moi, c'est une question de productivité et de plaisir.

Toutes les choses que vous avez mentionnées, comme intelisense, débogueur intégré, etc. peuvent être ajoutées à Emacs. Et ils peuvent y être ajoutés selon votre goût. Vous vous retrouvez avec un environnement construit pour répondre à vos besoins. Cela augmente la productivité car il vous permet également de rendre les fonctionnalités que vous utilisez le plus facilement disponibles. Cela augmente également votre plaisir car vous pouvez modifier votre processus de puissance et ainsi en avoir une meilleure conscience, ce qui finit également par augmenter votre productivité car vous appréciez davantage ce que vous faites.

En plus, vous obtenez une fonctionnalité qui n'est pas disponible dans les outils visuels: une prise en charge décente du clavier. Il n'y a pas un seul visuel IDE que j'ai essayé où le support du clavier serait décent. La souris est lente à utiliser. Je veux une interface d'expert. Pas "une interface pour la grand-mère." An = IDE est censé être une interface d'expert. La souris n'est pas une interface d'expert pour les programmeurs. C'est un périphérique décadent et long qui vous permet d'interagir avec un programme que vous voyez pour le toute première fois.

Je pense que vous devriez réessayer emacs ... J'ai quelques conseils pour commencer:

M-x vous permet de saisir des commandes dans le mini-tampon

Commandes utiles:

  • apropos: liste toutes les commandes liées à une certaine chaîne
  • description-fonction: décrit ce que fait une commande
  • where-is: découvre le raccourci clavier pour une commande donnée
  • global-set-key: associe un raccourci personnalisé à une commande donnée

Raccourcis clavier utiles:

  • C-x b Sélectionne un certain tampon
  • C-2 Splits buffer horizontalement
  • C-3 Splits buffer verticalement
  • C-o sélectionne d'autres tampons lorsqu'ils sont divisés
  • C-0 Tampon Unsplits
  • C- est l'endroit où vous devez définir vos raccourcis personnalisés.

Compléments utiles: prise en charge des ctags. Ils vous permettent de passer aux définitions de fonction/classe.

  • ido-mode - meilleure exécution dans le mode de saisie semi-automatique du mini-tampon
  • cua-mode - copier-coller de type windows
  • pc-selection-mode - sélection des flèches de déplacement
0
Pedro Morte Rolo

J'ai utilisé emacs au collège. c'était il y a environ 16 ans. Je n'ai pas regardé en arrière. Bien que j'aimerais pouvoir être à l'aise avec emacs, la vérité est que je suis assez productif avec mon MS IDE.

le texte que vous avez publié n'est qu'un troll. Oui. Pas d'autre raison que de déclencher une guerre de religion.

0
Tim

Je dirais qu'il a au moins un peu raison. Comme d'autres l'ont noté, les éditeurs des IDE sont en quelque sorte limités par rapport à vim ou emacs. En même temps, vim et emacs sont disponibles, quand il n'y a aucune chance d'avoir un véritable IDE travail (sur les sessions ssh par exemple). Et encore une autre chose est de ne pas avoir à atteindre pour la souris. C'est vraiment une fonctionnalité qui tue - on peut facilement faire les choses au moins deux fois plus vite. Vous n'en bénéficierez cependant pas, sauf si vous êtes au moins une dactylo décente (ce qui, BTW est un autre point qui Yegge fait très clairement sur son blog, tu dois bien taper).

0

La comparaison entre Vi et Emacs ressemble à la comparaison de GNOME et KDE à moi. Vi (et ses dialectes/implémentations) sont simples, sans fioritures, faciles à maîtriser, scriptables, extensibles, jolis beaucoup d'éditeur universellement disponible (sur tous les Unix). Emacs d'autre part, l'OMI prend un moyen plus difficile de faire les mêmes choses. Cela prend du temps à maîtriser, mais je suppose que depuis que les grands programmeurs l'ont utilisé, je me sens bien aussi après l'avoir maîtrisé :-)

Mais, pour faire le travail lorsque j'ai des éditeurs basés sur du texte, Vi est vraiment facile à démarrer. Peut-être qu'Emacs vous motive finalement à apprendre LISP, ce qui va changer définitivement la façon dont vous programmez. C'est un effet indirect, OMI.

0
user59634