10 vezes mais produtivo ? Não é provável. Costumo pensar que os fatores multiplicativos são mais parecidos com 1.1, o que aumenta depois de um tempo.
O que Steve Yegge está falando é realmente uma reflexão sobre ser um especialista no Emacs, e esses são muito raros. As pessoas que estão conseguindo esse efeito multiplicativo estão personalizando ativamente sua experiência no Emacs, escrevendo elisp para adaptá-lo às suas necessidades específicas. Por exemplo, Yegge escreveu ejacs . A interpretação da cotação do Yegge implica estritamente que você está personalizando o Emacs para facilitar a personalização / extensão do Emacs.
Aqui está como eu detalharia os vários níveis de conhecimento conforme eles se aplicam ao Emacs:
- Um iniciante sabe como executar o Emacs, mover o cursor, fazer algumas edições, sair do Emacs.
- Um iniciante avançado sabe como colocar algumas personalizações básicas
.emacs
ou copiou completamente pedaços de outras pessoas .emacs
para os deles. Eles sabem como fazer ligações de teclas globais, require
pacotes integrados, ativar modos menores.
- Usuários competentes do Emacs têm
.emacs
arquivos grandes , possivelmente divididos em vários arquivos. Eles baixam e usam pacotes não-padrão, sabem como encontrar documentação para comandos, modos, visualizam as combinações de teclas existentes, se sentem confortáveis com as diferenças entre modos menores e modos principais. Usuários competentes geralmente mantêm uma única instância do Emacs em execução por dias / semanas, escrevendo, compilando, executando e depurando programas de seus Emacs.
- Usuários proficientes se sentem à vontade para escrever o emacs lisp, criando seus próprios comandos interativos e se sentem à vontade para escrever modos menores. Usuários proficientes olham para o código emacs lisp para entender melhor os modos que estão usando, usam o depurador elisp e geralmente usam processos inferiores (shells, processos lisp, ...).
- Usuários experientes do Emacs escrevem novos modos principais do zero, olham e modificam o código C do Emacs, sabem o que é edição recursiva e a utilizam, usam a comunicação entre processos para integrar o Emacs a ferramentas externas. Eles também leem a lista de discussão do emacs-devel .
E como você está solicitando experiência pessoal, eis alguns exemplos do que eu pessoalmente fiz e que me parecem mais produtivo. Nota: Eu trabalho em uma empresa onde não estamos nem perto do que há de mais avançado em ambientes de desenvolvimento, por exemplo, ainda usamos o CVS.
- Integrei o Emacs com a ferramenta de rastreamento de bugs: quando faço confirmações, ele registra o nome do arquivo e a versão nos campos do bug, e no Emacs posso ver meus bugs, atribuí-los, resolvê-los etc.
- Eu escrevi uma ponte conectando meu produto (trabalho diurno) e o Emacs, efetivamente tornando meu produto um processo inferior - permitindo que eu faça alterações no código-fonte em tempo real.
- Estendi o manuseio de TAGS com o find-file-in-tags, que fornece vários atalhos adequados ao meu ambiente de desenvolvimento.
- Eu escrevi um modo que obtém resultados de regressão e me permite pular para falhas, examinar arquivos de log, executar novamente um ou mais testes ou inserir uma execução de depuração, com o mínimo de pressionamentos de tecla.
- Meu relatório semanal de status (sim, eu uso o Emacs para email) é gerado automaticamente usando os commits que fiz ao longo da semana.
Essas foram as alterações que fiz para adaptar o Emacs especificamente ao meu ambiente e meu fluxo de trabalho.
Sou 10 vezes mais produtivo do que outros ao meu redor? Não.
No entanto, para o meu trabalho diário, há muitas tarefas que posso executar com algumas teclas que outras pessoas passam muito mais tempo em seu ambiente não personalizado e que geralmente exige que elas alternem entre o editor e um navegador da Web ou um shell .
Eles são exemplos surpreendentes? Não. Tenho certeza de que muito do que fiz já está disponível no Visual Studio . Meu artigo o levará de volta à Igreja de Emacs? Provavelmente não.
No entanto, se você vê um padrão de comportamento em seu ambiente de desenvolvimento e tem essa coceira que está lhe dizendo: "Eu realmente não deveria ter que repetir X / Y / Z repetidamente, se eu pudesse ..." Eu recomendo tentar usar o Emacs para coçar essa coceira. Esse arranhão pode ser o primeiro passo nesse caminho "auto-reforçador" de que Steve Yegge está falando.
Nota secundária: eu não sei se muitos usuários do Emacs realmente especialistas estão usando ativamente os sites de estouro de pilha ou, pelo menos, não estão respondendo a perguntas relacionadas ao Emacs. Eu digo isso com base nos principais usuários das tags emacs e elisp no estouro da pilha.