10 X plus productif ? Pas probable. J'ai tendance à penser que les facteurs multiplicatifs ressemblent plus à 1,1, ce qui s'additionne après un certain temps.
Ce dont parle Steve Yegge est vraiment une réflexion sur l' expertise d'Emacs, et ceux-ci sont très rares. Les personnes qui atteignent cet effet multiplicatif personnalisent activement leur expérience Emacs en écrivant elisp pour adapter Emacs à leurs besoins spécifiques. Par exemple, Yegge a écrit des éjacs . L'interprétation de la citation de Yegge implique strictement que vous personnalisez Emacs pour faciliter la personnalisation / l'extension d'Emacs.
Voici comment je décomposerais les différents niveaux d'expertise qui s'appliquent à Emacs:
- Un novice sait comment exécuter Emacs, déplacer le curseur, effectuer des modifications, quitter Emacs.
- Un débutant avancé sait comment mettre quelques personnalisations de base dans leur
.emacs
, ou a complètement copié des morceaux d'autres personnes .emacs
dans le leur. Ils savent comment faire des liaisons de clés globales, require
des packages intégrés, activer des modes mineurs.
- Les utilisateurs Emacs compétents ont de gros
.emacs
fichiers, éventuellement divisés en plusieurs fichiers. Ils téléchargent et utilisent des packages non standard, savent comment trouver la documentation des commandes, des modes, affichent les raccourcis clavier existants, sont à l'aise avec les différences entre les modes mineurs et les modes majeurs. Les utilisateurs compétents conservent généralement une seule instance d'Emacs pendant des jours / semaines, écrivant, compilant, exécutant et déboguant des programmes à partir de leurs Emacs.
- Les utilisateurs compétents sont à l'aise pour écrire des lisp emacs, créant leurs propres commandes interactives, et sont à l'aise pour écrire des modes mineurs. Les utilisateurs expérimentés examinent le code lisp emacs pour mieux comprendre les modes qu'ils utilisent, utilisent le débogueur elisp et utilisent généralement des processus inférieurs (shells, processus lisp, ...).
- Les utilisateurs experts d' Emacs écrivent de nouveaux modes majeurs à partir de zéro, recherchent et modifient le code C pour Emacs, savent ce qu'est l' édition récursive et l'utilisent, utilisent la communication interprocessus pour intégrer Emacs avec des outils externes. Ils ont également lu la liste de diffusion emacs-devel .
Et puisque vous demandez une expérience personnelle, voici des exemples de ce que j'ai personnellement fait pour donner l'impression d'être plus productif. Remarque: il se trouve que je travaille dans une entreprise où nous sommes loin de la pointe des environnements de développement, par exemple, nous utilisons toujours CVS.
- J'ai intégré Emacs à l'outil de suivi des bogues: lorsque je fais des commits, il enregistre le nom de fichier et la version dans les champs du bogue, et à partir d'Emacs je peux voir mes bogues, les affecter, les résoudre, etc.
- J'ai écrit un pont reliant mon produit (travail de jour) et Emacs, ce qui fait de mon produit un processus inférieur - me permettant d'apporter des modifications au code source à la volée.
- J'ai étendu la gestion des TAGS avec find-file-in-tags qui fournit un certain nombre de raccourcis qui conviennent à mon environnement de développement.
- J'ai écrit un mode qui prend les résultats de la régression et me permet de passer aux échecs, d'examiner les fichiers journaux, de réexécuter un ou plusieurs tests ou de lancer un débogage, avec un minimum de frappes.
- Mon rapport de situation hebdomadaire (oui, j'utilise Emacs pour le courrier électronique) est généré automatiquement à l'aide des commits que j'ai effectués tout au long de la semaine.
Ce sont des changements que j'ai apportés pour adapter spécifiquement Emacs à mon environnement et à mon flux de travail.
Suis-je 10 fois plus productif que les autres autour de moi? Non.
Cependant, pour mon travail quotidien, il y a de nombreuses tâches que je peux faire avec quelques touches que d'autres passent beaucoup plus de temps à faire dans leur environnement non personnalisé, et qui les obligent généralement à basculer entre leur éditeur et un navigateur Web ou un shell .
Sont-ils des exemples étonnants? Non, je suis sûr qu'une grande partie de ce que j'ai fait est déjà disponible dans Visual Studio . Mon article vous ramènera-t-il à l'église d'Emacs? Probablement pas.
Cependant, si vous voyez un modèle de comportement dans votre environnement de développement, et que vous avez cette démangeaison qui vous dit: "Je ne devrais vraiment pas avoir à faire X / Y / Z encore et encore, si je pouvais seulement ..." alors Je recommande d'essayer d'utiliser Emacs pour éliminer cette démangeaison. Cette égratignure pourrait être le premier pas sur cette voie "auto-renforçante" dont parle Steve Yegge.
Remarque mineure: je ne sais pas que de nombreux utilisateurs d'Emacs vraiment experts utilisent activement les sites de débordement de pile ou, du moins, ne répondent pas aux questions liées à Emacs. Je dis cela en fonction des meilleurs utilisateurs pour les balises emacs et elisp sur le débordement de la pile.