Il libro di cui parliamo è un manuale introduttivo alla programmazione dell'editor
Emacs.
È un manuale di
programmazione per non programmatori, almeno così dichiara l'autore. Si tratterebbe a prima vista di un ossimoro, un manuale di programmazione è un manuale per programmatori o almeno per aspiranti programmatori.
In realtà non c'è l'ossimoro, e se si fossero dimenticati della parola
programmazione sarabbe stato forse meglio. Il suo scopo è imparare a fare cose utili, almeno inizialmente, e casomai passare poi ad argomenti più complessi una volta che la parola programmazione non spaventa più.
Racconta infatti Richard Stallman, che l'assenza della parola
programming aveva permesso che anche delle segretarie, che
... believed they couldn't do programming, weren't scared off. They read the manual, discovered they could do useful things and they learned to program.
Infatti, scrivere microprogrammi di meno di 10 righe, in cui si dice alla macchina come automatizzare un compito, è veramente molto facile, a patto che il sistema che stiamo usando ce lo renda facile. Emacs è, con la shell di Unix, uno di questi sistemi servizievoli verso l'utente.
Non amichevoli,
servizievoli. Il Lupo Cattivo è amichevole quando incontra Cappuccetto Rosso, ma non la aiuta di certo. Allo stesso modo, molti programmi user friendly si trasformano, nel momento del bisogno, in trappole che costringono l'utente a servire affannosamente la macchina affinché compia il suo lavoro. Né più né meno come fuochisti che devono spalare carbone nel forno o il figlio del direttore della fabbrica che si sfinisce muovendo le lancette di un gigantesco quadrante nella famosa scena di
Metropolis.
Emacs invece è in ogni momento disposto a fare al vostro posto le cose meccaniche e ripetitive.
Questo libro ci accompagna passo passo nell'apprendere le tecniche con cui far far al meglio cose utili e quindi a programmare.
Il manuale insegna la forma, insegna a fare cose un pelo più avanzate, ma
le cose da far fare le sappiamo già, senza nemmeno leggere il libro: per fare sì che il computer faccia molte cose utili non occorre studiare la logica a tavolino, basta elencare le cose che si farebbero manualmente.
C'è solo da imparare come descrivere le operazioni alla macchina. In Emacs, ogni comando dato da tastiera è un comando che l'utente può invocare in un programma. Una sequenza di comandi dati da tastiera diventa immediatamente una sequenza di istruzioni del programma, basta sapere qual'è l'istruzione corrispondente - e qui Emacs è sempre pronto ad aiutare.
Una volta scritta in un programmino, la sequenza di istruzioni può
magicamente essere riutilizzata più e più volte. Il fatto poi che Emacs sia pronto in ogni momento ad imparare nuove cose, senza il bisogno di
riti esoterici, non fa che semplificarci la cosa. Basta che ci rendiamo conto che, per le operazioni elementari, la logica è la stessa della sequenza di operazioni che seguiremmo a mano.
Con tante operazioni semplici si fanno operazioni complesse. Se vogliamo, possiamo iniziare a pianificare la soluzione di problemi che non abbiamo ancora affrontato. Possiamo iniziare ad avventurarci nel mare magnum della programmazione. Ma non siamo obbligati. Anzi.
Però l'utilizzo di piccoli programmini può semplificare il nostro lavoro con il computer e lasciarci più energie per quei compiti per cui il computer è (o dovrebbe essere) solo un aiuto.
Disponibilità
Il libro è disponibile in lingua inglese, non mi sono note traduzioni. Qui ci sono vari formati del libro:
È data ampia facoltà di copia:
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; there being no Invariant Section, with the Front-Cover Texts being "A GNU Manual", and with the Back-Cover Texts as in (a) below. A copy of the license is included in the section entitled "GNU Free Documentation License".
Chi lo desiderasse può richiederne
copia cartacea alla FSF.
Documenti gianoziani
Per chi volesse avvicinarsi a Emacs, un paio di risorse aggiuntive dalla Gianozia Orientale, sede di un noto monastero Emacsita: