Biblijos perrašymas 0 ir 1

Kai rašai apie Donaldą Knuthą, natūralu, kad skamba pagal Šventąjį Raštą. Beveik 40 metų į pensiją išėjęs Stanfordo universiteto profesorius rašė kompiuterių mokslo evangeliją, epą, pavadintą Kompiuterių programavimo menas. Pirmieji trys tomai jau sudaro gerą knygą pažengusiems programinės įrangos gerbėjams, visame pasaulyje parduodama milijonu kopijų keliolika kalbų. Jo požiūris į kodą persmelkia programinės įrangos kultūrą.





Ir štai, nutraukęs savo pašaukimą devynerius metus, Donaldas Knuthas klajojo po kompiuterinės tipografijos dykumą, kurdamas programą, kuri tapo mokslinės publikacijos skaitmeninio rinkimo žodžiu. Jis pavadino savo programinę įrangą TeX ir pasiūlė ją visiems tikintiesiems, atmesdamas vienos genties (Xerox) bandymą patvirtinti nuosavybės teisę į jos matematines formules. Matematika priklauso Dievui, pareiškė jis. Tačiau Knutho Dievas nėra aukščiau už tikinčiuosius. Savo „TeX“ vadove „The TeXbook“ jis rašo, kad jis ne visada sako tiesą, nes sąmoningo melavimo technika iš tikrųjų padės lengviau išmokti idėjas.

Dabar, norintis užbaigti savo Raštus, 61 metų Knuthas (ka-NOOTH) universitetą supančiose kalvose veda tai, ką jis vadina atsiskyrėliu (su žmona), anksti išėjęs į pensiją. Jis atjungė savo asmeninę el. pašto paskyrą ir paskelbė tinklalapį (www-cs-faculty.stanford.edu/~knuth/), kad sulaikytų daugybę programinės įrangos ir atsakytų į dažniausiai užduodamus klausimus, pvz., Kada pasirodys 4 tomas. ?

Maždaug kartą per mėnesį mokslo metais Knuthas nusileidžia iš aukštumų į rūsio paskaitų salę Geitso kompiuterių mokslo pastate Stanforde, kad perskaitytų vieną iš savo „Computer Musings“ paskaitų, dažniausiai apie kurią nors savo dabartinio darbo „Kompiuterio menas“ aspektą. Programavimas. Šiose diskusijose dalyvauja kompiuterių mokslų studentai, kviestiniai profesoriai, programinės įrangos inžinieriai iš netoliese esančių įmonių ir kartais generalinis direktorius. Šių metų pradžioje švelnią dieną tema ir klausytojai kitokie. Švęsdami leidinį

Trečiasis jo surinktų straipsnių „Skaitmeninė tipografija“ tomas Stanfordo universiteto bibliotekų bendradarbiai pakvietė spausdinto žodžio gerbėjų auditoriją išgirsti Knutho kalbas apie TeX sistemos kūrimą moksliniams ir matematiniams leidiniams. Vilkėdamas juodus marškinėlius ant juodų marškinių ilgomis rankovėmis, o jo plikas paštetas spindi virš galvos esančiose lemputėse, jis atrodo tinkamai vienuolis prieš maždaug 70 mokinių ir kolegų.

Dvejodamas savo žodžius, kovodamas su savo įgimtu liuteronišku kuklumu, jis pradeda: Pagrindinis mano gyvenimo darbas ir priežastis, dėl kurios pradėjau visą šį projektą, yra parašyti knygų seriją „Kompiuterinio programavimo menas“, dėl kurios tikiuosi gyventi dar 20 metų ir Užbaigti projektą, kurį pradėjau 1962 m. Deja, kompiuterių programavimas bėgant metams išaugo, todėl turėjau parašyti šiek tiek daugiau, nei maniau, kai jį nubraižiau. Tikintieji sąmoningai juokiasi.

Knuthas pasakoja apie savo nukrypimą į skaitmeninę tipografiją aštuntajame dešimtmetyje. Tai buvo didžiulių pokyčių rinkimo pramonėje laikas, nes kompiuterinės sistemos pakeitė karštąjį tipą, kuris buvo naudojamas nuo Gutenbergo laikų. Kompiuterinė tipografija buvo pigesnė, bet ir ne tokia estetiška, ypač sudėtingam matematiniam žymėjimui. Primena Knuthas: Keičiantis spausdinimo technologijoms, pirmiausia buvo nagrinėjama svarbesnė komercinė veikla, o matematikai liko paskiausiai. Taigi mūsų knygos ir žurnalai pradėjo atrodyti labai prastai. Negalėjau rašyti knygų, kurios neatrodytų gerai.

Knuthas apsiėmė parašyti kiekvieną programinės įrangos kodo eilutę, kuri davė gražią tipografiją. Savo spausdinimo programos pavadinimą jis nuvedė iš graikų kalbos žodžio, reiškiančio meną – raidės yra tau epsilon chi (ji rimuojasi su blecch). Sako Knuthas: Gerokai daugiau nei 90 procentų visų matematikos ir fizikos knygų yra spausdinamos naudojant TeX ir su juo susijusią programinę įrangą Metafont – įrankį, kurį Knuth sukūrė maloniems šriftams kurti.

Jis greitai pripažįsta šriftų dizainerių, perforatorių, tipografų, knygų istorikų ir mokslininkų indėlį, kurį jis subūrė Stanforde kurdamas TeX. Kai kurie yra auditorijoje. Jis jiems sako: „TeX“ dabar vadiname atviros sistemos programine įranga – bet kas visame pasaulyje gali ja naudotis nemokamai. Dėl šios priežasties tūkstančiai žmonių visame pasaulyje padėjo mums rasti visas klaidas. Manau, kad tai tikriausiai pati patikimiausia tokio dydžio kompiuterinė programa.

Kiekvienas, kuris abejoja šiuo neabejotinai nepagyjančio Knutho teiginiu, gali gauti patvirtinimą iš Guy'aus Steele'o, vieno iš pirmųjų TeX vartotojų ir dabar žinomo Sun Microsystems inžinieriaus. „TeX“, sako Steele, buvo viena pirmųjų didelių programų, kurios šaltinio kodas buvo paskelbtas atvirai. Steele'as teigia, kad Knutho paskelbus TeX kodą knygoje kartu su išsamiais komentarais, kiekvienas galėjo suprasti, kaip jis veikia, ir pasiūlyti klaidų pataisymus. Beta versijos testuotojai buvo geriausi Akademijos mokslininkai ir matematikai, todėl nepaprasta kokybės kontrolės komanda padėjo tobulinti TeX. (TeX kūrimo pastangos buvo pavyzdys šiandieniniam atvirojo kodo programinės įrangos judėjimui, kuris suteikė pasauliui Linux operacinę sistemą, kuri pradeda konkuruoti su Microsoft Windows.)

Tobulumas yra pagrindinis Knutho rūpestis. Vienintelis Knutho turimas elektroninio pašto adresas renka pranešimus apie klaidas iš jo knygų skaitytojų ir siūlo 2,56 USD už kiekvieną anksčiau nepraneštą klaidą. (Suma yra vidinis pokštas: 256 lygus 2 iki 8 laipsnio – baitų galimų reikšmių skaičius.) Knutho atlygio čekiai yra vieni labiausiai vertinamų kompiuterijos trofėjų; nedaugelis iš tikrųjų išgryninami.

Jis labai rimtai žiūri į šį klaidų verslą. Jo namų įėjime išgraviruoti danų poeto Pieto Heino žodžiai:

Kelias į išmintį?
Na tai aišku
ir paprasta išreikšti:

Err
ir klysti
ir vėl klysti
bet mažiau
ir mažiau
ir mažiau.

Variantas šia tobulumo tema, Knutho indėlis į kompiuterių mokslo teoriją Kompiuterių programavimo meno puslapiuose buvo jo kruopšti algoritmų analizė. Naudojant jo knygoje aprašytus metodus, operacijas, naudojamas mašinų instrukcijoms paversti lygtimis, galima patikrinti, ar jos yra optimalios. Tada programos tobulinimas tampa algoritmų su labiausiai pageidaujamais atributais paieškos klausimu. Ne tai, kad teoriniai įrodymai gali pakeisti faktiškai veikiančią programinę įrangą kompiuteryje. Savo tinklalapyje dažnai cituojamoje pastaboje jis kartą perspėjo kolegą: Saugokitės aukščiau pateikto kodo; Aš tik įrodžiau, kad tai teisinga, o ne bandžiau.

Blogos pertraukos

Knutho Stanfordo kalboje tobulumas vėl buvo tema. Jis tęsė savo tomo apie skaitmeninę tipografiją puslapius, ne tik įvadinius skyrius, bet ir ilgiausią knygos skyrių, kuriame kalbama apie esminę tipografijos problemą. Jis atkreipia savo klausytojų dėmesį į vieną pagrindinių techninių TeX sistemos gudrybių: klausimą, kaip suskaidyti pastraipas taip, kad eilutės būtų maždaug vienodos ir geros.

Prastas atstumas tarp žodžių ir bjaurus eilučių pertraukų pasirinkimas buvo vienas iš pagrindinių kompiuterinės tipografijos klaidų, paskatinusių Knuthą į jo TeX kryžiaus žygį. Keistos žodžių bedugnės, brūkšnelių kopėčios ir našlaičiais palikusios teksto dalys atsirado dėl griežtų algoritmų, naudojamų programuojant eilučių lūžius, neatsižvelgiant į vizualinę eleganciją. Knutho sprendimas: leiskite kompiuteriui naudoti bandymų ir klaidų metodus, kad patikrintų, kaip geriausiai galima išskaidyti kiekvieną teksto pastraipą. Vietoj gobšų algoritmų, įterpiančių daugiausia žodžių į kompiuterinės tipografijos linijos standartą prieš ir po, daug skaičiavimo reikalaujantis TeX-Knutho metodas įvertina grožį.

Atrodo, kad Knuthas gimė užduočiai reklamuoti grožį spausdintame puslapyje skaičiavimo metodais. Aš nuo pat pradžių mylėjau knygas, sako jis savo auditorijai. Mamos kolekcijoje radome pirmąją mano turimą abėcėlės knygą. Paėmiau laiškus ir suskaičiavau visus serifus. Jis didžiuojasi savo ankstyvu raštingumu ir vienam rašytojui pasakė, kad buvo jauniausias Milvokio viešosios bibliotekos Knygų kirminų klubo narys. Jo susidomėjimas tipografine reprodukcija taip pat atsirado ankstyvame gyvenime. Vienas iš pirmųjų jo prisiminimų apie leidybą prieš darbalaukį buvo padėti savo tėvui Ervinui su mimeografiniais trafaretais rūsyje spausdinti bažnyčios informacinį biuletenį. Kaip ir jo tėvo informacinis biuletenis, „TeX“ turėjo būti valdomo masto namų ruošimo projektas. Pirminis tikslas buvo, kad tai būtų skirta man ir mano sekretorei, jis sako TR interviu savo namų antrojo aukšto darbo kambaryje. Atsilošęs į juodą krėslą Knuthas pripažįsta, kad ilga kelionė į TeX turėjo būti greita kelionė į šoną: ketinau ją baigti per metus.

Įvykiai pasisuko kita linkme. 1978 m. Sun's Steele, tuometinis MIT absolventas, lankęsis Stanforde, išvertė TeX, skirtą naudoti MIT pagrindiniame kompiuteryje. Staiga, prisimena Knuthas, aš turėjau 10 vartotojų, paskui 100. Kiekvieną kartą tai patirdavo skirtingą klaidų lygį. Nuo 1000 iki 10 000 naudotojo suplėšiau kodą ir pradėjau iš naujo. Knuthas sako, kad tada suprato, kad TeX nėra tik nukrypimas, bet ir pati vizijos dalis. Mačiau, kad tai patenkino pasaulio poreikį, todėl geriau tai daryti teisingai.

Pagrindinis TeX plitimo lūžis buvo paskaita, kurią Knuthas skaitė prieš Amerikos matematikų draugiją (AMS). Barbara Beeton, AMS komponavimo sistemų specialistė ir ilgametė Portlande, Ore. įsikūrusios TeX vartotojų grupės pareigūnė, prisimena šią progą: jis buvo pakviestas skaityti Josiah Willard Gibbs paskaitą. Albertas Einsteinas ir Johnas von Neumannas buvo tarp ankstesnių kalbėtojų. Knuthas pirmą kartą viešai kalbėjo apie savo naują rinkimo sistemą. Knuthas pamokslavo chorui; susirinkę matematikai žinojo, kaip suprastėjo spausdinimo kokybė. Prideda Beetonas: TeX buvo pirmoji kompozicijos sistema, skirta naudoti straipsnio ar knygos autoriui, o ne leidyklai. Netrukus po to AMS tapo pirminiu instituciniu TeX vartotoju, naudodamas Knutho sistemą visiems savo dokumentams ir žurnalams skelbti.

Kai žinia plinta ir vis daugiau vartotojų pasinaudojo jo nemokama programine įranga (parašyta akademiniam pagrindiniam kompiuteriui, bet netrukus tapo prieinama asmeniniams kompiuteriams), Knuthas studijavo spausdinimo istoriją, kad rastų sprendimus siauroms programoms. Dažnai jo tyrimai buvo bevaisiai ir jis turėjo sugalvoti savo atsakymą. Iškilmingiems kvietimams jis sukūrė naujus šriftus; muzikiniam rinkimui sprendė sudėtingas derinimo problemas. Turėjau tiek daug vartotojų, prisimena jis. Nuo vestuvių kvietimų ir programų vietiniam simfoniniam orkestrui iki kompiuterinių programų.

Beveik devynerius metus Knutho veržimasis į tipografiją užėmė visą laiką ir atitraukė jį nuo darbo su programavimo knyga, kurią jis laikė tikruoju savo pašaukimu. Turėjau galvoti apie galutinį žaidimą, sako jis. Kaip galėčiau atsakingai užbaigti TeX ir pasakyti: tai daugiau nepasikeis? Turėjau parengti ketverių metų strategiją, kaip išsilaisvinti ir grįžti prie kompiuterių programavimo meno.

Knutho sprendimas: 1990 m. išleidęs TeX 3.0 versiją, jis paskelbė, kad jo darbas baigtas. Mokiniai turės išlaikyti sistemą. Knuthas sako, kad apsiribos savo darbu retų klaidų, į kurias atkreipė jo dėmesį, taisymu; su kiekvienu pataisymu jis priskiria dar vieną skaitmenį versijos numeriui, kad jis būtų linkęs į pi (dabartinė versija yra 3.14159).

Vienas iš Knutho sprendimo nebedaryti esminių TeX pakeitimų rezultatas yra tas, kad TeX failo formatas išliko nepakitęs. Tai vienintelė programinė įranga, kuria galite paimti 1985 m. dokumento failą ir nereikės jo konvertuoti, kad spausdintumėte taip pat šiandien, pažymi Davidas Fuchsas, Liberate Technologies (anksčiau Network Computer Inc.) vyresnysis mokslo darbuotojas. Stenfordo studentas kurdamas TeX. Fuchs apskaičiavo, kad visame pasaulyje yra 1 milijonas TeX vartotojų; daugelis naudoja specialios paskirties komercinius paketus, sukurtus aplink TeX branduolį, tokius kaip LATeX (į komandas orientuota makrokomandų kalba) ir TeXDoc (optimizuota programinės įrangos dokumentacijai).

Neigiama yra tai, kad TeX patrauklumas yra ribotas, nes tai nėra WYSIWYG, pripažįsta Fuchsas, naudojant trumpinį to, ką matote, yra tai, ką jūs gaunate – standartinis terminas, apibūdinantis teksto apdorojimo programinę įrangą, kuri ekrane rodo formatavimą taip, kaip jis bus spausdintame puslapyje. . Užuot siūlęs interaktyvumą realiuoju laiku ekrane, TeX reikalauja žymėjimo kalbos, įvedamos į dokumentą ir interpretuojamos kompiuterio; ką gausite, pamatysite tik tada, kai jis bus išspausdintas. Nepaisant neintuityvios vartotojo sąsajos, „TeX“ sukūrė tam skirtą gamybos profesionalų branduolį, kuris nepriims jokio pakaitalo. Kodėl kas nors norėtų ko nors kito? klausia Paulas Anagnostopolis, Karlailo valstijoje, Masačusetso valstijoje įsikūręs leidėjų konsultantas ir TeX pagrindu sukurtos programinės įrangos, skirtos knygų komponavimui, autorius. Daugeliui žmonių WYSIWYG nerūpi.

Vykdomas opusas

Tekso kūrimui praleisti devynerius metus, o ne vienerius metus, tai toks pat epinis klaidingas skaičiavimas, dėl kurio Knuthas pasiekė monumentalią mastą. Kompiuterių programavimo menas . Įgijęs bakalauro laipsnį Case Institute (dabar Case Western Reserve), jis studijavo doktorantūroje ir dėstė Kalifornijos technologijos institute 1962 m., kai vadovėlių leidėjas Addison-Wesley jį pasamdė parašyti tomą apie kompiuterių kompiliatorius. (Kompiliatoriai yra specialios programos, kurios konvertuoja programuotojų įvestą tekstą į instrukcijas kompiuterio gimtąja dvejetaine kalba.)

Savo knygomis išklotoje studijoje Knuthas pasakoja projekto istoriją. 1962–1966 metais jis pieštuku parašė pirmąjį juodraštį. Rankraštis buvo 3000 puslapių. Maniau, kad tai buvo vienas gal 600 puslapių tomas. Aš tiesiog supratau, kad knygos raštas yra mažesnis nei mano rašysena. Tada įvedžiau pirmąjį skyrių ir jis buvo 450 puslapių. Nusiunčiau ją leidyklai ir jie pasakė: Donai, ar žinai, kiek truks tavo knyga?

Susidūrę su tokiu sudėtingu rankraščiu daugelis leidėjų būtų atmetę projektą. Vietoj to, Addison-Wesley parengė publikavimo grafiką, kuris galiausiai galėtų išaugti iki septynių tomų. Manoma, kad 4 tomas bus paruoštas 2004 m., o 5 tomas – iki 2009 m. Tada Knuthas gali baigti 6 ir 7 tomus – jei tai, ką jis turi pasakyti pasirinktomis temomis, vis dar yra pamokantis. Peteris Gordonas, „Addison-Wesley“ leidybos partneris ir Donaldo Knutho redaktorius pastaruosius 20 metų, paaiškina, kad pirmųjų trijų „Kompiuterių programavimo meno“ tomų sėkmė leido leidėjui sukurti visą kompiuterių mokslo liniją pagal Knutho darbus. Donas turi savo gyvenimo planą ir laiko jausmą, pažymi jis. Jis toks kūrybingas ir gabus autorius, geriausia, ką gali padaryti bet kuris redaktorius, tai nesitraukti ir leisti jam laikytis savo plano.

Tai padeda knygai ir toliau sulaukti pagyrimų iš kitų skaitmeninės srities regėtojų. Savo sindikuoto laikraščio skiltyje Billas Gatesas kartą atsakė skaitytojui: Jei manote, kad esate tikrai geras programuotojas arba norite mesti iššūkį savo žinioms, perskaitykite Donaldo Knutho „Kompiuterių programavimo menas“. Gatesas apibūdino savo susidūrimą su knyga: Man prireikė neįtikėtinos disciplinos ir kelių mėnesių, kol ją perskaičiau. Išstudijavau 20 puslapių, padėjau savaitei ir grįžau dar 20 puslapių. Jei kas nors yra toks įžūlus, kad galvoja, kad viską žino, Knuthas padės suprasti, kad pasaulis yra gilus ir sudėtingas. Jei galite perskaityti visą, atsiųskite man CV.

Tai, kas palaiko Knuthą per jo epinį projektą, yra jo pagrindinė meilė šiai temai. Žmonės, dirbantys su algoritmų analize, turi dvigubą laimę, sako jis, skamba kaip Yoda. Esate laimingi, kai išsprendžiate problemą ir dar kartą, kai žmonės šypsosi naudodami jūsų sprendimą savo programinėje įrangoje.

Prieš pailsėdamas pažadėtojoje žemėje, Knutas susiduria su paskutiniu kalnu. Jis turi pertvarkyti savo knygoje naudojamą apibendrintą kompiuterį programavimo pavyzdžiams ir pratimams iš 50 metų senumo von Neumanno stiliaus mašinos su neefektyviomis komandomis į modernesnę RISC (sumažinto instrukcijų rinkinio kompiuterio) sistemą, leidžiančią greičiau veikti. („Intel“ procesoriai daugumoje asmeninių kompiuterių yra senesnės versijos; „PowerPC“ lustai naujausiuose „Macintosh“ modeliuose yra RISC.) Bandau jį sukurti taip, kad jis būtų 10 metų pranašesnis už savo laiką, sako Knuthas. Išstudijavau visas dabar turimas mašinas ir bandžiau paimti geriausias jų savybes bei sujungti jas visas. Ši super RISC mašina, kurią jis vadina MMIX, iš esmės yra mokymo koncepcija. Tačiau jis sako, kad norėtų, kad jis būtų pastatytas. Daug laiko praleidžiu dokumentuodamas, kad kas nors galėtų jį sukurti. Dizainas bus viešai prieinamas. Įžanginių pokalbių apie MMIX „Computer Musings“ serijos viduryje Knuthui liko vos mėnesiai iki šio savo darbo etapo pabaigos.

Ir tada? Pradedu krauti 4 tūriu didžiausiu greičiu. Per dieną galiu parašyti apie vieną publikuojamą puslapį, sako jis. Kitoje knygoje jis kažkada rašė po du puslapius per dieną, bet to buvo per daug. Negalėjau būti geru vyru ir geru tėvu, ir tai nebuvo gerai. Taigi, aš tiesiog pažadu 250 puslapių per metus 4 tomui. Knutho programinės įrangos Biblijos bhaktams, įskaitant Billą Gatesą, šie puslapiai gali pasirodyti pakankamai greitai.

Kalbant apie nepajudinamą Knutho pasitikėjimą siekiant savo ilgalaikio tikslo, atrodo, kad biologija yra jo pusėje. Jo mamai 87 metai, ji yra geros sveikatos ir vis dar dirba nekilnojamojo turto biure. Jo tėvas, pradėjęs jį kompiuterinės tipografijos keliu, mirė sulaukęs 62 metų. Vis dėlto šis skaitmeninis patriarchas daro išvadą: mano tėvo tėvas gyveno 97 metus, todėl tikiuosi jį sekti.

Prieš sulaukdamas tokio amžiaus, kurio reikia, kad galėtų įvykdyti visus leidybos planus, Knuthui gali tekti susidurti su pagundomis, kurias lydi šlovė. Dviejų puslapių žurnalo reklama, skirta fatbrain.com, skelbiama per įkyrų koliažą: pristatomas vienintelis knygynas žemėje, kuriame Donaldas Knuthas milijardu viršija Johną Grishamą. Tai gali būti pirmasis komercinis Knutho statuso pripažinimas tarp digeratų. Ar toks pripažinimas sukels dėmesio marą tik tada, kai programinės įrangos išminčius ketina tęsti savo kelionę savo gyvenimo misijos užbaigimo link? Tai verčia susimąstyti, kiek ilgiau Mozė būtų galėjęs klajoti po dykumą, jei būtų buvusi šiandieninė žiniasklaida.

paslėpti