De Bijbel herschrijven in nullen en enen

Als je over Donald Knuth schrijft, klinkt het natuurlijk schriftuurlijk. Al bijna 40 jaar schrijft de nu gepensioneerde professor aan de Stanford University het evangelie van de informatica, een epos genaamd The Art of Computer Programming. De eerste drie delen vormen al het Goede Boek voor gevorderde softwareliefhebbers, waarvan wereldwijd een miljoen exemplaren in een dozijn talen worden verkocht. Zijn benadering van code doordringt de softwarecultuur.





En zie, Donald Knuth onderbrak zijn roeping gedurende negen jaar en zwierf door de wildernis van computertypografie en creëerde een programma dat het Woord is geworden in digitale typografie voor wetenschappelijke publicaties. Hij noemde zijn software TeX en bood het aan aan alle gelovigen, waarbij hij de poging van één stam (Xerox) om het eigendom van zijn wiskundige formules te laten gelden, verwierp. Wiskunde is van God, verklaarde hij. Maar de God van Knuth staat niet boven trucjes voor de gelovigen. In zijn TeX-gids, The TeXbook, schrijft hij dat het niet altijd de waarheid vertelt, omdat de techniek van opzettelijk liegen het je eigenlijk gemakkelijker zal maken om de ideeën te leren.

De 61-jarige Knuth (ka-NOOTH) is nu vastbesloten om zijn geschriften te voltooien en leidt wat hij noemt een kluizenaarachtig bestaan ​​(met zijn vrouw) in de heuvels rond de universiteit, nadat hij vervroegd met pensioen is gegaan van het lesgeven. Hij heeft zijn persoonlijke e-mailaccount losgekoppeld en een webpagina geplaatst (www-cs-faculty.stanford.edu/~knuth/) om de massa's software op afstand te houden door veelgestelde vragen te beantwoorden, zoals wanneer komt deel 4 uit ?

Ongeveer een keer per maand tijdens het academische jaar komt Knuth van de hoogte naar een collegezaal in de kelder in het Gates Computer Science Building in Stanford om een ​​van zijn Computer Musings-lezingen te geven, meestal over een bepaald aspect van zijn huidige werk aan The Art of Computer Programmeren. Deze lezingen trekken studenten informatica, gastprofessoren, software-ingenieurs van nabijgelegen bedrijven en af ​​en toe een CEO. Op een zwoele dag eerder dit jaar zijn het onderwerp en de luisteraars anders. Ter gelegenheid van de publicatie van de

derde deel van zijn verzamelde papers, Digital Typography, hebben de medewerkers van de Stanford University Libraries een publiek van fans van het gedrukte woord uitgenodigd om Knuth te horen praten over het creëren van het TeX-systeem voor wetenschappelijke en wiskundige publicatie. Gekleed in een zwart T-shirt over een zwart shirt met lange mouwen, zijn kale hoofd glinstert in de bovenlichten, lijkt hij passend monnikachtig voor ongeveer 70 volgelingen en collega's.

Aarzelend, zijn woorden vechtend tegen zijn aangeboren lutherse bescheidenheid, begint hij: Mijn belangrijkste levenswerk en de reden dat ik dit hele project ben begonnen, is het schrijven van een serie boeken genaamd The Art of Computer Programming - waarvoor ik hoop nog 20 jaar te leven en maak het project af dat ik in 1962 begon. Helaas is computerprogrammering in de loop der jaren gegroeid en dus moest ik iets meer schrijven dan ik dacht toen ik het schetste. De gelovigen lachen bewust.

Knuth vertelt over zijn omweg naar digitale typografie in de jaren zeventig. Dit was een tijd van enorme veranderingen in de zetwerkindustrie, toen computersystemen het hete type vervingen dat sinds de tijd van Gutenberg was gebruikt. Computertypografie was minder duur, maar ook minder esthetisch, vooral voor complexe wiskundige notatie. herinnert Knuth zich: Toen de printtechnologie veranderde, werden de belangrijkste commerciële activiteiten het eerst behandeld en kwamen wiskundigen als laatste. Dus onze boeken en tijdschriften begonnen er slecht uit te zien. Ik kon het niet uitstaan ​​om boeken te schrijven die er niet goed uit zouden zien.

Knuth nam het op zich om elke regel code te schrijven voor software die prachtige typografie opleverde. De naam van zijn zetprogramma ontleende hij aan het Griekse woord voor kunst - de letters zijn tau epsilon chi (het rijmt op blecch). Zegt Knuth: Meer dan 90 procent van alle boeken over wiskunde en natuurkunde zijn gezet met TeX en met de bijbehorende software, Metafont, een tool die Knuth heeft ontwikkeld om aangename lettertypen te ontwerpen.

Hij erkent snel de bijdrage van de letterontwerpers, stempelsnijders, typografen, boekhistorici en geleerden die hij bij Stanford verzamelde tijdens het ontwikkelen van TeX. Sommigen zitten in het publiek. Hij vertelt hen: TeX is wat we nu open-systeemsoftware noemen - iedereen over de hele wereld kan het gratis gebruiken. Hierdoor hadden we duizenden mensen over de hele wereld om ons te helpen alle fouten te vinden. Ik denk dat het waarschijnlijk het meest betrouwbare computerprogramma van zijn omvang ooit is.

Iedereen die deze bewering van de beslist niet opschepperige Knuth in twijfel trekt, kan bevestiging vinden bij Guy Steele, een van de eerste gebruikers van TeX en nu een vooraanstaand ingenieur bij Sun Microsystems. TeX, zegt Steele, was een van de eerste grote programma's waarvan de broncode openlijk werd gepubliceerd. Steele zegt dat Knuth's publicatie van de TeX-code in een boek, samen met volledige opmerkingen, ervoor zorgde dat iedereen kon begrijpen hoe het werkt en bugfixes kon bieden. Met topwetenschappers en wiskundigen van de academische wereld als bètatesters, hielp een buitengewoon kwaliteitscontroleteam TeX te perfectioneren. (De TeX-ontwikkelingsinspanning was een model voor de huidige open-source softwarebeweging, die de wereld Linux heeft gegeven - een besturingssysteem dat begint te concurreren met Microsoft Windows.)

Perfectioneerbaarheid is een grote zorg van Knuth. Het enige e-mailadres dat Knuth bijhoudt, verzamelt rapporten van errata van lezers van zijn boeken en biedt $ 2,56 voor elke eerder niet-gemelde fout. (Het bedrag is een inside joke: 256 is gelijk aan 2 tot de 8e macht - het aantal waarden dat een byte kan vertegenwoordigen.) Knuth's beloningscheques behoren tot de meest gewaardeerde trofeeën van het computerdom; weinigen worden daadwerkelijk geïnd.

Hij neemt deze foutenzaak zeer serieus. In de ingang van zijn huis zijn de woorden van de Deense dichter Piet Hein gegraveerd:

De weg naar wijsheid?
Nou, het is duidelijk
en eenvoudig uit te drukken:

err
en vergis je
en nog een keer fout
maar minder
en minder
en minder.

In een variatie op dit thema van perfectioneerbaarheid, is Knuths bijdrage aan de computerwetenschapstheorie op de pagina's van The Art of Computer Programming zijn rigoureuze analyse van algoritmen geweest. Met behulp van methoden in zijn boek kunnen de bewerkingen die worden gebruikt om machine-instructies in vergelijkingen te vertalen, worden getest om te bepalen of ze optimaal zijn. Het verbeteren van een programma wordt dan een kwestie van het vinden van algoritmen met de meest wenselijke eigenschappen. Niet dat theoretische bewijzen de daadwerkelijk draaiende software op een computer kunnen vervangen. In een vaak geciteerde opmerking die hij op zijn webpagina noemt, waarschuwde hij ooit een collega: Pas op voor de bovenstaande code; Ik heb alleen bewezen dat het klopt, niet geprobeerd.

Slechte pauzes

In de Stanford-lezing van Knuth was perfectioneerbaarheid opnieuw een thema. Hij volgde de pagina's in zijn boek over digitale typografie voorbij de inleidende hoofdstukken naar het langste gedeelte van het boek, dat een cruciaal probleem in typografie aanpakt. Hij vestigt de aandacht van zijn luisteraars op een van de belangrijkste technische trucs in het TeX-systeem: de vraag hoe alinea's op te splitsen zodat de regels ongeveer gelijk en goed zijn.

Slechte spatiëring tussen woorden en lelijke keuzes voor regelafbrekingen waren een van de grootste computertypografische blunders die Knuth op zijn TeX-kruistocht lanceerden. Vreemde woordkloven, ladders van koppeltekens en verweesde stukjes tekst waren het resultaat van de rigide algoritmen die werden gebruikt om regeleinden te programmeren zonder rekening te houden met visuele elegantie. De oplossing van Knuth: laat de computer trial-and-error-methoden gebruiken om te testen hoe elke alinea tekst het beste kan worden opgebroken. In plaats van hebzuchtige algoritmen die de meeste woorden op een lijnstandaard in computertypografie voor en na evalueren, evalueert de rekenintensieve methode van TeX-Knuth schoonheid.

Knuth lijkt geboren voor de taak om schoonheid op de gedrukte pagina te promoten via computationele methoden. Ik had vanaf het begin een voorliefde voor boeken, vertelt hij zijn publiek. In de collectie van mijn moeder vonden we het eerste alfabetboek dat ik had. Ik had de letters gepakt en alle schreven geteld. Hij is trots op zijn vroege geletterdheid en vertelde een schrijver dat hij het jongste lid was van de Book Worm Club in de Milwaukee Public Library. Zijn interesse in typografische reproductie kwam ook al vroeg in zijn leven. Een van zijn vroegste herinneringen aan pre-desktop publishing was het helpen van zijn vader, Ervin, met de stencils voor stencils voor het afdrukken van de kerkelijke nieuwsbrief in de kelder. Net als de nieuwsbrief van zijn vader was TeX bedoeld als een zelfgemaakt project, op een beheersbare schaal. De oorspronkelijke bedoeling was dat het voor mij en mijn secretaresse zou zijn, vertelt hij aan TR in een interview in de studeerkamer van zijn huis op de tweede verdieping. Achterover leunend in de zwarte fauteuil erkent Knuth dat de lange reis naar TeX bedoeld was als een kort uitstapje: ik zou het over een jaar afmaken.

De gebeurtenissen namen een andere wending. In 1978 vertaalde Sun's Steele, toen een MIT-student die Stanford bezocht, TeX voor gebruik op de mainframecomputer van MIT. Plotseling, herinnert Knuth zich, had ik 10 gebruikers, toen 100. Elke keer doorliep het verschillende foutniveaus. Tussen de 1.000ste en 10.000ste gebruiker verscheurde ik de code en begon opnieuw. Knuth zegt dat hij zich toen realiseerde dat TeX niet alleen een uitweiding was, het was zelf een onderdeel van de visie. Ik zag dat dit een behoefte in de wereld vervulde en dus kan ik het maar beter goed doen.

Een belangrijk keerpunt in de verspreiding van TeX was een lezing die Knuth gaf voor de American Mathematical Society (AMS). Barbara Beeton, een stafspecialist in compositiesystemen voor AMS en een oude ambtenaar van de in Portland, Oregon gevestigde TeX User's Group, herinnert zich de gelegenheid: hij werd uitgenodigd om de Josiah Willard Gibbs-lezing te geven. Albert Einstein en John von Neumann behoorden tot de vorige sprekers. Knuth vertelde voor het eerst in het openbaar over zijn nieuwe zetsysteem. Knuth preekte voor het koor; de verzamelde wiskundigen wisten hoe de drukkwaliteit was afgenomen. Voegt Beeton toe: TeX was het eerste compositiesysteem dat bedoeld was om te worden gebruikt door de auteur van een artikel of boek, in tegenstelling tot een uitgeverij. Kort daarna werd AMS de oorspronkelijke institutionele gebruiker van TeX en gebruikte het Knuth-systeem om al zijn documenten en tijdschriften te publiceren.

Toen het nieuws zich verspreidde en meer gebruikers gebruik maakten van zijn gratis software (geschreven voor een academische mainframecomputer maar al snel beschikbaar voor pc's), merkte Knuth dat hij de geschiedenis van het printen bestudeerde om oplossingen te vinden voor beperkte toepassingen. Vaak als niet, bleek zijn onderzoek vruchteloos en zou hij met zijn eigen antwoord op de proppen moeten komen. Voor ceremoniële uitnodigingen creëerde hij nieuwe lettertypen; voor muzikaal zetwerk loste hij moeilijke uitlijningsproblemen op. Ik had zoveel gebruikers, herinnert hij zich. Van huwelijksuitnodigingen en programma's voor het plaatselijke symfonieorkest tot computerprogramma's.

Bijna negen jaar lang hield Knuths uitstapje naar typografie hem fulltime bezig, waardoor hij niet meer werkte aan het programmeerboek dat hij als zijn ware roeping beschouwde. Ik moest aan het eindspel denken, zegt hij. Hoe kon ik op een verantwoorde manier TeX afmaken en zeggen: dit gaat niet meer veranderen? Ik moest een vierjarige strategie uitwerken om mezelf te bevrijden en terug te keren naar The Art of Computer Programming.

De oplossing van Knuth: met de release van TeX versie 3.0 in 1990 verklaarde hij zijn werk voltooid. Discipelen zullen het systeem moeten onderhouden. Knuth zegt dat hij zijn werk zal beperken tot het repareren van de zeldzame bugs die onder zijn aandacht zijn gebracht; bij elke fix wijst hij nog een cijfer toe aan het versienummer zodat het neigt naar pi (de huidige versie is 3.14159).

Een gevolg van het besluit van Knuth om te stoppen met het maken van grote wijzigingen in TeX, is dat het TeX-bestandsformaat ongewijzigd is gebleven. Het is de enige software waarmee je het bestand voor je paper uit 1985 kunt gebruiken en het niet hoeft te converteren om het vandaag op dezelfde manier af te drukken, merkt David Fuchs op, een senior onderzoeker bij Liberate Technologies (voorheen Network Computer Inc.), die een afgestudeerde student aan Stanford tijdens de ontwikkeling van TeX. Fuchs schat dat er wereldwijd 1 miljoen TeX-gebruikers zijn; veel gebruiken commerciële pakketten voor speciale doeleinden die rond de TeX-kernel zijn gebouwd, zoals LATeX (een opdrachtgeoriënteerde macrotaal) en TeXDoc (geoptimaliseerd voor softwaredocumentatie).

Aan de andere kant is TeX beperkt in zijn aantrekkingskracht omdat het geen WYSIWYG is, geeft Fuchs toe. . In plaats van realtime interactiviteit op het scherm te bieden, vereist TeX een opmaaktaal die in een document wordt getypt en door de computer wordt geïnterpreteerd; je ziet pas wat je krijgt als het gedrukt is. Ondanks de niet-intuïtieve gebruikersinterface heeft TeX een toegewijde kern van productieprofessionals ontwikkeld die geen vervanging accepteren. Waarom zou iemand iets anders willen? vraagt ​​Paul Anagnostopolis, een in Carlisle, Massachusetts gevestigde uitgeversadviseur en auteur van op TeX gebaseerde software voor het samenstellen van boeken. Veel mensen geven niets om WYSIWYG.

Opus in uitvoering

Negen jaar besteden in plaats van één jaar om tex te maken is dezelfde soort epische misrekening die Knuth naar de monumentale schaal van De kunst van computerprogrammeren . Na het behalen van zijn bachelordiploma aan het Case Institute (nu Case Western Reserve), studeerde hij in 1962 voor zijn doctoraat en gaf hij les aan het California Institute of Technology toen hij door de uitgever van leerboeken Addison-Wesley werd aangenomen om een ​​boekdeel te schrijven over computercompilers. (Compilers zijn speciale programma's die de door programmeurs ingetypte tekst omzetten in instructies in de binaire taal van een computer.)

In zijn met boeken omzoomde studie vertelt Knuth de geschiedenis van het project. Van 1962 tot 1966 schreef hij het eerste ontwerp in potlood. Het manuscript was 3.000 pagina's lang. Ik dacht dat het een deel was van misschien 600 pagina's. Ik dacht dat typen in boeken kleiner was dan mijn handschrift. Toen typte ik hoofdstuk één en op zichzelf was het 450 pagina's. Ik stuurde het naar de uitgever en ze zeiden: Don, heb je enig idee hoe lang je boek zal zijn?

Geconfronteerd met zo'n onhandelbaar manuscript, zouden veel uitgevers het project hebben gedumpt. In plaats daarvan werkte Addison-Wesley een publicatieschema uit voor wat uiteindelijk zou kunnen uitstrekken tot zeven delen. Deel 4 zou klaar moeten zijn in 2004 en deel 5 in 2009. Dan kan Knuth deel 6 en 7 afmaken - als wat hij te zeggen heeft over zijn gekozen onderwerpen nog steeds leerzaam is. Peter Gordon, uitgeverij partner bij Addison-Wesley en redacteur van Donald Knuth voor de laatste 20 jaar, legt uit dat het succes van de eerste drie delen van The Art of Computer Programming de uitgever in staat heeft gesteld om zijn hele computerwetenschappelijke lijn rond het werk van Knuth te bouwen. Don heeft zijn eigen levensplan en zijn eigen gevoel voor timing, merkt hij op. Hij is zo'n creatieve en begaafde auteur, het beste wat een redacteur kan doen is uit zijn buurt blijven en hem zijn plan laten volgen.

Het helpt dat het boek lof blijft krijgen van andere zieners in de digitale wereld. In zijn gesyndiceerde krantenkolom reageerde Bill Gates eens op een lezer: Als je denkt dat je een heel goede programmeur bent, of als je je kennis wilt uitdagen, lees dan The Art of Computer Programming, door Donald Knuth. Gates beschreef zijn eigen ontmoeting met het boek: Het kostte me ongelooflijke discipline en enkele maanden om het te lezen. Ik bestudeerde 20 pagina's, legde het een week weg en kwam terug voor nog eens 20 pagina's. Als iemand zo brutaal is dat hij denkt alles te weten, zal Knuth hem helpen begrijpen dat de wereld diep en gecompliceerd is. Als je het hele verhaal kunt lezen, stuur me dan een cv.

Wat Knuth in zijn epische project steunt, is zijn fundamentele liefde voor het onderwerp. Mensen die werken aan de analyse van algoritmen hebben dubbel geluk, zegt hij, Yoda-achtig klinkend. Je bent blij als je een probleem oplost en weer als mensen lachen om je oplossing in hun software.

Voordat hij kan rusten in het beloofde land, moet Knuth nog een laatste berg onder ogen zien. Hij moet de gegeneraliseerde computer die in zijn boek wordt gebruikt voor programmeervoorbeelden en oefeningen, herontwerpen van een 50 jaar oude Von Neumann-achtige machine met inefficiënte commando's tot een moderner RISC-systeem (Reduced Instruction Set Computer) dat een snellere werking mogelijk maakt. (Intel-processors in de meeste pc's zijn van het oudere type; PowerPC-chips in recente Macintosh-modellen zijn RISC.) Ik probeer het zo te ontwerpen dat het zijn tijd 10 jaar vooruit is, zegt Knuth. Ik heb alle machines die we nu hebben bestudeerd en geprobeerd om hun mooiste eigenschappen te nemen en ze allemaal samen te stellen. Deze super RISC-machine, die hij MMIX noemt, is in wezen een leerconcept. Maar hij zegt dat hij het graag zou zien gebouwd. Ik besteed veel tijd aan het documenteren ervan, zodat iemand het kan bouwen. Het ontwerp komt in het publieke domein. In het midden van zijn Computer Musings-reeks inleidende lezingen over MMIX, is Knuth slechts enkele maanden verwijderd van het voltooien van deze fase van zijn werk.

En toen? Ik begin op topsnelheid op Volume 4 op te laden. Ik kan ongeveer één publiceerbare pagina per dag schrijven, zegt hij. Over een ander boek schreef hij ooit met een snelheid van twee pagina's per dag, maar dat was teveel. Ik kon geen goede echtgenoot en goede vader zijn en dat was niet goed. Dus ik beloof gewoon 250 pagina's per jaar voor Volume 4. Voor liefhebbers van Knuth's softwarebijbel, inclusief Bill Gates, kunnen die pagina's niet snel genoeg komen.

Wat betreft Knuth's onwankelbare vertrouwen in het nastreven van zijn langetermijndoel, lijkt de biologie aan zijn kant te staan. Zijn moeder is 87, verkeert in goede gezondheid en werkt nog steeds, zegt hij, in het beheer van vastgoedkantoren. Zijn vader, die hem op weg had geholpen naar computertypografie, stierf op 62-jarige leeftijd. Toch concludeert deze digitale patriarch: mijn vaders vader werd 97, dus ik hoop hem op te volgen.

Voordat hij de hoge leeftijd bereikt die nodig is om al zijn publicatieplannen te voltooien, moet Knuth misschien de verleidingen onder ogen zien die met roem gepaard gaan. Een tijdschriftadvertentie van twee pagina's voor fatbrain.com verkondigt, boven een edgy collage: de enige boekhandel ter wereld waar Donald Knuth John Grisham een ​​miljard op één overtreft. Dit is misschien wel de eerste commerciële erkenning van Knuths iconische status onder de digerati. Zal zo'n erkenning leiden tot een plaag van aandacht net wanneer de wijze van software op het punt staat zijn reis naar de voltooiing van zijn levensmissie te hervatten? Je vraagt ​​je af hoe lang Mozes nog door de woestijn zou hebben gezworven als de media van vandaag er waren geweest.

zich verstoppen