Emacs fera-t-il de moi un meilleur programmeur? [fermé]


130

Steve Yegge a écrit un commentaire sur son blog :

Tous les plus grands ingénieurs du monde utilisent Emacs. Les types qui changent le monde. Pas la grande fille dans le cube à côté de toi. Pas Fred, le type incroyable au bout du 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 Knuth, les Paul Graham, les Jamie Zawinski, les Eric Benson. Les 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 toute sa carrière.

Emacs est l'éditeur depuis 100 ans.

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

Pour ce que ça vaut, je l' ai essayé Emacs, et mon expérience a été frustrante en raison de son absence totale de hors-the-box fonctionnalités découvrables. (Apparemment, il y a une commande Emacs pour découvrir d'autres commandes Emacs, que je n'ai pas pu trouver d'ailleurs - c'est comme vivre votre propre blague cruelle de type Zen.) 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 avoir des concepteurs d'interface graphique par glisser-déposer, IntelliSense et un débogage interactif.

Il est difficile de séparer les faits du fanboyisme, donc je ne suis pas prêt à prendre les commentaires de Yegge au pied de la lettre pour l'instant.

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


22
Il est également intéressant de noter que Paul Graham utilise vi; Yegge propose lui-même cette correction dans une note de bas de page de l'article lié.
Eli Courtwright

16
De tous les éditeurs que j'ai utilisés, Emacs est le seul qui vous indique comment exécuter le didacticiel à chaque fois qu'il démarre (jusqu'à ce que vous en appreniez suffisamment pour lui dire d'arrêter de vous dire comment exécuter le didacticiel).
Michael Paulukonis

16
Que signifie EMACS? Échapper à Meta Alt Control Shift! ;-)
Peter K.

24
Terminologie nit pick: Emacs est un «éditeur de programmeurs», pas un simple «éditeur de texte». Les IDE GUI ont également la possibilité d'éditer du texte, mais ils ne sont pas non plus de simples éditeurs de texte. Comparer Notepad à Emacs, c'est comme comparer ... jeter de la pierre sur quelque chose à frapper quelque chose avec ce pistolet sur l'étoile de la mort.
Greg Mattes

8
De toute évidence, certaines personnes ne comprennent pas la différence entre la corrélation et la causalité
Chubas

Réponses:


119

Tout d'abord, permettez-moi de dire que je suis un vrai croyant du 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 d'université à prépayer le coût de démarrage pour apprendre à le modifier en fonction de mes besoins et à me modifier en fonction de ses besoins.

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


73
D'accord. J'adore Emacs, mais penser qu'Emacs fera de vous un meilleur programmeur, c'est comme penser qu'utiliser les clubs de golf de Tiger Woods fera de vous un meilleur golfeur, ou utiliser la guitare d'Eddie Van Halen fera de vous un meilleur musicien.
Kristopher Johnson

31
Pas entièrement d'accord avec le commentaire de Kristopher ci-dessus. Utiliser les outils d'un grand sportif / artiste ne vous rendra certainement pas aussi grand qu'eux. Mais, utiliser les bons outils de programmation pour le bon travail le fera certainement! Vous pourriez cependant être pardonné d'assimiler la programmation au sport et à l'art. :)
Susheel Javadi

6
@Bart: Son point est qu'il existe plusieurs "bons outils". Les clubs de golf de Tiger Wood sont d'excellents outils et sont parfaits pour le travail, mais il existe également d'autres clubs qui peuvent fournir les mêmes résultats. L'outil qu'un bon programmeur utilise ne les définit pas, leur créativité et leurs capacités le font.
Seth Moore

9
Je pense que le point essentiel de la déclaration de Steves est que les grands programmeurs utilisent emacs, les bons développeurs de logiciels sont plus productifs en utilisant un IDE. Les grands programmeurs programment toujours, même lorsqu'ils produisent du code qu'ils programment, ils automatisent les tâches, ils aiment make, ant, bash, perl et hudson. Ils savent que les tâches manuelles dans n'importe quelle partie du cycle de développement logiciel sont sujettes à des erreurs. Les grands programmeurs savent également que si quelqu'un d'autre construit votre code (par exemple l'IDE ou n'importe qui), vous dépendez toujours de ses compétences pour maintenir le code (par exemple, l'IDE ou n'importe qui)
Ernelli

4
Steve Yegge est le gars qui a écrit un analyseur JavaScript complet dans elisp, donc il ne fait aucun doute qu'il est fou en ce qui concerne Emacs :)
Tikhon Jelvis

106

Il (Steve Yegge) a développé cela, en morceaux, dans d'autres articles de son. http://steve-yegge.blogspot.com/2008_04_01_archive.html est probablement le plus complet, mais l'info y est enterrée puisqu'elle est tangente au sujet principal.

Je suppose que pour résumer: les programmeurs qui sont simplement bons ou compétents prendront un IDE et le connaîtront très bien, et le feront peut-être assez décemment, mais ils se limiteront à ce que l'EDI leur fournit. En d'autres termes, ils s'adaptent à l'IDE. Les grands programmeurs, d'autre part, adapteront leur environnement en fonction eux - mêmes , dans de telles façons que l' écriture de scripts ou de leurs propres outils, ou d' étendre leurs outils. Et jusqu'à ce dernier point, non seulement Emacs est l' environnement le plus extensible qui soit, mais c'est aussi l' environnement le plus facile à étendre, et c'est l'environnement où vous en tirez le plus d' avantages. de l'étendre - vos extensions s'intègrent dans Emacs comme si elles étaient des fonctionnalités standard, et donc vos futures extensions peuvent s'appuyer sur les précédentes (sorte de boucle de rétroaction positive).


15
La différence est l'énergie nécessaire pour étendre l'IDE. Avec emacs, tous les fichiers de configuration sont des fichiers programme elisp. Donc, essentiellement, la barrière à l'entrée est ridiculement basse (il suffit de changer votre fichier .emacs)
shsmurfy

18
Dans le même esprit qu'Angus. Un bon IDE ne devrait pas avoir à être bricolé sans fin pour faire le travail. Un bon IDE doit avoir toutes les fonctionnalités dont on a besoin. Bien sûr, vous voudrez peut-être configurer les raccourcis et la mise en page, mais vous ne devriez pas avoir besoin d'écrire un tas de scripts pour tout gérer.
Kibbee

5
Angus: tu as raison. Si vous devez vous tromper en ajoutant des choses au lieu de faire votre travail, vous avez manqué le point - Emacs ou non. Sol: Il y a plus à étendre qu'à envoyer la source via des programmes externes. En fait, ce n'est pas du tout un mécanisme d'extension si puissant.
Jonathan Arkell

15
La différence entre l'extension d'emacs et l'extension de Netbeans, Visual Studio ou Eclipse est la vitesse. Ajouter des extensions à eclipse revient à écrire une application entière. En comparaison, l'écriture d'une extension pour emacs peut être une seule ligne de code.
Justin Tanner

4
@supercheetah - semble très primitif par rapport à l'intellisense trouvé dans Visual Studio, par exemple, les icônes affichées à côté des membres disponibles sont utiles! Personnellement, sans support de refactoring solide, je ne m'intéresse guère à Emacs.
si618

57

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 à part 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é - tout le cycle d'édition / liaison / compilation pouvait être contrôlé dans emacs, et vous pouviez rouler le vôtre quel que soit le compilateur que vous utilisiez.

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


10
+1 pour la prophétie auto-réalisatrice dans le premier paragraphe.
OregonGhost

12
"les programmeurs les plus expérimentés sont les meilleurs" - donc très loin de la vérité, du moins par implication. Ne pas dire que les programmeurs inexpérimentés sont meilleurs, mais simplement parce qu'il fait la même chose depuis plus de 20 ans - ne signifie PAS qu'il le fait bien.
AviD

7
Il y avait beaucoup d'éditeurs différents il y a 20 ans. La plupart d'entre eux n'ont tout simplement pas survécu, généralement pour de bonnes raisons. Pourquoi un gars qui a utilisé vi ou emacs en 1989 est-il meilleur qu'un gars qui a utilisé un éditeur basé sur MS-DOS en 1989, ou quoi que ce soit que j'utilisais sur l'ordinateur central de Control Data?
David Thornley

Heck, il y a 10 ans, il n'y avait pas de bon IDE Java!
Susheel Javadi

D'après ce dont je me souviens il y a 20 ans, vi et emacs étaient les éditeurs les plus dominants - ce n'est pas parce qu'il y avait beaucoup d'éditeurs à l'époque (comme maintenant) qu'ils étaient tous également largement utilisés.
FinnNk

34

Améliorer votre réflexion claire et la résolution de problèmes fera de vous un meilleur programmeur. Aucun programme ne peut faire cela.

Utiliser un meilleur marteau ne m'aidera pas à construire une plus belle maison à moins que je sache comment et pourquoi. ;)


Une bonne analogie pour ce que je voulais dire aussi.
Rob

21
Mais un mauvais marteau ruinerait votre productivité en essayant de construire la même maison et vous vous retrouverez probablement avec une maison différente.
user51568

C'est juste! Un programmeur moyen ne s'en tirerait pas beaucoup mieux avec le marteau coûteux.
Jas Panesar

5
Un grand programmeur peut construire une grande maison en utilisant une pierre pour marteau. (Il est lent - mais il peut toujours le faire.: D)
Egon

Oui, mais avoir un éditeur qui laisse le code s'écouler de vous de manière organique (ce que je pense qu'Emacs est meilleur que la plupart des éditeurs) peut améliorer votre réflexion claire et donc la résolution de problèmes.
Skilldrick

21

Yegge doit rencontrer Bill Joy. Non seulement il est l'un des grands programmeurs au 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 l'édition java (et Thunderbird pour le courrier électronique), bien qu'à mon poste actuel, mon la machine a si peu de mémoire que j'utilise habituellement vi sauf lorsque j'ai besoin du débogueur.


7
+1 pour vi (en fait, utilisez vim, mais même différence). C'est 98% de ce que les emacs peuvent faire pour moins de la moitié de l'effort.
rmeador le

25
J'ai utilisé vim pendant 5 ans. Après 20 minutes à Emacs, j'ai juré de ne jamais y retourner. Vim se sent en arrière.
MattBelanger

5
Yegge lui-même mentionne ceci: [La seule exception notable est VIM, qui est également très puissant à tous égards, bien que je n'en ai aucune expérience. Si vous avez déjà développé une préférence pour vi par rapport à emacs, alors vous pouvez éprouver un plus grand bonheur en recherchant l'expertise avec VIM. Psh] Source: steve-yegge.blogspot.com/2006/06/shiny-and-new-emacs-22.html
user674062

1
Euh ... Bill Joy n'utilise plus vi.
Plumenator

13

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

Réduisons simplement cela à Visual Studio vs Emacs - la question est trop large sinon, et je soupçonne que la plupart des gens (au moins ici sur StackOverflow) sont familiers avec ces deux-là. [Je suis, et j'utilise et préfère emacs]

Ensuite, décomposons les trois éléments de la question.

Le plaisir de la programmation se résume à aimer principalement la programmation en elle-même et, en second lieu, à ne pas avoir de facteurs de gêne lorsque vous le faites. Utiliser des outils avec lesquels vous avez du mal va vous soustraire au plaisir. Donc, je suppose que le plaisir est probablement maximisé en utilisant des outils que vous aimez et que vous connaissez bien.

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

Ensuite, compétence en 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 d'un meilleur code.

Un bon outil peut me permettre d'écrire le même code (et donc la même qualité de code) en moins de temps; si nous supposons que productivity = quality of code `times` code per time, alors 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 atouts que je n'ai pas trouvés dans VS. Cela peut sembler ridicule, mais quelque chose d'aussi simple que le mouvement du curseur Ctrl-[fbnp]est un véritable avantage - 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 un remplacement qui inclut des nouvelles lignes, que j'utilise assez souvent pour que je déteste la rater.

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, a été d'écrire des fichiers DOS .bat, donc je ne suis pas qu'un fanboy enflammé), mais sur ces plates-formes, c'est une grande victoire . Cela 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 le nommez).

Verdict final - devriez-vous apprendre les emacs ou pas? Et est-ce 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 méthode pourrait s'avérer plus efficace pour vous. Et je vous encourage à ne pas le rejeter pour ce qu'il semble être lorsque vous êtes tous novices. En ce sens, c'est comme passer à la disposition du clavier Dvorak: vous êtes plus lent au début, mais une fois que vous vous êtes mis à niveau, vous serez probablement au moins aussi rapide que sur qwerty et plus à l'aise. 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 les choses est difficile, mais la récompense est toujours là à l'horizon qui vous attend.


1
"Limitons simplement cela à Visual Studio vs Emacs --- la question est trop large sinon, et je soupçonne que la plupart des gens (au moins ici sur StackOverflow) sont familiers avec ces deux-là." -- Vraiment? Je pensais qu'il y avait beaucoup plus de fanboys enragés comme moi qui ne seraient pas obligés d'utiliser VisualStudio, encore moins de l'utiliser volontairement. Hrm.
Xiong Chiamiov

"Le mouvement du curseur avec Ctrl- [fbnp] est une véritable aubaine". Bien que j'adore Emacs, y étant revenu après une longue interruption, je trouve que le mouvement du curseur de cette façon est l'aspect le moins utile et le moins confortable de l'utilisation d'Emacs à nouveau. En revanche, je peux atteindre et trouver les touches de curseur dédiées sans regarder ni même réfléchir. Peut-être que ça aide d'être pianiste? :) Mais qui sait, avec le temps, peut-être que la lettre C-scrunch sera plus naturelle.
Greg Hendershott

2
ps Je suis totalement d'accord sur les coquilles et les plates-formes. Si vous souhaitez vous déplacer entre Windows, OS X et Linux, vous voulez Cygwin sur le premier et Emacs sur les trois. Lancez votre .emacs.d sur GitHub et vous êtes en or.
Greg Hendershott

également, vous pouvez effectuer une recherche qui inclut des nouvelles lignes dans Visual Studio à l'aide de regexes
Axarydax

10

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 plus grands 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 êtes pris sans votre IDE préféré.

C'est la partie "une fois apprise" qui tue. C'est beaucoup de travail et de pratique d'utiliser ces outils de manière productive, et c'est très difficile au début.


1
Je pense que l'une des qualités qui aide vraiment quelqu'un à être un "grand" ingénieur est de pouvoir retarder la gratification et supporter un coût de démarrage fixe plus important pour améliorer l'efficacité.
Tikhon Jelvis

9

Je suis un fanboy d'Emacs, personnellement, mais Emacs n'est qu'un outil. Cela ne fera pas de vous un meilleur programmeur, pas plus qu'un stylo super 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 que les gens qui en sont passionnés ont tendance à trouver des outils qui contribuent à alimenter cette passion. Emacs (et vim et SlickEdit, et al) est un tel outil.


Les stylos super-fantaisie me font sentir tout Hemingway-ish.
Cheeso

2
La particularité d'Emacs en ce qui concerne «l'adaptation de l'environnement» est qu'il est beaucoup plus simple de le faire dans Emacs que dans Vim ou SlickEdit. (ou tout autre éditeur que je connais)
vedang

8

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 avez codé longtemps, ou plus vous avez codé de niveau inférieur, plus vous avez de chances d'utiliser emacs ou vi.


Le "plus longtemps vous avez codé" semble argumenter pour avoir commencé à coder avant qu'il y ait de bons IDE.
Paul Tomblin

3
Existe-t-il un bon IDE, mon fils?
David Thornley

8

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 de faire plus, avec moins de connaissances. Cela, bien sûr, ne s'applique pas à tous les programmeurs, mais des outils plus simples apportent la programmation à un public plus large.

Une plus grande connaissance des outils de niveau inférieur se traduit souvent par une plus grande stabilité du code, car il y a moins de chances de "aller à 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 vraiment davantage la profondeur de la compréhension, pas la technologie spécifique.

Il y a longtemps, vous avez appris VI ou EMACS sur les boîtiers UNIX ou vous vous êtes spécialisé dans les PC (d'accord, 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 d'UNIX avaient tendance à vouloir une solution sophistiquée, tandis que les gars de PC voulaient juste que cela soit fait rapidement. Les cultures étaient très différentes.


7

Les IDE IMHO ont tendance à être optimisés autour d'une plate-forme ou d'un langage ou d'un système d'exploitation spécifique: Eclipse JDT est idéal pour Java, Visual Studio est centré sur C ++ / .NET, etc. Ils aident beaucoup à la productivité (encore une fois à mon humble avis) si vous travaillez uniquement sur cette plate-forme, mais si vous changez de plate-forme, vous devez essentiellement apprendre un nouvel 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, Textmate, ou vim (ma préférence personnelle), ou tout autre éditeur générique , est que les compétences que vous acquérez dans cet éditeur s'appliquent quelle que soit la plate-forme pour laquelle vous écrivez. Ils sont optimisés pour l' édition de texte , et une fois que vous les maîtrisez, vous pouvez éditer du texte très efficacement dans n'importe quelle langue.

Il y a aussi l'affirmation de Yegge selon laquelle les grands programmeurs adaptent leurs outils à leur style de travail plutôt que l'inverse. Je pense que c'est une victoire pour les éditeurs génériques, car vous personnalisez un éditeur, plutôt que d'avoir à travailler sur la manière d'adapter quatre IDE différents pour qu'ils se comportent tous comme vous le souhaitez.


Le problème survient lorsque vous devez écrire sur une plate-forme différente de celle sur laquelle vous étiez: par exemple, vous passez de * nix à Windows, et vos scripts se cassent parce qu'ils supposaient un bourne shell avec des chemins basés sur '/' dans un Structure de type FHS avec impression PostScript ...
SamB

Je travaille avec emacs depuis un certain temps, maintenant, et seul le mouvement du curseur me suffit pour me renvoyer à écrire dans n'importe quoi d'autre - même s'il s'agit d'un e-mail dans KMail.
Arne Babenhauserheide

@ArneBabenhauserheide c'est l'une des raisons pour lesquelles j'aime Mac OS X, presque tous les champs de texte prennent en charge C-[npfbaed]. (Mais malheureusement pas M-)
porglezomp

6

Je dirais que les meilleurs programmeurs ont tendance à être ceux qui prendront le temps de personnaliser leur environnement, ce qui rendra 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 en matière de personnalisation de votre environnement. Il a une courbe d'apprentissage abrupte mais, une fois que vous avez dépassé cela, il n'y a pratiquement aucune limite à ce que vous pouvez faire pour vous.

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


4

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

Bien entendu, rien ne remplacera le concepteur Windows Forms de Visual Studio. Mais comparé à VIM (et à Emacs, j'en suis sûr), l'éditeur de texte dans Visual Studio est vraiment nul. Une fois que vous exploitez la puissance brute de la console et des outils de développement GNU (je veux dire make, GCC, binutilset gdb, et plus encore), vous remarquerez que ces outils peuvent sembler primitifs, mais ils sont juste le contraire, et offrent en fait tous les outils fournis par un IDE (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 dont je pourrais sortir.


3

Personnellement, je pense que vous devriez 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, alors ce n'est probablement pas la meilleure utilisation de votre temps à ce stade.

Cependant, je pense que c'est une bonne idée d'apprendre à connaître 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 où j'ai envisagé d'utiliser Emacs, mes efforts étaient mieux servis pour faire du travail que de me ralentir dans la lutte avec Emacs.

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


3

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 régulières m'a beaucoup appris sur la recherche de modèles dans le code. Les frappes ont mis un certain temps à s'habituer, mais je vole beaucoup plus vite sans la souris.

Emacs m'a donné la possibilité de continuer à travailler avec mes notes et le 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

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

Cela dit, une bonne manipulation de texte est la clé de l'efficacité. Soit vim, soit emacs changera la façon dont vous travaillez avec du texte - les deux se sont avérés efficaces mais sont presque en désaccord en termes de style. De plus, ce débat est plutôt ancien (retour aux années 80 et 90 où le texte -> compilateur é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

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

Cependant, je l'utilise quotidiennement. Je trouve que je suis plus productif avec emacs + maven qu'avec Eclipse pour le développement java (même si je lance toujours Eclipse de temps en temps pour faire une session de refactoring ou de débogage occasionnelle).

Voici mes raisons:

  • L'expérience d'édition de texte dans emacs bat tout le reste. C'est incroyable à quelle vitesse vous pouvez accomplir autant de choses en utilisant uniquement votre clavier. Eclipse est plus orienté souris et lorsque vous tapez, vous rencontrez de nombreux problèmes irritants.
  • Pouvoir personnaliser emacs avec elisp est incroyablement puissant. J'irai jusqu'à dire que si vous ne prenez pas le temps d'apprendre l'élisp rudimentaire et de personnaliser votre environnement, vous perdez tout simplement votre temps.
  • Il existe des extensions pour pratiquement tout ce que vous pourriez vouloir faire dans un éditeur de texte.

1
+1 pour la corrélation! =
Causalité

Quel mode java utilisez-vous?
avendael

1
J'utilise le mode java stock fourni avec Emacs23, avec quelques personnalisations et hacks pour exécuter des builds maven. J'ai également commencé à utiliser emacs-eclim, qui agit comme un pont entre emacs et eclipse. C'est agréable et utilisable, mais assez rugueux pour le moment.
fred-o

3

Pour moi, la principale raison pour laquelle je choisirais Emacs plutôt qu'un IDE est que cela me permet de tout faire à partir de mon clavier. C'est bien en ce sens que cela permet de gagner du temps lorsque j'utiliserais normalement une souris. De plus, comme 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. Cependant, si vous vous retrouvez à programmer assez rapidement avec un IDE, je dirais que la courbe d'apprentissage d'Emacs ne vaut pas la peine.


2

Y a-t-il une différence mesurable en termes de compétences, de productivité ou de plaisir de la programmation entre les personnes qui dépendent des IDE et celles qui ne le font pas, ou est-ce uniquement 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 chose la causant ou non.

C'est toujours une question intéressante.

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

G-Man


Mec fanboys. IDE n'est pas un éditeur. IDE n'a pas besoin d'être le meilleur éditeur.
Perpetualcoder

2

Je ne pense pas que cela ferait de vous un meilleur programmeur, mais lorsque vous aurez CE niveau, vous utiliserez 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 qu'ils n'interrompent pas votre chemin de pensée , vous n'avez pas à retirer vos mains de le clavier pour saisir la souris et chercher dans le menu Fichier pour la bonne option. Continuez à écrire. Dans votre esprit, vous dites quelque chose comme: "Remplacez toutes les occurrences de ce mot par 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 vitesse à laquelle vous pouvez coder à l'aide de ces outils.


La chasse dans le menu est destinée aux personnes qui ne connaissent pas l'IDE. Je ne sais pas quand j'ai dû "chasser" pour la dernière fois une option de menu.
tster le

Vous pensez donc que l'utilisation de "Fichier-> Enregistrer" est meilleure que Ctrl-S? Je ne pense pas. Devoir saisir la souris, cliquer sur le fichier Menu, puis déplacer la souris vers le bas pour enregistrer l'entrée me semble beaucoup lorsque vous pouvez le faire sans prendre les mains du clavier.
OscarRyz

évidemment je suis d'accord. Tous les IDE que j'ai tous utilisés ont des raccourcis clavier et des combinaisons étendus et personnalisables, tout comme emacs.
tster

2

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, bien qu'il soit 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 en fonction de 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» des outils - éditeurs, compilateurs, etc. spécifiques aux outils. processus d’amélioration.


2

L'une des grandes fonctionnalités d'emacs est qu'il peut gérer à peu près tous les types de fichiers que vous lui lancez, quelle que soit leur taille. Certes, si vous ouvrez un énorme fichier crypté fou, cela ne sera pas forcément utile mais il s'ouvrira. La plupart des éditeurs (et IDE) vous donneront beaucoup de peine si vous leur remettez un fichier trop gros et / ou qui ne fait pas partie de leurs formats attendus.

Essayez d'ouvrir un fichier de 1 Go 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 le seul outil, mais c'est toujours quelque chose vers lequel je peux me tourner et savoir que je pourrai faire un travail utile.

Commentaire incendiaire obligatoire : D'un autre côté, je n'ai rien de bon à dire sur vi. J'ai toujours pensé que vi me tuerait volontiers et vendrait mes organes 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 une modification rapide. Il n'y a presque rien 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 doit-il jamais éditer des chaînes statiques dans des exécutables binaires compilés? Y a-t-il un meilleur outil pour ce genre de chose que emacs? Cela fonctionne certainement pour moi.


1
Alors que Visual Studio raterait complètement cette opportunité et se contenterait de fouiller dans votre portefeuille pour voir s'il y avait de l'argent disponible.
Rob

Désolé, je ne sais pas. J'utilise Netbeans presque tout le temps et emacs quand j'en ai besoin.
Bob Cross

2

Je sais que vous ne l'avez pas demandé, mais une chose que l'apprentissage d'emacs (inattendue) a amélioré pour moi a été 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 fléchées parce que je ne savais pas mieux. C'était en quelque sorte un moment d'ampoule lorsque j'ai réalisé que je pouvais utiliser backward-word, move-beginning-of-lineet backward-kill-word(ce à quoi je me suis toujours lié C-w, comme le suggère Stevey ) dans bash( M-test souvent utile aussi, et le plus impressionnant pour ceux qui ne l'ont jamais vu auparavant).

Je travaille beaucoup 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 bashd'eux-mêmes, 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 valait la peine) - donc je ne pense pas que cela ait amélioré ma programmation par magie.


Mec, j'ai vraiment besoin d'en savoir plus sur ces astuces ... Quoi qu'il en soit, ne pouvez-vous pas changer votre shell de connexion, ou avez-vous vraiment voulu dire "le shell pour l'utilisateur root" quand vous avez dit "root shell"? Si tel est le cas, pourquoi vous connectez-vous en tant que root ???
SamB

2

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


2

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


C'est un très vieux style de Lisp (avec seulement une portée dynamique et pas de portée lexicale), mais il a certainement beaucoup à apprendre. Cela, et cela peut être un éditeur de texte assez sympa les jours où cela fonctionne vraiment bien!
SamB du

1

Pouvoir utiliser un éditeur personnalisable vous permet de faire des choses intéressantes, 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 étranges à moitié automatisés avec lesquels emacs est célèbre. J'ai vu des gens faire des choses similaires avec vi et divers éditeurs Windows.

Donc, oui, le socket est bien réglé, mais affirmer que Craftsman rend le One True Socket Set est un peu stupide.


En passant, je serais peut-être enclin à essayer SlickEdit sans le marketing de braindead: "10 raisons de ne pas utiliser SlickEdit - # 1: vous aimez être un mauvais programmeur. # 2: vous voulez dépenser plus pour faire moins. # 3: vous êtes un crétin consanguin. etc etc etc "
Juliet

Je suis entré dans Slick avant qu'il HAD marketing; c'est juste que c'était le seul véritable éditeur fonctionnant sous OS / 2 3.0 à l'époque. Ce qui est probablement à peu près la même raison pour laquelle tous ces autres gars utilisent emacs ...
mjfgates

1

Maîtriser les raccourcis clavier Emacs et ses fonctions intégrées vous permettra de manipuler du texte plus rapidement que les IDE tels que Eclipse ou Visual Studio.

Ne me croyez pas sur parole, 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 avec les fichiers dot d' Emacs Starter Kit .

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


la question est de savoir pourquoi commencer à l'utiliser? Si l'on est heureux, confortable et productif, pourquoi perdre du temps et des efforts à apprendre les emacs? Je préfère de loin apprendre un nouveau langage de programmation ou rechercher de nouvelles technologies plutôt que d'apprendre un ancien éditeur, bien que puissant. Il n'y a que 24 heures dans une journée, utilisez le temps à bon escient.
sarsnake

une autre chose que je voudrais noter que cela dépend également de la technologie que vous utilisez. Emacs a-t-il Intellisence? Je l'ai utilisé à l'université sur des machines UNIX et je suis sûr qu'il a changé depuis. Mais pour .NET, l'intellisence est un must. Il n'y a aucun moyen pour quiconque de se souvenir de TOUS les noms de fonctions dans toutes les classes dans tous les espaces de noms. Et je suis sûr que je ne vais pas sur MSDN chaque fois que j'ai besoin de rechercher un nom de fonction. Si Emacs propose Intellisence, je le considérerais.
sarsnake

1

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 sont très appréciés ou nécessaires pour devenir un "grand programmeur". J'ai toujours pensé que les IDE sont plus puissants qu'avant, et cela dépend vraiment d'une préférence et d'un style.


0

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

le texte que vous avez posté n'est qu'un troll. Oui. Aucune autre raison à cela que de déclencher une guerre de religion.


0

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

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


Emacs EST-CE ont un Mx vi mode bien, je pense que ce genre était une blague ...
Brian Postow

Connaître les bases de vi est essentiel pour faire de l'administration système. Ce n'est pas de la programmation, cependant.
Xiong Chiamiov
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.