Przepisywanie Biblii w zerach i jedynkach

Kiedy piszesz o Donaldzie Knuthu, naturalne jest, że brzmi biblijnie. Od prawie 40 lat emerytowany profesor Uniwersytetu Stanforda pisze ewangelię informatyki, epopeję zatytułowaną Sztuka programowania komputerowego. Pierwsze trzy tomy już stanowią Dobrą Księgę dla wielbicieli zaawansowanego oprogramowania, sprzedając się w milionach egzemplarzy na całym świecie w kilkunastu językach. Jego podejście do kodu przenika kulturę oprogramowania.





I oto, przerywając swoje powołanie na dziewięć lat, Donald Knuth wędrował po bezdrożach komputerowej typografii, tworząc program, który stał się Słowem w cyfrowym składaniu publikacji naukowych. Nazwał swój program TeX i zaoferował go wszystkim wierzącym, odrzucając próby jednego plemienia (Xerox) przejęcia własności jego matematycznych wzorów. Matematyka należy do Boga, oświadczył. Ale Bóg Knutha nie jest ponad sztuczkami na wiernych. W swoim przewodniku po TeX, The TeXbook, pisze, że nie zawsze mówi on prawdę, ponieważ technika celowego kłamstwa w rzeczywistości ułatwi ci przyswojenie idei.

Teraz mając zamiar ukończyć swoje pisma, 61-letni Knuth (ka-NOOTH) prowadzi coś, co nazywa pustelnikiem (z żoną) na wzgórzach otaczających uniwersytet, po przejściu na wcześniejszą emeryturę z nauczania. Odłączył swoje osobiste konto e-mail i zamieścił stronę internetową (www-cs-faculty.stanford.edu/~knuth/), aby powstrzymać mnogość oprogramowania, odpowiadając na często zadawane pytania, takie jak „Kiedy wyjdzie tom 4” ?

Mniej więcej raz w miesiącu w ciągu roku akademickiego Knuth schodzi z wysokości do sali wykładowej w piwnicy Gates Computer Science Building w Stanford, aby wygłosić jeden ze swoich wykładów Computer Musings, zwykle na temat niektórych aspektów jego obecnej pracy nad The Art of Computer Programowanie. Te prelekcje przyciągają studentów informatyki, profesorów wizytujących, inżynierów oprogramowania z pobliskich firm i od czasu do czasu prezesa. W pogodny dzień na początku tego roku temat i słuchacze są inni. Aby uczcić publikację

Trzeci tom jego zebranych artykułów, Digital Typography, współpracownicy Bibliotek Uniwersytetu Stanforda zaprosili publiczność fanów słowa drukowanego, aby posłuchali, jak Knuth opowiada o stworzeniu systemu TeX do publikacji naukowych i matematycznych. Ubrany w czarną koszulkę i czarną koszulę z długimi rękawami, jego łysina błyszcząca w świetle górnych świateł, wydaje się odpowiednio mnichem przed około 70 akolitami i kolegami.

Z wahaniem, swoimi słowami walczącymi z wrodzoną luterańską skromnością, zaczyna: Moim głównym dziełem życiowym i powodem, dla którego rozpocząłem cały ten projekt, jest napisanie serii książek zatytułowanej Sztuka programowania komputerowego, dla której mam nadzieję żyć jeszcze 20 lat i dokończyć projekt, który rozpocząłem w 1962 roku. Niestety, programowanie komputerów rozrosło się z biegiem lat, więc musiałem napisać trochę więcej, niż myślałem, kiedy to szkicowałem. Wierni śmieją się porozumiewawczo.

Knuth opowiada o swoim objeździe typografii cyfrowej w latach siedemdziesiątych. Był to czas ogromnych zmian w branży składu, ponieważ systemy komputerowe zastąpiły gorące czcionki, które były używane od czasów Gutenberga. Typografia komputerowa była tańsza, ale też mniej przyjemna pod względem estetycznym — zwłaszcza w przypadku złożonej notacji matematycznej. Wspomina Knuth: Wraz ze zmianą technologii druku, ważniejsze działania komercyjne były traktowane jako pierwsze, a matematycy byli na końcu. Więc nasze książki i czasopisma zaczęły wyglądać bardzo źle. Nie mogłem znieść pisania książek, które nie miały dobrze wyglądać.

Knuth wziął na siebie napisanie każdej linijki kodu dla oprogramowania, które dałoby piękną typografię. Nazwę swojego programu składu zaczerpnął z greckiego słowa oznaczającego sztukę – litery to tau epsilon chi (rymy z blecch). Mówi Knuth: Znacznie ponad 90 procent wszystkich książek o matematyce i fizyce jest składanych w TeX i towarzyszącym mu oprogramowaniu Metafont, narzędziu opracowanym przez firmę Knuth do projektowania przyjemnych czcionek.

Szybko docenia wkład projektantów krojów pisma, wykrawaczy, typografów, historyków książek i naukowców, których zebrał w Stanford w opracowywaniu TeX-a. Niektórzy są na widowni. Mówi im: TeX jest tym, co teraz nazywamy oprogramowaniem systemu otwartego – każdy na całym świecie może z niego korzystać bezpłatnie. Z tego powodu tysiące ludzi na całym świecie pomogło nam znaleźć wszystkie błędy. Myślę, że jest to prawdopodobnie najbardziej niezawodny program komputerowy tej wielkości w historii.

Każdy, kto wątpi w to twierdzenie zdecydowanie niepochlebnego Knutha, może znaleźć potwierdzenie od Guy Steele, jednego z pierwszych użytkowników TeX-a, a teraz wybitnego inżyniera w Sun Microsystems. TeX, mówi Steele, był jednym z pierwszych dużych programów, których kod źródłowy opublikowano otwarcie. Steele mówi, że opublikowanie przez Knutha kodu TeX w książce, wraz z pełnymi komentarzami, sprawiło, że każdy mógł zrozumieć, jak to działa i zaoferować poprawki błędów. Z najlepszymi naukowcami i matematykami akademickimi jako beta-testerami, niezwykły zespół kontroli jakości pomógł udoskonalić TeX. (Wysiłek rozwojowy TeXa był modelem dla dzisiejszego ruchu oprogramowania open source, który dał światu Linux-system operacyjny, który zaczyna konkurować z Microsoft Windows.)

Perfekcyjność jest głównym zajęciem Knutha. Jedyny adres e-mail, jakim dysponuje Knuth, zbiera raporty o erratach od czytelników jego książek, oferując 2,56 dolara za każdy wcześniej niezgłoszony błąd. (Kwota ta jest wewnętrznym żartem: 256 równa się 2 do ósmej potęgi – liczba wartości, które może reprezentować bajt.) Nagrody Knutha są jednymi z najbardziej cenionych trofeów komputeryzacji; niewiele jest faktycznie spieniężonych.

Bardzo poważnie traktuje ten błąd. W przedpokoju jego domu wyryte są słowa duńskiego poety Pieta Heina:

Droga do mądrości?
Cóż, to proste
i proste do wyrażenia:

Błądzić
i błąd
i znowu błądzisz
ale mniej
i mniej
i mniej.

W wariacji na temat doskonałości, wkład Knutha w teorię informatyki na łamach The Art of Computer Programming polegał na jego rygorystycznej analizie algorytmów. Korzystając z metod przedstawionych w jego książce, operacje używane do tłumaczenia instrukcji maszynowych na równania mogą być testowane w celu określenia, czy są one optymalne. Ulepszanie programu staje się wtedy kwestią znalezienia algorytmów o najbardziej pożądanych atrybutach. Nie chodzi o to, że teoretyczne dowody mogą zastąpić faktycznie działające oprogramowanie na komputerze. W często cytowanej uwadze, którą wspomina na swojej stronie internetowej, ostrzegł kiedyś kolegę: Strzeż się powyższego kodu; Ja tylko udowodniłem że to prawda, nie próbowałem.

Złe przerwy

W przemówieniu Knutha na Stanford znów tematem była perfekcja. Śledził strony swojego tomu „Typografia cyfrowa” od rozdziałów wstępnych do najdłuższej części książki, która dotyczy kluczowego problemu typografii. Zwraca uwagę słuchaczy na jeden z głównych technicznych trików w systemie TeX: pytanie, jak dzielić akapity, aby wiersze były w przybliżeniu równe i dobre.

Słabe odstępy między słowami i brzydkie wybory łamania wierszy były jednymi z głównych gaf typografii komputerowej, które spowodowały, że Knuth rozpoczął swoją krucjatę TeX-ową. Dziwne przepaści słów, drabinki z łączników i osierocone fragmenty tekstu wynikały ze sztywnych algorytmów używanych do programowania łamania wierszy bez względu na wizualną elegancję. Rozwiązanie Knutha: niech komputer stosuje metody prób i błędów, aby sprawdzić, jak najlepiej podzielić każdy akapit tekstu. Zamiast zachłannych algorytmów upakowanych w większości słów według standardu w typografii komputerowej przed i po intensywnej obliczeniowej metodzie TeX-Knutha oceniającej piękno.

Knuth wydaje się urodzony do zadania promowania piękna na drukowanej stronie za pomocą metod obliczeniowych. Od początku kochałem książki, opowiada swoim słuchaczom. W kolekcji mojej mamy znaleźliśmy pierwszą książkę z alfabetem, jaką miałam. Wziąłem litery i policzyłem wszystkie szeryfy. Jest dumny ze swojej wczesnej umiejętności czytania i pisania, mówiąc pisarzowi, że był najmłodszym członkiem Klubu Robaka Książkowego w Bibliotece Publicznej Milwaukee. Jego zainteresowanie reprodukcją typograficzną pojawiło się również wcześnie. Jednym z jego najwcześniejszych wspomnień o publikowaniu przed komputerem było pomaganie ojcu Ervinowi z szablonami do powielania do drukowania biuletynu kościelnego w piwnicy. Podobnie jak biuletyn jego ojca, TeX miał być projektem homebrew na rozsądną skalę. Pierwotną intencją było to, aby było to dla mnie i mojej sekretarki, mówi TR w wywiadzie w gabinecie na drugim piętrze jego domu. Opierając się na czarnym fotelu, Knuth przyznaje, że długa podróż do TeX-a miała być szybką podróżą w bok: miałem ją ukończyć za rok.

Wydarzenia przybrały inny obrót. W 1978 roku Steele z firmy Sun — wówczas absolwent MIT — odwiedził przetłumaczony na Stanford TeX do użytku na komputerze typu mainframe MIT. Nagle, jak wspomina Knuth, miałem 10 użytkowników, potem 100. Za każdym razem pojawiał się inny poziom błędu. Pomiędzy 1000 a 10 000 użytkowników podarłem kod i zacząłem od nowa. Knuth mówi, że zdał sobie wtedy sprawę, że TeX nie był tylko dygresją, sam był częścią wizji. Widziałem, że to zaspokoiło potrzebę świata, więc lepiej zrobię to dobrze.

Kluczowym punktem zwrotnym w rozpowszechnianiu TeXa był wykład Knutha wygłoszony przed Amerykańskim Towarzystwem Matematycznym (AMS). Barbara Beeton, specjalistka ds. systemów składu dla AMS i wieloletnia urzędniczka TeX User’s Group z Portland w stanie Oregon, wspomina tę okazję: został zaproszony do wygłoszenia wykładu Josiaha Willarda Gibbsa. Wśród poprzednich mówców byli Albert Einstein i John von Neumann. Knuth po raz pierwszy publicznie opowiedział o swoim nowym systemie składu. Knuth przemawiał do chóru; zebrani matematycy byli zaznajomieni z tym, jak pogorszyła się jakość druku. Dodaje Beetona: TeX był pierwszym systemem składu przeznaczonym dla autora artykułu lub książki, w przeciwieństwie do wydawnictwa. Niedługo potem AMS stał się pierwotnym użytkownikiem instytucjonalnym TeX-a, wykorzystując system Knutha do publikowania wszystkich swoich dokumentów i czasopism.

W miarę rozpowszechniania się wiadomości i coraz większej liczby użytkowników korzystających z jego bezpłatnego oprogramowania (napisanego dla akademickiego komputera typu mainframe, ale wkrótce udostępnionego dla komputerów PC), Knuth zaczął studiować historię drukowania, aby znaleźć rozwiązania dla wąskich zastosowań. Często jego badania okazywały się bezowocne i musiał wymyślić własną odpowiedź. Na uroczyste zaproszenia stworzył nowe czcionki; do składu muzycznego rozwiązywał trudne problemy wyrównania. Miałem tylu użytkowników, wspomina. Od zaproszeń ślubnych i programów dla lokalnej orkiestry symfonicznej po programy komputerowe.

Przez prawie dziewięć lat wyprawa Knutha na typografię zajmowała go na pełny etat, odciągając go od pracy nad książką programistyczną, którą uważał za swoje prawdziwe powołanie. Musiałem pomyśleć o końcówce, mówi. Jak mógłbym odpowiedzialnie zakończyć TeX-a i powiedzieć: to się już nie zmieni? Musiałem wypracować czteroletnią strategię, by się wyrwać i wrócić do The Art of Computer Programming.

Rozwiązanie Knutha: wraz z wydaniem TeX-a w wersji 3.0 w 1990 roku ogłosił, że jego praca jest zakończona. Uczniowie będą musieli utrzymywać system. Knuth mówi, że ograniczy swoją pracę do naprawy rzadkich błędów, na które zwrócono mu uwagę; z każdą poprawką przypisuje jeszcze jedną cyfrę do numeru wersji, aby miała tendencję do pi (aktualna wersja to 3.14159).

Jednym z rezultatów decyzji Knutha o zaprzestaniu wprowadzania poważnych zmian w TeX jest to, że format pliku TeX pozostał niezmieniony. To jedyne oprogramowanie, w którym można pobrać plik do swojej pracy z 1985 roku i nie trzeba go konwertować, aby można go było wydrukować w ten sam sposób dzisiaj, zauważa David Fuchs, starszy badacz w Liberate Technologies (dawniej Network Computer Inc.), który był doktorant na Stanford podczas rozwoju TeX-a. Fuchs szacuje, że na całym świecie jest milion użytkowników TeX-a; wiele z nich wykorzystuje specjalne komercyjne pakiety zbudowane wokół jądra TeX, takie jak LATeX (zorientowany na polecenia język makr) i TeXDoc (zoptymalizowany pod kątem dokumentacji oprogramowania).

Z drugiej strony, TeX jest ograniczony w swojej atrakcyjności, ponieważ nie jest WYSIWYG, przyznaje Fuchs, używając akronimu dla tego, co widzisz, jest tym, co otrzymujesz - standardowym terminem opisującym oprogramowanie do przetwarzania tekstu, które wyświetla formatowanie na ekranie tak, jak pojawi się na wydrukowanej stronie . Zamiast oferować interaktywność na ekranie w czasie rzeczywistym, TeX wymaga języka znaczników wpisanego do dokumentu i interpretowanego przez komputer; widzisz to, co dostajesz dopiero po wydrukowaniu. Pomimo nieintuicyjnego interfejsu użytkownika, TeX stworzył dedykowany rdzeń profesjonalistów produkcyjnych, którzy nie zaakceptują żadnego substytutu. Dlaczego ktoś miałby chcieć czegoś innego? – pyta Paul Anagnostopolis, konsultant wydawców z Carlisle w stanie Massachusetts i autor opartego na TeX oprogramowania do komponowania książek. Wielu ludzi nie obchodzi WYSIWYG.

Opus w toku

Spędzenie dziewięciu lat zamiast jednego, aby stworzyć tex, to ten sam rodzaj epickiej błędnej kalkulacji, która doprowadziła Knutha do monumentalnej skali Sztuka programowania komputerowego . Po ukończeniu studiów licencjackich w Case Institute (obecnie Case Western Reserve), studiował doktorat i nauczanie w California Institute of Technology w 1962 roku, kiedy został zakontraktowany przez wydawcę podręczników Addison-Wesley na napisanie tomu o kompilatorach komputerowych. (Kompilatory to specjalne programy, które konwertują tekst wpisywany przez programistów na instrukcje w rodzimym języku binarnym komputera).

W swoim studium książkowym Knuth opowiada historię projektu. Od 1962 do 1966 napisał ołówkiem pierwszy szkic. Rękopis liczył 3000 stron. Myślałem, że to jeden tom, może 600 stron. Po prostu doszedłem do wniosku, że czcionka w książkach była mniejsza niż moje pismo odręczne. Potem napisałem rozdział pierwszy i sam miał 450 stron. Wysłałem ją do wydawcy, a oni powiedzieli: Don, czy masz pojęcie, jak długa będzie twoja książka?

W obliczu tak nieporęcznego rękopisu wielu wydawców porzuciłoby projekt. Zamiast tego Addison-Wesley opracował harmonogram publikacji, który może ostatecznie rozciągnąć się do siedmiu tomów. Tom czwarty ma być gotowy w 2004 roku, a tom piąty do 2009 roku. Wtedy Knuth może skończyć tomy 6 i 7 - jeśli to, co ma do powiedzenia na wybrane przez siebie tematy, jest nadal pouczające. Peter Gordon, partner wydawniczy Addison-Wesley i redaktor Donalda Knutha przez ostatnie 20 lat, wyjaśnia, że ​​sukces pierwszych trzech tomów The Art of Computer Programming pozwolił wydawcy zbudować całą swoją linię informatyczną wokół pracy Knutha. Don ma swój własny plan na życie i własne wyczucie czasu, zauważa. Jest tak kreatywnym i utalentowanym autorem, że najlepsze, co może zrobić każdy redaktor, to trzymać się z daleka i pozwolić mu realizować swój plan.

Pomaga to, że książka nadal zbiera pochwały od innych widzących w cyfrowym świecie. W swoim konsorcjalnym felietonie w gazecie Bill Gates odpowiedział kiedyś czytelnikowi: Jeśli uważasz, że jesteś naprawdę dobrym programistą lub chcesz rzucić wyzwanie swojej wiedzy, przeczytaj The Art of Computer Programming autorstwa Donalda Knutha. Gates opisał swoje własne spotkanie z książką: Przeczytanie jej zajęło mi niesamowitą dyscyplinę i kilka miesięcy. Przestudiowałem 20 stron, odłożyłem na tydzień i wróciłem po kolejne 20 stron. Jeśli ktoś jest tak zuchwały, że myśli, że wie wszystko, Knuth pomoże mu zrozumieć, że świat jest głęboki i skomplikowany. Jeśli możesz przeczytać całość, wyślij mi CV.

To, co podtrzymuje Knutha w jego epickim projekcie, to jego fundamentalne zamiłowanie do tematu. Ludzie, którzy pracują nad analizą algorytmów, mają podwójne szczęście, mówi, brzmiąc jak Yoda. Cieszysz się, gdy rozwiązujesz problem i znowu, gdy ludzie uśmiechają się, używając Twojego rozwiązania w swoim oprogramowaniu.

Zanim zdąży odpocząć w ziemi obiecanej, Knuth staje przed ostatnią górą. Musi przeprojektować uogólniony komputer używany w jego książce do przykładów programowania i ćwiczeń z 50-letniej maszyny w stylu von Neumanna z nieefektywnymi poleceniami na bardziej nowoczesny system RISC (komputer o zredukowanej liczbie instrukcji), umożliwiający szybsze działanie. (Procesory Intel w większości komputerów PC są starszej odmiany; chipy PowerPC w najnowszych modelach komputerów Macintosh to RISC.) Staram się zaprojektować go tak, aby wyprzedził swoje czasy o 10 lat, mówi Knuth. Przestudiowałem wszystkie maszyny, które mamy teraz i próbowałem zebrać ich najfajniejsze cechy i połączyć je w całość. Ta super maszyna RISC, którą nazywa MMIX, jest zasadniczo koncepcją nauczania. Ale mówi, że chciałby zobaczyć, jak się buduje. Dużo czasu poświęcam na dokumentowanie tego, aby ktoś mógł to zbudować. Projekt będzie w domenie publicznej. W trakcie swojej serii wykładów wprowadzających do programu Computer Musings na temat MMIX, Knuthowi brakuje zaledwie kilku miesięcy od ukończenia tej fazy swojej pracy.

I wtedy? Zaczynam ładować na tomie 4 z maksymalną prędkością. Mogę pisać o jednej stronie do publikacji dziennie, mówi. Na innej książce pisał kiedyś w tempie dwóch stron dziennie, ale to było za dużo. Nie mogłem być dobrym mężem i dobrym ojcem, a to nie było dobre. Tak więc obiecuję 250 stron rocznie dla tomu 4. Dla wielbicieli oprogramowania Biblii Knutha, w tym Billa Gatesa, te strony nie mogą pojawić się wystarczająco szybko.

Jeśli chodzi o niezachwianą pewność siebie Knutha w realizacji swojego długoterminowego celu, biologia wydaje się być po jego stronie. Jego matka ma 87 lat, cieszy się dobrym zdrowiem, nadal pracuje, jak mówi, w zarządzaniu biurem nieruchomości. Jego ojciec, który zapoczątkował mu drogę do typografii komputerowej, zmarł w wieku 62 lat. Mimo to ten cyfrowy patriarcha konkluduje: Ojciec mojego ojca dożył 97 lat, więc mam nadzieję, że wrócę po nim.

Zanim osiągnie zaawansowany wiek wymagany do zrealizowania wszystkich swoich planów wydawniczych, Knuth będzie musiał stawić czoła pokusom, które przychodzą wraz ze sławą. Dwustronicowa reklama magazynu fatbrain.com głosi ponad ostrym kolażem: Przedstawiam jedyną księgarnię na świecie, w której Donald Knuth sprzedaje Johna Grishama miliard do jednego. To może być pierwsze komercyjne potwierdzenie kultowego statusu Knutha wśród digerati. Czy takie uznanie doprowadzi do plagi uwagi właśnie wtedy, gdy mędrzec oprogramowania ma zamiar wznowić swoją podróż w kierunku ukończenia swojej życiowej misji? To sprawia, że ​​zastanawiasz się, jak długo Mojżesz mógł wędrować po pustyni, gdyby obecne media były w pobliżu.

ukryć