211service.com
Att skriva om Bibeln i 0:or och 1:or
När du skriver om Donald Knuth är det naturligt att låta bibeln. I nästan 40 år har den nu pensionerade professorn vid Stanford University skrivit evangeliet om datavetenskap, ett epos som heter The Art of Computer Programming. De tre första volymerna utgör redan den goda boken för avancerade mjukvaruälskare, som säljer en miljon exemplar runt om i världen på ett dussin språk. Hans förhållningssätt till kod genomsyrar mjukvarukulturen.
Och se, när han avbröt sin kallelse i nio år, vandrade Donald Knuth i datortypografins vildmark och skapade ett program som har blivit ordet i digital sättning för vetenskaplig publicering. Han kallade sin programvara TeX och erbjöd den till alla troende, och avvisade försöket från en stam (Xerox) att hävda äganderätten över dess matematiska formler. Matematik tillhör Gud, förklarade han. Men Knuths Gud är inte över tricks på de troende. I sin TeX-guide, The TeXbook, skriver han att den inte alltid säger sanningen eftersom tekniken att medvetet ljuga faktiskt gör det lättare för dig att lära dig idéerna.
Den 61-årige Knuth (ka-NOOTH) som nu är inställd på att slutföra sina skrifter leder vad han kallar en eremitliknande tillvaro (med sin fru) i kullarna som omger universitetet, efter att ha tagit förtidspensionering från undervisningen. Han har kopplat ur sitt personliga e-postkonto och lagt upp en webbsida (www-cs-faculty.stanford.edu/~knuth/) för att hålla mjukvaran på avstånd genom att svara på vanliga frågor som, När kommer volym 4 ut ?
Ungefär en gång i månaden under läsåret kommer Knuth ner från höjden till ett föreläsningsrum i källaren i Gates Computer Science Building i Stanford för att hålla en av sina Computer Musings-föreläsningar, vanligtvis om någon aspekt av hans nuvarande arbete med The Art of Computer Programmering. Dessa föredrag drar datavetenskapsstudenter, gästprofessorer, mjukvaruingenjörer från närliggande företag och en och annan VD. En ljummen dag tidigare i år är ämnet och lyssnarna olika. För att fira publiceringen av
tredje volymen av hans samlade artiklar, Digital Typography, har medarbetare till Stanford University Libraries bjudit in en publik av fans av det tryckta ordet för att höra Knuth prata om att skapa TeX-systemet för vetenskaplig och matematisk publicering. Iförd en svart t-shirt över en långärmad svart skjorta, hans kala paté glittrar i taklamporna, framstår han som lämpligt munkig inför ett 70-tal akolyter och kollegor.
Tvekande, med sina ord som kämpar mot sin medfödda lutherska blygsamhet, börjar han: Mitt huvudsakliga livsverk och anledningen till att jag startade hela det här projektet är att skriva en serie böcker som heter Konsten att programmera datorer – som jag hoppas kunna leva i ytterligare 20 år och avsluta det projekt jag påbörjade 1962. Tyvärr har datorprogrammering vuxit med åren och därför har jag fått skriva lite mer än jag trodde när jag skissade upp det. De trogna skrattar medvetet.
Knuth berättar om sin omväg till digital typografi under 1970-talet. Det här var en tid av enorma förändringar inom sättningsindustrin, eftersom datorsystem ersatte den heta typ som hade använts sedan Gutenbergs dag. Datortypografi var billigare, men också mindre estetiskt tilltalande - särskilt för komplex matematisk notation. Påminner om Knuth: När trycktekniken förändrades behandlades de viktigare kommersiella aktiviteterna först och matematikerna kom sist. Så våra böcker och tidskrifter började se väldigt dåliga ut. Jag kunde inte stå ut med att skriva böcker som inte skulle se bra ut.
Knuth tog på sig att skriva varje rad kod för programvara som gav vacker typografi. Han drog namnet på sitt sättningsprogram från det grekiska ordet för konst - bokstäverna är tau epsilon chi (det rimmar på blecch). Säger Knuth: Långt över 90 procent av alla böcker om matematik och fysik är typsatta med TeX och med dess kompletterande programvara Metafont, ett verktyg Knuth utvecklat för att designa tilltalande typsnitt.
Han är snabb med att erkänna bidraget från typdesigners, stansskärare, typografer, bokhistoriker och forskare som han samlade på Stanford när han utvecklade TeX. Några finns i publiken. Han säger till dem: TeX är vad vi nu kallar mjukvara för öppna system - vem som helst i hela världen kan använda den gratis. På grund av detta hade vi tusentals människor runt om i världen som hjälpte oss att hitta alla misstag. Jag tror att det förmodligen är det mest pålitliga datorprogrammet i sin storlek någonsin.
Den som tvivlar på detta påstående från den avgjort skrytsamma Knuth kan få bekräftelse från Guy Steele, en av TeX:s första användare och nu en framstående ingenjör på Sun Microsystems. TeX, säger Steele, var ett av de första stora programmen vars källkod publicerades öppet. Steele säger att Knuths publicering av TeX-koden i en bok, tillsammans med fullständiga kommentarer, gjorde det så att vem som helst kunde förstå hur det fungerar och erbjuda buggfixar. Med akademins främsta vetenskapsmän och matematiker som beta-testare, hjälpte ett extraordinärt kvalitetskontrollteam till att perfekta TeX. (TeX-utvecklingssatsningen var en modell för dagens mjukvarurörelse med öppen källkod, som har gett världen Linux-ett operativsystem som börjar konkurrera med Microsoft Windows.)
Perfektabilitet är en av Knuths största angelägenheter. Den enda e-postadress Knuth har samlar rapporter om fel från läsare av hans böcker, och erbjuder $2,56 för varje tidigare orapporterat fel. (Beloppet är ett inre skämt: 256 är lika med 2 till 8:e potensen - antalet värden som en byte kan representera.) Knuths belöningscheckar är bland datorvärldens mest prisade troféer; få är faktiskt inkasserade.
Han tar denna felaffär på största allvar. Ingraverade i entrén till hans hem är den danske poeten Piet Heins ord:
Vägen till visdom?
Tja det är vanligt
och enkelt att uttrycka:
Fela
och fela
och göra fel igen
men mindre
och mindre
och mindre.
I en variant av detta tema om perfektabilitet har Knuths bidrag till datavetenskapsteori på sidorna av The Art of Computer Programming varit hans rigorösa analys av algoritmer. Med hjälp av metoder i hans bok kan de operationer som används för att översätta maskininstruktioner till ekvationer testas för att avgöra om de är optimala. Att förbättra ett program blir då en fråga om att hitta algoritmer med de mest önskvärda attributen. Inte för att teoretiska bevis kan ersätta en programvara som faktiskt körs på en dator. I en ofta citerad kommentar som han nämner på sin webbsida varnade han en gång en kollega: Akta dig för ovanstående kod; Jag har bara bevisat att det stämmer, inte provat det.
Dåliga raster
I Knuths Stanford-föredrag var perfektabilitet återigen ett tema. Han följde sidorna i sin volym om digital typografi bortom dess inledande kapitel till det längsta avsnittet i boken, som angriper ett avgörande problem inom typografi. Han uppmärksammar sina lyssnare på ett av de viktigaste tekniska knepen i TeX-systemet: frågan om hur man bryter upp stycken så att raderna blir ungefär lika och bra.
Dåligt avstånd mellan ord och fula val för radbrytningar hade varit bland de stora datortypografiska felen som startade Knuth på hans TeX-korståg. Udda ordavgrunder, stegar av bindestreck och föräldralösa textbitar resulterade från de stela algoritmer som används för att programmera radbrytningar utan hänsyn till visuell elegans. Knuths lösning: låt datorn använda trial-and-error-metoder för att testa hur varje textstycke bäst kan delas upp. Istället för giriga algoritmer som packar in flest ord på en linjestandard i datortypografi före och efter TeX-Knuths beräkningsintensiva metod utvärderar skönhet.
Knuth verkar född till uppgiften att främja skönhet på den tryckta sidan via beräkningsmetoder. Jag hade en kärlek till böcker från början, säger han till sin publik. I min mammas samling hittade vi den första alfabetsboken jag hade. Jag hade tagit bokstäverna och räknat alla seriffer. Han är stolt över sin tidiga läskunnighet och berättar för en författare att han var den yngsta medlemmen i Book Worm Club på Milwaukee Public Library. Hans intresse för typografisk reproduktion kom också tidigt i livet. Ett av hans tidigaste minnen från pre-desktop publicering var att han hjälpte sin far, Ervin, med mimeografiska schabloner för att skriva ut kyrkans nyhetsbrev i källaren. Liksom sin fars nyhetsbrev var TeX tänkt att vara ett hembryggningsprojekt, i en hanterbar skala. Den ursprungliga avsikten var att det skulle vara för mig och min sekreterare, säger han till TR i en intervju i sitt hems arbetsrum på andra våningen. Lutad tillbaka i den svarta fåtöljen erkänner Knuth att den långa resan in i TeX var tänkt att vara en snabb sidoresa: jag skulle göra klart det om ett år.
Händelserna tog en annan vändning. 1978 besökte Sun's Steele, då en MIT-student, Stanford-översatt TeX för användning på MIT:s stordator. Plötsligt, minns Knuth, hade jag 10 användare, sedan 100. Varje gång gick det igenom olika nivåer av fel. Mellan den 1 000:e och 10 000:e användaren rev jag sönder koden och började om. Knuth säger att han insåg då att TeX inte bara var en utvikning, det var i sig en del av visionen. Jag såg att detta uppfyllde ett behov i världen och så det är bättre att göra det rätt.
En viktig vändpunkt i spridningen av TeX var en föreläsning som Knuth höll inför American Mathematical Society (AMS). Barbara Beeton, en personalspecialist på kompositionssystem för AMS och en mångårig tjänsteman från den Portland, Ore.-baserade TeX User's Group, minns tillfället: Han var inbjuden att hålla Josiah Willard Gibbs föreläsning. Albert Einstein och John von Neumann hade varit bland de föregående talarna. Knuth berättade om sitt nya sättningssystem för första gången offentligt. Knuth predikade för kören; de församlade matematikerna var bekanta med hur tryckkvaliteten hade sjunkit. Tillägger Beeton: TeX var det första kompositionssystemet som var tänkt att användas av författaren till en artikel eller bok i motsats till ett förlag. Kort därefter blev AMS den ursprungliga institutionella användaren av TeX och använde Knuths system för att publicera alla dess dokument och tidskrifter.
Allt eftersom ryktet spreds och fler användare utnyttjade hans fria mjukvara (skriven för en akademisk stordator men snart tillgänglig för PC-datorer), fann Knuth sig själv att studera utskriftens historia för att hitta lösningar för smala applikationer. Ofta visade sig hans forskning vara fruktlös och han måste komma med ett eget svar. För ceremoniella inbjudningar skapade han nya typsnitt; för musikalisk sättning löste han svåra uppriktningsproblem. Jag hade så många användare, minns han. Från bröllopsinbjudningar och program för den lokala symfoniorkestern till datorprogram.
I nästan nio år sysselsatte Knuths intåg i typografi honom på heltid och drog honom bort från arbetet med programmeringsboken som han ansåg var hans sanna kallelse. Jag var tvungen att tänka på slutspelet, säger han. Hur kunde jag på ett ansvarsfullt sätt avsluta TeX och säga: Det här kommer inte att förändras längre? Jag var tvungen att utarbeta en fyraårig strategi för att frigöra mig och återvända till The Art of Computer Programming.
Knuths lösning: med lanseringen av TeX version 3.0 1990 förklarade han sitt arbete färdigt. Lärjungar måste underhålla systemet. Knuth säger att han kommer att begränsa sitt arbete till att reparera de sällsynta insekterna som han uppmärksammats på; med varje fix tilldelar han versionsnumret en siffra till så att det tenderar att pi (den nuvarande versionen är 3.14159).
Ett resultat av Knuths beslut att sluta göra stora förändringar i TeX är att TeX-filformatet har förblivit oförändrat. Det är den enda programvaran där du kan ta filen till ditt papper från 1985 och inte behöva konvertera den för att skrivas ut på samma sätt idag, konstaterar David Fuchs, seniorforskare vid Liberate Technologies (tidigare Network Computer Inc.), som var en student vid Stanford under utvecklingen av TeX. Fuchs uppskattar att det finns 1 miljon TeX-användare världen över; många använder kommersiella paket för speciella ändamål byggda kring TeX-kärnan, såsom LATeX (ett kommandoorienterat makrospråk) och TeXDoc (optimerat för programvarudokumentation).
På nackdelen är TeX begränsad i sin överklagande eftersom det inte är WYSIWYG, medger Fuchs, att använda förkortningen för vad du ser är vad du får - standardtermen som beskriver textbehandlingsprogram som visar formatering på skärmen som den kommer att visas på den utskrivna sidan . Istället för att erbjuda interaktivitet på skärmen i realtid, kräver TeX ett märkningsspråk som skrivs in i ett dokument och tolkas av datorn; du ser vad du får först när det är i tryck. Trots sitt ointuitiva användargränssnitt har TeX utvecklat en dedikerad kärna av produktionsproffs som inte accepterar någon ersättning. Varför skulle någon vilja något annat? frågar Paul Anagnostopolis, en Carlisle, Massachusetts-baserad förlagskonsult och författare till TeX-baserad programvara för bokkomposition. Många människor bryr sig inte om WYSIWYG.
Opus pågår
Att spendera nio år i stället för ett för att skapa tex är samma sorts episka missräkning som ledde Knuth till den monumentala skalan av Konsten att programmera . Efter att ha tagit sin grundexamen vid Case Institute (nu Case Western Reserve), studerade han för sin doktorsexamen och undervisade vid California Institute of Technology 1962 när han fick kontrakt med läroboksförlaget Addison-Wesley för att skriva en volym om datorkompilatorer. (Kompilatorer är specialprogram som konverterar texten som programmerare skriver in till instruktioner på en dators binära språk.)
I sin bokkantade studie berättar Knuth om projektets historia. Från 1962 till 1966 skrev han det första utkastet med blyerts. Manuskriptet var 3 000 sidor långt. Jag trodde att det var en volym på kanske 600 sidor. Jag tänkte bara att skriva i böcker var mindre än min handstil. Sedan skrev jag upp kapitel ett och i sig var det 450 sidor. Jag skickade den till förlaget och de sa: Don, har du någon aning om hur lång din bok kommer att vara?
Inför ett så otympligt manuskript skulle många förlag ha dumpat projektet. Istället utarbetade Addison-Wesley ett publiceringsschema för vad som så småningom kunde sträcka sig till sju volymer. Volym 4 är tänkt att vara klar 2004 och volym 5 2009. Då kan Knuth avsluta volymerna 6 och 7 - om det han har att säga om sina valda ämnen fortfarande är lärorikt. Peter Gordon, förlagspartner på Addison-Wesley och Donald Knuths redaktör under de senaste 20 åren, förklarar att framgången för de tre första volymerna av The Art of Computer Programming har gjort det möjligt för förlaget att bygga hela sin datavetenskapliga linje kring Knuths arbete. Don har sin egen livsplan och sin egen känsla för timing, konstaterar han. Han är en så kreativ och begåvad författare, det bästa någon redaktör kan göra är att hålla sig ur vägen och låta honom följa sin plan.
Det hjälper att boken fortsätter att dra beröm från andra seare i den digitala sfären. I sin syndikerade tidningskolumn svarade Bill Gates en gång till en läsare: Om du tror att du är en riktigt bra programmerare, eller om du vill utmana dina kunskaper, läs The Art of Computer Programming, av Donald Knuth. Gates beskrev sitt eget möte med boken: Det tog otrolig disciplin, och flera månader, för mig att läsa den. Jag studerade 20 sidor, lade undan den i en vecka och kom tillbaka för ytterligare 20 sidor. Om någon är så fräck att de tror att de vet allt, kommer Knuth att hjälpa dem att förstå att världen är djup och komplicerad. Om du kan läsa hela, skicka mig ett CV.
Det som stöttar Knuth genom hans episka projekt är hans grundläggande kärlek till ämnet. Människor som arbetar med analys av algoritmer har dubbel lycka, säger han och låter som Yoda. Du är glad när du löser ett problem och igen när folk ler med din lösning i sin programvara.
Innan han kan vila i det förlovade landet står Knuth inför ett sista berg. Han måste omforma den generaliserade dator som används i sin bok för programmeringsexempel och övningar från en 50-årig maskin av von Neumann-stil med ineffektiva kommandon till ett modernare RISC-system (reduced instruction set computer) som tillåter snabbare drift. (Intel-processorer i de flesta datorer är av den äldre sorten; PowerPC-chips i de senaste Macintosh-modellerna är RISC.) Jag försöker designa den så att den är 10 år före sin tid, säger Knuth. Jag har studerat alla maskiner vi har nu och försökt ta deras snyggaste funktioner och sätta ihop dem alla. Denna super RISC-maskin, som han kallar MMIX, är i huvudsak ett undervisningskoncept. Men han säger att han skulle älska att se det byggt. Jag lägger ner mycket tid på att dokumentera det så att någon kan bygga det. Designen kommer att vara allmän egendom. Mitt i sin Computer Musings-serie av inledande föredrag om MMIX är Knuth bara månader från att slutföra denna fas av sitt arbete.
Och då? Jag börjar ladda iväg på Volym 4 i toppfart. Jag kan skriva ungefär en publicerbar sida om dagen, säger han. På en annan bok skrev han en gång i en takt av två sidor om dagen, men det var för mycket. Jag kunde inte vara en bra man och en bra far och det var inte bra. Så jag lovar bara 250 sidor om året för volym 4. För anhängare av Knuths mjukvarubibel, inklusive Bill Gates, kan dessa sidor inte komma snart nog.
När det gäller Knuths orubbliga självförtroende när det gäller att fullfölja sitt långsiktiga mål, verkar biologin vara på hans sida. Hans mamma är 87, vid god hälsa och jobbar fortfarande, säger han, inom fastighetskontoret. Hans far, som startade honom på vägen till datortypografi, dog vid 62. Ändå drar den här digitala patriarken slutsatsen: Min fars far levde för att vara 97, så jag hoppas kunna ta efter honom.
Innan han når den höga ålder som krävs för att slutföra alla sina publiceringsplaner, kan Knuth behöva möta frestelserna som kommer med berömmelse. En tvåsidig tidskriftsannons för fatbrain.com proklamerar, över ett pirrigt collage: Presenterar den enda bokhandeln på jorden där Donald Knuth säljer mer än John Grisham en miljard till en. Detta kan vara det första kommersiella erkännandet av Knuths ikoniska status bland digerati. Kommer ett sådant erkännande att leda till en plåga av uppmärksamhet just när mjukvarans visdom är på väg att återuppta sin resa mot fullbordandet av sitt livsuppdrag? Det får dig att undra hur mycket längre Moses kunde ha vandrat i öknen om dagens media funnits.