211service.com
Riscrivere la Bibbia in 0 e 1
Quando scrivi di Donald Knuth, è naturale che suoni scritturale. Per quasi 40 anni, il professore della Stanford University, ora in pensione, ha scritto il vangelo dell'informatica, un'epopea chiamata The Art of Computer Programming. I primi tre volumi costituiscono già il Buon Libro per gli appassionati di software avanzato, vendendo un milione di copie in tutto il mondo in una dozzina di lingue. Il suo approccio al codice permea la cultura del software.
Ed ecco, interrompendo la sua chiamata per nove anni, Donald Knuth ha vagato nel deserto della tipografia per computer, creando un programma che è diventato la Parola nella composizione digitale per l'editoria scientifica. Chiamò il suo software TeX e lo offrì a tutti i credenti, rifiutando il tentativo di una tribù (Xerox) di affermare la proprietà sulle sue formule matematiche. La matematica appartiene a Dio, dichiarò. Ma il Dio di Knuth non è al di sopra degli inganni dei fedeli. Nella sua guida a TeX, The TeXbook, scrive che non sempre dice la verità perché la tecnica della menzogna deliberata ti renderà più facile apprendere le idee.
Ora intento a completare le sue scritture, il 61enne Knuth (ka-NOOTH) conduce quella che lui chiama un'esistenza da eremita (con sua moglie) sulle colline che circondano l'università, dopo essersi ritirato anticipatamente dall'insegnamento. Ha scollegato il suo account di posta elettronica personale, pubblicando una pagina Web (www-cs-faculty.stanford.edu/~knuth/) per tenere a bada la moltitudine di software rispondendo a domande frequenti come Quando uscirà il volume 4 ?
Circa una volta al mese durante l'anno accademico, Knuth scende dalle alture in un'aula nel seminterrato del Gates Computer Science Building a Stanford per tenere una delle sue conferenze Computer Musings, di solito su alcuni aspetti del suo attuale lavoro su The Art of Computer Programmazione. Questi colloqui attirano studenti di informatica, professori in visita, ingegneri del software di aziende vicine e un amministratore delegato occasionale. In una giornata mite all'inizio di quest'anno, l'argomento e gli ascoltatori sono diversi. Per celebrare la pubblicazione del
terzo volume della sua raccolta di articoli, Digital Typography, i soci delle biblioteche della Stanford University hanno invitato un pubblico di appassionati della parola stampata ad ascoltare Knuth parlare della creazione del sistema TeX per la pubblicazione scientifica e matematica. Indossando una maglietta nera sopra una maglietta nera a maniche lunghe, la sua testa pelata che luccica alle luci soprastanti, appare adeguatamente monacale davanti a circa 70 accoliti e colleghi.
Esitante, le sue parole combattono contro la sua innata modestia luterana, inizia: Il lavoro principale della mia vita e la ragione per cui ho iniziato l'intero progetto è scrivere una serie di libri chiamata The Art of Computer Programming, per la quale spero di vivere altri 20 anni e finire il progetto che ho iniziato nel 1962. Sfortunatamente, la programmazione per computer è cresciuta negli anni e quindi ho dovuto scrivere un po' più di quanto pensassi quando l'ho abbozzato. I fedeli ridono consapevolmente.
Knuth racconta la sua deviazione nella tipografia digitale negli anni '70. Questo fu un periodo di enormi cambiamenti nell'industria della composizione, poiché i sistemi informatici sostituirono i caratteri a caldo che erano stati usati dai tempi di Gutenberg. La tipografia per computer era meno costosa, ma anche meno gradevole esteticamente, specialmente per la notazione matematica complessa. Ricorda Knuth: Con il cambiamento della tecnologia di stampa, le attività commerciali più importanti venivano trattate per prime e i matematici per ultimi. Quindi i nostri libri e le nostre riviste hanno iniziato a sembrare pessimi. Non sopportavo di scrivere libri che non avrebbero avuto un bell'aspetto.
Knuth si è preso la responsabilità di scrivere ogni riga di codice per il software che ha prodotto una bella tipografia. Ha tratto il nome del suo programma di composizione dalla parola greca per arte: le lettere sono tau epsilon chi (fa rima con blecch). Dice Knuth: Ben oltre il 90 percento di tutti i libri di matematica e fisica sono composti con TeX e con il suo software associato, Metafont, uno strumento sviluppato da Knuth per progettare caratteri di tipo gradevole.
È pronto a riconoscere il contributo dei type designer, dei punzonatori, dei tipografi, degli storici del libro e degli studiosi che ha raccolto a Stanford durante lo sviluppo di TeX. Alcuni sono tra il pubblico. Dice loro: TeX è quello che oggi chiamiamo software a sistema aperto: chiunque nel mondo può usarlo gratuitamente. Per questo motivo, avevamo migliaia di persone in tutto il mondo che ci aiutavano a trovare tutti gli errori. Penso che sia probabilmente il programma per computer più affidabile delle sue dimensioni di sempre.
Chiunque dubiti di questa affermazione del decisamente poco vanto Knuth può trovare conferma da Guy Steele, uno dei primi utenti di TeX e ora un illustre ingegnere presso Sun Microsystems. TeX, dice Steele, è stato uno dei primi grandi programmi il cui codice sorgente è stato pubblicato apertamente. Steele afferma che la pubblicazione di Knuth del codice TeX in un libro, insieme a commenti completi, ha fatto sì che chiunque potesse capire come funziona e offrire correzioni di bug. Con i migliori scienziati e matematici del mondo accademico come beta-tester, uno straordinario team di controllo qualità ha aiutato a perfezionare TeX. (Lo sforzo di sviluppo di TeX è stato un modello per il movimento del software open source odierno, che ha dato al mondo Linux un sistema operativo che sta iniziando a competere con Microsoft Windows.)
La perfettibilità è una delle principali preoccupazioni di Knuth. L'unico indirizzo e-mail mantenuto da Knuth raccoglie le segnalazioni di errata dei lettori dei suoi libri, offrendo $2,56 per ogni errore precedentemente non segnalato. (L'importo è uno scherzo interno: 256 equivale a 2 all'ottava potenza, il numero di valori che un byte può rappresentare.) Gli assegni di ricompensa di Knuth sono tra i trofei più apprezzati del computer; pochi sono effettivamente incassati.
Prende molto sul serio questa faccenda degli errori. Incise nell'ingresso della sua casa ci sono le parole del poeta danese Piet Hein:
La strada per la saggezza?
beh è chiaro
e semplice da esprimere:
Err
ed errare
e sbagli di nuovo
ma meno
e meno
e meno.
In una variazione su questo tema della perfettibilità, il contributo di Knuth alla teoria dell'informatica nelle pagine di The Art of Computer Programming è stata la sua rigorosa analisi degli algoritmi. Utilizzando i metodi nel suo libro, le operazioni utilizzate per tradurre le istruzioni della macchina in equazioni possono essere testate per determinare se sono ottimali. Migliorare un programma diventa quindi una questione di trovare algoritmi con gli attributi più desiderabili. Non che le prove teoriche possano sostituire il software effettivamente in esecuzione su un computer. In un'osservazione spesso citata che cita sulla sua pagina Web, una volta ha avvertito un collega: attenzione al codice sopra; L'ho solo dimostrato corretto, non provato.
Brutte pause
Nel discorso di Stanford di Knuth, la perfettibilità era di nuovo un tema. Ha seguito le pagine del suo volume sulla tipografia digitale, oltre ai capitoli introduttivi, fino alla sezione più lunga del libro, che affronta un problema cruciale della tipografia. Richiama l'attenzione dei suoi ascoltatori su uno dei principali trucchi tecnici del sistema TeX: la questione di come suddividere i paragrafi in modo che le linee siano approssimativamente uguali e buone.
La scarsa spaziatura tra le parole e le brutte scelte per le interruzioni di riga sono state tra le principali gaffe tipografiche per computer che hanno lanciato Knuth nella sua crociata TeX. Strane voragini di parole, scale di trattini e frammenti di testo orfani risultavano dai rigidi algoritmi utilizzati per programmare le interruzioni di riga senza riguardo per l'eleganza visiva. La soluzione di Knuth: chiedi al computer di utilizzare metodi per tentativi ed errori per testare come suddividere al meglio ogni paragrafo di testo. Invece di algoritmi avidi che raccolgono la maggior parte delle parole su uno standard di linea nella tipografia per computer prima e dopo che il metodo ad alta intensità di calcolo di TeX-Knuth valuta la bellezza.
Knuth sembra nato con il compito di promuovere la bellezza sulla pagina stampata attraverso metodi computazionali. Ho amato i libri fin dall'inizio, dice al suo pubblico. Nella collezione di mia madre, abbiamo trovato il primo libro dell'alfabeto che avevo. Avevo preso le lettere e contato tutte le grazie. È orgoglioso della sua prima alfabetizzazione, dicendo a uno scrittore che era il membro più giovane del Book Worm Club presso la Biblioteca pubblica di Milwaukee. Anche il suo interesse per la riproduzione tipografica arrivò presto nella vita. Uno dei suoi primi ricordi dell'editoria pre-desktop era aiutare suo padre, Ervin, con gli stencil ciclostile per stampare il bollettino della chiesa nel seminterrato. Come la newsletter di suo padre, TeX doveva essere un progetto homebrew, su scala gestibile. L'intento originale era che sarebbe stato per me e la mia segretaria, dice a TR in un'intervista nello studio al secondo piano di casa sua. Appoggiato allo schienale della poltrona nera, Knuth riconosce che il lungo viaggio in TeX doveva essere un breve viaggio laterale: l'avrei finito in un anno.
Gli eventi hanno preso una piega diversa. Nel 1978, Steele di Sun, allora studente universitario del MIT in visita a Stanford, tradusse TeX per utilizzarlo sul computer mainframe del MIT. Improvvisamente, ricorda Knuth, ho avuto 10 utenti, poi 100. Ogni volta ha attraversato diversi livelli di errore. Tra il 1.000° e il 10.000° utente, ho strappato il codice e ho ricominciato da capo. Knuth dice di aver capito allora che TeX non era solo una digressione, era essa stessa parte della visione. Ho visto che questo soddisfaceva un bisogno nel mondo e quindi è meglio che lo faccia bene.
Un punto di svolta chiave nella diffusione di TeX è stata una conferenza tenuta da Knuth davanti all'American Mathematical Society (AMS). Barbara Beeton, specialista del personale in sistemi di composizione per AMS e funzionario di lunga data del TeX User's Group di Portland, Oregon, ricorda l'occasione: è stato invitato a tenere la Josiah Willard Gibbs Lecture. Albert Einstein e John von Neumann erano stati tra i precedenti oratori. Knuth ha parlato per la prima volta in pubblico del suo nuovo sistema di composizione. Knuth stava predicando al coro; i matematici riuniti avevano familiarità con il declino della qualità di stampa. Aggiunge Beeton: TeX è stato il primo sistema di composizione pensato per essere utilizzato dall'autore di un articolo o di un libro rispetto a una casa editrice. Poco dopo, AMS è diventato l'utente istituzionale originale di TeX, utilizzando il sistema di Knuth per pubblicare tutti i suoi documenti e riviste.
Man mano che la voce si diffondeva e sempre più utenti sfruttavano il suo software gratuito (scritto per un computer mainframe accademico ma presto reso disponibile per i PC), Knuth si ritrovò a studiare la storia della stampa per trovare soluzioni per applicazioni ristrette. Spesso, la sua ricerca si è rivelata infruttuosa e avrebbe dovuto trovare la sua risposta. Per gli inviti cerimoniali, ha creato nuovi caratteri; per la composizione musicale ha risolto difficili problemi di allineamento. Avevo così tanti utenti, ricorda. Da partecipazioni di nozze e programmi per l'orchestra sinfonica locale a programmi per computer.
Per quasi nove anni, l'incursione di Knuth nella tipografia lo ha occupato a tempo pieno, allontanandolo dal lavoro sul libro di programmazione che considerava la sua vera vocazione. Ho dovuto pensare al finale di partita, dice. Come potrei responsabilmente finire TeX e dire: questo non cambierà più? Ho dovuto elaborare una strategia quadriennale per districarmi e tornare a L'arte della programmazione informatica.
La soluzione di Knuth: con il rilascio di TeX versione 3.0 nel 1990, dichiarò completato il suo lavoro. I discepoli dovranno mantenere il sistema. Knuth dice che limiterà il suo lavoro alla riparazione dei rari insetti portati alla sua attenzione; ad ogni correzione assegna una cifra in più al numero di versione in modo che tenda a pi greco (la versione attuale è 3.14159).
Un risultato della decisione di Knuth di smettere di apportare modifiche importanti a TeX è che il formato del file TeX è rimasto invariato. È l'unico software in cui puoi prendere il file per il tuo documento dal 1985 e non doverlo convertire per stamparlo allo stesso modo oggi, osserva David Fuchs, un ricercatore senior di Liberate Technologies (ex Network Computer Inc.), che era un studente universitario a Stanford durante lo sviluppo di TeX. Fuchs stima che ci siano 1 milione di utenti TeX in tutto il mondo; molti utilizzano pacchetti commerciali speciali costruiti attorno al kernel TeX, come LATeX (un linguaggio macro orientato ai comandi) e TeXDoc (ottimizzato per la documentazione del software).
L'aspetto negativo è che TeX è limitato nel suo fascino perché non è WYSIWYG, ammette Fuchs, utilizzando l'acronimo di ciò che vedi è ciò che ottieni, il termine standard che descrive il software di elaborazione del testo che visualizza la formattazione sullo schermo come apparirà sulla pagina stampata . Invece di offrire interattività su schermo in tempo reale, TeX richiede un linguaggio di markup digitato in un documento e interpretato dal computer; vedi quello che ottieni solo dopo che è stato stampato. Nonostante la sua interfaccia utente poco intuitiva, TeX ha sviluppato un nucleo dedicato di professionisti della produzione che non accetteranno alcun sostituto. Perché qualcuno dovrebbe volere qualcos'altro? chiede Paul Anagnostopolis, un consulente di editori con sede a Carlisle, Massachusetts e autore di software basato su TeX per la composizione di libri. A molte persone non interessa WYSIWYG.
Opera in corso
Trascorrere nove anni invece di uno per creare tex è lo stesso tipo di errore di calcolo epico che ha portato Knuth alla scala monumentale di L'arte della programmazione informatica . Dopo aver conseguito la laurea al Case Institute (ora Case Western Reserve), stava studiando per il dottorato di ricerca e insegnava al California Institute of Technology nel 1962 quando fu incaricato dall'editore di libri di testo Addison-Wesley di scrivere un volume sui compilatori di computer. (I compilatori sono programmi speciali che convertono il testo digitato dai programmatori in istruzioni nel linguaggio binario nativo di un computer.)
Nel suo studio con libri, Knuth racconta la storia del progetto. Dal 1962 al 1966 scrisse la prima bozza a matita. Il manoscritto era lungo 3000 pagine. Pensavo fosse un volume di forse 600 pagine. Ho solo pensato che la digitazione nei libri fosse più piccola della mia calligrafia. Poi ho scritto il capitolo uno e da solo erano 450 pagine. L'ho mandato all'editore e mi hanno detto: Don, hai idea di quanto durerà il tuo libro?
Di fronte a un manoscritto così ingombrante, molti editori avrebbero abbandonato il progetto. Invece, Addison-Wesley ha elaborato un programma di pubblicazione per quello che potrebbe estendersi fino a sette volumi. Il volume 4 dovrebbe essere pronto nel 2004 e il volume 5 entro il 2009. Quindi Knuth potrebbe finire i volumi 6 e 7, se ciò che ha da dire sugli argomenti scelti è ancora istruttivo. Peter Gordon, partner editoriale di Addison-Wesley e editore di Donald Knuth negli ultimi 20 anni, spiega che il successo dei primi tre volumi di The Art of Computer Programming ha permesso all'editore di costruire la sua intera linea di informatica attorno al lavoro di Knuth. Don ha il suo progetto di vita e il suo senso del tempismo, osserva. È un autore così creativo e dotato, il meglio che qualsiasi editore può fare è tenersi alla larga e lasciargli seguire il suo piano.
Aiuta che il libro continui a ricevere lodi da altri veggenti nel regno digitale. Nella sua rubrica sul giornale sindacato, Bill Gates una volta ha risposto a un lettore: Se pensi di essere un programmatore davvero bravo, o se vuoi mettere alla prova le tue conoscenze, leggi The Art of Computer Programming, di Donald Knuth. Gates ha descritto il suo incontro con il libro: Mi ci sono voluti un'incredibile disciplina e diversi mesi per leggerlo. Ho studiato 20 pagine, l'ho messo via per una settimana e sono tornato per altre 20 pagine. Se qualcuno è così sfacciato da pensare di sapere tutto, Knuth lo aiuterà a capire che il mondo è profondo e complicato. Se riesci a leggere tutto, mandami un curriculum.
Ciò che sostiene Knuth attraverso il suo progetto epico è il suo amore fondamentale per il soggetto. Le persone che lavorano sull'analisi degli algoritmi hanno una doppia felicità, dice, suonando come Yoda. Sei felice quando risolvi un problema e di nuovo quando le persone sorridono usando la tua soluzione nel loro software.
Prima che possa riposare nella terra promessa, Knuth affronta un'ultima montagna. Deve riprogettare il computer generalizzato utilizzato nel suo libro per la programmazione di esempi ed esercizi da una macchina in stile von Neumann di 50 anni fa con comandi inefficienti a un più moderno sistema RISC (computer con set di istruzioni ridotto) che consente un funzionamento più rapido. (I processori Intel nella maggior parte dei PC sono della varietà più vecchia; i chip PowerPC nei recenti modelli Macintosh sono RISC.) Sto cercando di progettarlo in modo che sia 10 anni in anticipo sui tempi, afferma Knuth. Ho studiato tutte le macchine che abbiamo ora e ho cercato di prendere le loro caratteristiche più belle e metterle tutte insieme. Questa super macchina RISC, che lui chiama MMIX, è essenzialmente un concetto didattico. Ma dice che gli piacerebbe vederlo costruito. Sto dedicando molto tempo a documentarlo in modo che qualcuno possa costruirlo. Il design sarà di pubblico dominio. Nel bel mezzo della sua serie di conferenze introduttive su Computer Musings su MMIX, Knuth è a pochi mesi dal completamento di questa fase del suo lavoro.
Poi? Inizio a caricare il volume 4 alla massima velocità. Posso scrivere circa una pagina pubblicabile al giorno, dice. Su un altro libro una volta scrisse al ritmo di due pagine al giorno, ma era troppo. Non potevo essere un buon marito e un buon padre e questo non andava bene. Quindi, sto solo promettendo 250 pagine all'anno per il Volume 4. Per i devoti della Bibbia del software di Knuth, incluso Bill Gates, quelle pagine non arriveranno abbastanza presto.
Per quanto riguarda l'incrollabile fiducia di Knuth nel perseguire il suo obiettivo a lungo termine, la biologia sembra essere dalla sua parte. Sua madre ha 87 anni, gode di buona salute e lavora ancora, dice, nella gestione di uffici immobiliari. Suo padre, che lo ha avviato sulla strada della tipografia per computer, è morto a 62 anni. Tuttavia, questo patriarca digitale conclude: Il padre di mio padre ha vissuto fino a 97 anni, quindi spero di prendermi da lui.
Prima che raggiunga l'età avanzata richiesta per completare tutti i suoi piani di pubblicazione, Knuth potrebbe dover affrontare le tentazioni che derivano dalla fama. Un annuncio su una rivista di due pagine per fatbrain.com proclama, su un collage tagliente: Presentare l'unica libreria sulla terra in cui Donald Knuth vende più di John Grisham un miliardo a uno. Questo potrebbe essere il primo riconoscimento commerciale dello status iconico di Knuth tra i digerati. Tale riconoscimento porterà a una piaga di attenzione proprio quando il saggio del software sta per riprendere il suo viaggio verso il completamento della missione della sua vita? Ti viene da chiederti per quanto tempo Mosè avrebbe potuto vagare nel deserto se i media di oggi fossero stati in giro.