10 veces más productivo ? No es probable. Tiendo a pensar que los factores multiplicativos se parecen más a 1.1, que se acumula después de un tiempo.
De lo que Steve Yegge está hablando es realmente una reflexión sobre ser un experto en Emacs, y eso es muy raro. Las personas que están logrando este efecto multiplicativo están personalizando activamente su experiencia con Emacs al escribir elisp para adaptar Emacs a sus necesidades específicas. Por ejemplo, Yegge escribió ejacs . Interpretar la cita de Yegge implica estrictamente que está personalizando Emacs para que sea más fácil personalizar / extender Emacs.
Así es como desglosaría los diversos niveles de experiencia que se aplican a Emacs:
- Un novato sabe cómo ejecutar Emacs, mover el cursor, hacer algunas ediciones y salir de Emacs.
- Un principiante avanzado sabe cómo poner algunas personalizaciones básicas en ellos
.emacs
, o ha copiado completamente fragmentos de otras personas .emacs
en los suyos. Saben cómo hacer enlaces de teclas globales, require
paquetes integrados, habilitar modos menores.
- Los usuarios competentes de Emacs tienen
.emacs
archivos grandes , posiblemente divididos en múltiples archivos. Descargan y usan paquetes no estándar, saben cómo encontrar documentación para comandos, modos, ven las combinaciones de teclas existentes, se sienten cómodos con las diferencias entre los modos menores y los modos principales. Los usuarios competentes generalmente mantienen una sola instancia de Emacs ejecutándose durante días / semanas, escribiendo, compilando, ejecutando y depurando programas desde sus Emacs.
- Los usuarios expertos se sienten cómodos escribiendo emacs lisp, creando sus propios comandos interactivos, y se sienten cómodos escribiendo modos menores. Los usuarios expertos miran el código emacs lisp para obtener una mejor comprensión de los modos que están usando, usan el depurador elisp y comúnmente usan procesos inferiores (shells, procesos lisp, ...).
- Los usuarios expertos de Emacs escriben nuevos modos principales desde cero, miran y modifican el código C para Emacs, saben qué es la edición recursiva y la usan, usan la comunicación entre procesos para integrar Emacs con herramientas externas. También leen la lista de correo de emacs-devel .
Y dado que está pidiendo experiencia personal, aquí hay ejemplos de lo que he hecho personalmente que me hace sentir que soy más productivo. Nota: Trabajo en una empresa en la que no estamos cerca de la vanguardia de los entornos de desarrollo, por ejemplo, todavía usamos CVS.
- Integré Emacs con la herramienta de seguimiento de errores: cuando hago commits, registra el nombre de archivo y la versión en los campos del error, y desde Emacs puedo ver mis errores, asignarlos, resolverlos, etc.
- Escribí un puente que conectaba mi producto (trabajo diario) y Emacs, convirtiendo efectivamente mi producto en un proceso inferior, permitiéndome realizar cambios en el código fuente sobre la marcha.
- Extendí el manejo de TAGS con find-file-in-tags que proporciona una serie de accesos directos que se adaptan a mi entorno de desarrollo.
- Escribí un modo que toma resultados de regresión y me permite saltar a fallas, examinar archivos de registro, volver a ejecutar una o más pruebas o ingresar una ejecución de depuración, con un mínimo de pulsaciones de teclas.
- Mi informe de estado semanal (sí, uso Emacs para el correo electrónico) se genera automáticamente utilizando los compromisos que he realizado durante la semana.
Esos son los cambios que he hecho para adaptar específicamente Emacs a mi entorno y mi flujo de trabajo.
¿Soy 10 veces más productivo que otros a mi alrededor? No.
Sin embargo, para mi trabajo diario, hay muchas tareas que puedo hacer con un par de pulsaciones de teclas que otros pasan mucho más tiempo haciendo en su entorno no personalizado, y que generalmente requieren que cambien entre su editor y un navegador web o un shell .
¿Son ejemplos asombrosos? No. Estoy seguro de que gran parte de lo que he hecho ya está disponible en Visual Studio . ¿Te devolverá mi artículo a la Iglesia de Emacs? Probablemente no.
Sin embargo, si ve un patrón de comportamiento en su entorno de desarrollo y tiene ese picor que le dice: "Realmente no debería tener que hacer X / Y / Z una y otra vez, si solo pudiera ..." Recomiendo tratar de usar Emacs para rascar esa picazón. Ese rasguño podría ser el primer paso en ese camino "autorreforzante" del que habla Steve Yegge.
Nota menor: no sé que muchos (¿alguno?) Usuarios verdaderamente expertos de Emacs están utilizando activamente los sitios de desbordamiento de pila, o, al menos, no están respondiendo preguntas relacionadas con Emacs. Lo digo en función de los principales usuarios de las etiquetas emacs y elisp en el desbordamiento de pila.