10 volte più produttivo ? Non probabile Tendo a pensare che i fattori moltiplicativi siano più simili a 1.1, che si sommano dopo un po '.
Ciò di cui parla Steve Yegge è davvero una riflessione sull'essere un esperto di Emacs, e quelli sono molto rari. Le persone che stanno ottenendo questo effetto moltiplicativo stanno attivamente personalizzando la loro esperienza Emacs scrivendo elisp per personalizzare Emacs in base alle loro esigenze specifiche. Ad esempio, Yegge ha scritto ejacs . L'interpretazione della citazione di Yegge implica che stai personalizzando Emacs per semplificare la personalizzazione / estensione di Emacs.
Ecco come analizzerei i vari livelli di competenza applicati a Emacs:
- Un principiante sa come eseguire Emacs, spostare il cursore, eseguire alcune modifiche, uscire da Emacs.
- Un principiante avanzato sa come inserire alcune personalizzazioni di base nelle loro
.emacs
, o ha copiato completamente pezzi di altre persone .emacs
nelle loro. Sanno come creare combinazioni di tasti globali, require
pacchetti integrati, abilitare le modalità secondarie.
- Gli utenti di Emacs competenti hanno
.emacs
file di grandi dimensioni, possibilmente suddivisi in più file. Scaricano e usano pacchetti non standard, sanno come trovare la documentazione per comandi, modalità, visualizzano le combinazioni di tasti esistenti, sono a loro agio con le differenze tra le modalità minori e le modalità principali. Gli utenti competenti generalmente mantengono in esecuzione una singola istanza di Emacs per giorni / settimane, scrivendo, compilando, eseguendo e eseguendo il debug dei programmi dai loro Emacs.
- Gli utenti esperti sono a proprio agio nella scrittura di emacs lisp, nella creazione di comandi interattivi e nella scrittura di modalità secondarie. Gli utenti esperti guardano il codice emacs lisp per comprendere meglio le modalità che stanno usando, usare il debugger elisp e comunemente usano processi inferiori (shell, processi lisp, ...).
- Gli utenti esperti di Emacs scrivono da zero nuove modalità principali, cercano e modificano il codice C per Emacs, sanno cos'è l' editing ricorsivo e lo usano, usano la comunicazione tra processi per integrare Emacs con strumenti esterni. Hanno anche letto la mailing list di emacs-devel .
E poiché stai chiedendo un'esperienza personale, ecco alcuni esempi di ciò che ho fatto personalmente che mi fanno sentire più produttivo. Nota: mi capita di lavorare in un'azienda in cui non siamo in nessun posto vicino al limite degli ambienti di sviluppo, ad esempio, utilizziamo ancora CVS.
- Ho integrato Emacs con lo strumento di tracciamento dei bug: quando eseguo i commit, registra il nome del file e la versione nei campi per il bug, e da Emacs posso visualizzare i miei bug, assegnarli, risolverli, ecc.
- Ho scritto un bridge che collega il mio prodotto (lavoro diurno) ed Emacs, rendendo efficacemente il mio prodotto un processo inferiore, permettendomi di apportare modifiche al codice sorgente al volo.
- Ho esteso la gestione di TAGS con find-file-in-tags che fornisce una serie di scorciatoie adatte al mio ambiente di sviluppo.
- Ho scritto una modalità che accetta i risultati della regressione e mi consente di saltare agli errori, esaminare i file di registro, rieseguire uno o più test o avviare una corsa di debug, con sequenze di tasti minime.
- Il mio rapporto sullo stato settimanale (sì, utilizzo Emacs per e-mail) viene generato automaticamente utilizzando i commit che ho fatto durante la settimana.
Queste sono le modifiche che ho apportato per personalizzare specificamente Emacs in base al mio ambiente e al mio flusso di lavoro.
Sono 10 volte più produttivo di altri intorno a me? No.
Tuttavia, per il mio lavoro quotidiano, ci sono molte attività che posso svolgere con un paio di sequenze di tasti che altri trascorrono molto più tempo a fare nel loro ambiente non personalizzato e che generalmente richiedono loro di passare dal loro editor a un browser Web o a una shell .
Sono esempi sorprendenti? No. Sono sicuro che gran parte di ciò che ho fatto è già disponibile in Visual Studio . Il mio articolo ti riporterà alla Chiesa degli Emacs? Probabilmente no.
Tuttavia, se vedi un modello di comportamento nel tuo ambiente di sviluppo e hai quel prurito che ti dice: "Non dovrei davvero fare X / Y / Z più e più volte, se solo potessi ..." allora Consiglio di provare a usare Emacs per grattare quel prurito. Quel graffio potrebbe essere il primo passo verso il sentiero "autorinforzante" di cui parla Steve Yegge.
Nota minore: non so che molti (nessuno?) Utenti Emacs veramente esperti utilizzano attivamente i siti di overflow dello stack o, almeno, non rispondono alle domande relative a Emacs. Lo dico sulla base dei migliori utenti per i tag emacs e elisp su overflow dello stack.