211service.com
Bībeles pārrakstīšana ar 0 un 1
Rakstot par Donaldu Knutu, ir dabiski izklausīties pēc Svētajiem Rakstiem. Gandrīz 40 gadus tagad pensijā aizgājušais Stenfordas universitātes profesors ir rakstījis datorzinātņu evaņģēliju, eposu ar nosaukumu Datorprogrammēšanas māksla. Pirmie trīs sējumi jau veido Labo grāmatu pieredzējušiem programmatūras cienītājiem, un tiek pārdots miljons eksemplāru visā pasaulē duci valodās. Viņa pieeja kodam caurstrāvo programmatūras kultūru.
Un lūk, pārtraucot savu aicinājumu deviņus gadus, Donalds Knuts klīda pa datortipogrāfijas tuksnesi, izveidojot programmu, kas ir kļuvusi par vārdu digitālajā salikumā zinātniskai publikācijai. Viņš sauca savu programmatūru TeX un piedāvāja to visiem ticīgajiem, noraidot vienas cilts (Xerox) mēģinājumu apliecināt īpašumtiesības uz tās matemātiskajām formulām. Viņš paziņoja, ka matemātika pieder Dievam. Taču Knuta Dievs nav augstāks par ticīgo viltību. Savā TeX rokasgrāmatā The TeXbook viņš raksta, ka tas ne vienmēr stāsta patiesību, jo apzinātas melošanas tehnika patiešām atvieglos ideju apgūšanu.
Tagad, cenšoties pabeigt savus svētos rakstus, 61 gadu vecais Knuts (ka-NOOTH) vada to, ko viņš sauc par vientuļnieku līdzīgu eksistenci (kopā ar savu sievu) kalnos, kas ieskauj universitāti, pēc tam, kad ir priekšlaicīgi aizgājuši no mācīšanas. Viņš ir atvienojis savu personīgo e-pasta kontu, ievietojot tīmekļa lapu (www-cs-faculty.stanford.edu/~knuth/), lai neļautu izmantot programmatūras, atbildot uz bieži uzdotajiem jautājumiem, piemēram, Kad iznāks 4. sējums. ?
Apmēram reizi mēnesī akadēmiskā gada laikā Knuts nokāpj no augstuma uz pagraba lekciju telpu Geitsa datorzinātņu ēkā Stenfordā, lai nolasītu vienu no savām Computer Musings lekcijām, parasti par kādu no viņa pašreizējā darba aspektiem datorā. Programmēšana. Šajās sarunās piedalās datorzinātņu studenti, viesprofesori, programmatūras inženieri no tuvējiem uzņēmumiem un dažkārt kāds izpilddirektors. Kādā mierīgā dienā šī gada sākumā tēma un klausītāji ir atšķirīgi. Lai atzīmētu publikācijas
Trešais viņa apkopoto darbu sējums Digitālā tipogrāfija, Stenfordas Universitātes bibliotēku līdzstrādnieki ir uzaicinājuši drukātā vārda cienītājus, lai dzirdētu Knuta stāstījumu par TeX sistēmas izveidi zinātniskām un matemātiskām publikācijām. Valkādams melnu T-kreklu virs melna krekla ar garām piedurknēm, un viņa plikpapīra pastēte mirdz gaismā, viņš izskatās atbilstoši mūks pirms apmēram 70 akolītiem un kolēģiem.
Vilcinoties, viņa vārdi cīnās ar viņa iedzimto luterisko pieticību, viņš iesāk: Mans galvenais mūža darbs un iemesls, kāpēc es sāku visu šo projektu, ir uzrakstīt grāmatu sēriju Datorprogrammēšanas māksla, kuras dēļ es ceru nodzīvot vēl 20 gadus un Pabeidzu 1962. gadā iesākto projektu. Diemžēl datorprogrammēšana gadu gaitā ir augusi, un tāpēc man bija jāraksta nedaudz vairāk, nekā biju domājis, kad to ieskicēju. Uzticīgie apzināti smejas.
Knuts stāsta par savu ceļu uz digitālo tipogrāfiju 1970. gados. Šis bija laiks, kad salikšanas nozarē notika milzīgas pārmaiņas, jo datorsistēmas aizstāja karsto veidu, kas tika izmantots kopš Gūtenberga dienām. Datortipogrāfija bija lētāka, bet arī mazāk estētiski pievilcīga, jo īpaši sarežģītu matemātisko apzīmējumu gadījumā. Atgādina Knuts: mainoties drukas tehnoloģijai, svarīgākās komercdarbības tika aplūkotas vispirms un matemātiķi bija pēdējā vietā. Tāpēc mūsu grāmatas un žurnāli sāka izskatīties ļoti slikti. Es nevarēju rakstīt grāmatas, kas neizskatās labi.
Knuts uzņēmās rakstīt katru koda rindiņu programmatūrai, kas radīja skaistu tipogrāfiju. Savas salikšanas programmas nosaukumu viņš ieguva no grieķu vārda, kas apzīmē mākslu — burti ir tau epsilon chi (tas atskan ar vārdu blecch). Knuts saka: Vairāk nekā 90 procenti no visām matemātikas un fizikas grāmatām ir sadrukātas ar TeX un ar to saistīto programmatūru Metafont, rīku Knuth, lai izstrādātu patīkamus fontus.
Viņš ātri atzīst rakstzīmju dizaineru, perforatoru, tipogrāfu, grāmatu vēsturnieku un zinātnieku ieguldījumu, ko viņš pulcēja Stenfordā, izstrādājot TeX. Daži ir auditorijā. Viņš viņiem saka: TeX ir tas, ko mēs tagad saucam par atvērtās sistēmas programmatūru — ikviens visā pasaulē to var izmantot bez maksas. Tādēļ mums bija tūkstošiem cilvēku visā pasaulē, kas palīdzēja mums atrast visas kļūdas. Es domāju, ka tā, iespējams, ir visu laiku uzticamākā datorprogramma tā apjomā.
Ikviens, kurš apšauba šo nepārprotami nelepojošā Knuta apgalvojumu, var atrast apstiprinājumu no Gaja Stīla, viena no pirmajiem TeX lietotājiem un tagad izcilā Sun Microsystems inženiera. TeX, saka Stīls, bija viena no pirmajām lielajām programmām, kuras pirmkods tika publicēts atklāti. Stīls saka, ka Knuta TeX koda publicēšana grāmatā kopā ar pilniem komentāriem padarīja to tā, lai ikviens varētu saprast, kā tas darbojas, un piedāvāt kļūdu labojumus. Ar akadēmijas labākajiem zinātniekiem un matemātiķiem kā beta testētājiem, ārkārtas kvalitātes kontroles komanda palīdzēja pilnveidot TeX. (TeX izstrāde bija paraugs mūsdienu atvērtā pirmkoda programmatūras kustībai, kas pasaulei ir devusi operētājsistēmu Linux, kas sāk konkurēt ar Microsoft Windows.)
Pilnveidojamība ir galvenā Knuta rūpe. Vienīgā e-pasta adrese, kuru uztur Knuts, apkopo ziņojumus par kļūdām no viņa grāmatu lasītājiem, piedāvājot 2,56 USD par katru iepriekš neziņotu kļūdu. (Summa ir iekšējs joks: 256 ir vienāds ar 2 līdz 8. pakāpei — vērtību skaits, ko var attēlot baits.) Knuta atlīdzības čeki ir viena no datortehnikas visdārgākajām trofejām; reāli tiek iekasēti tikai daži.
Viņš šo kļūdu biznesu uztver ļoti nopietni. Viņa mājas ieejā ir iegravēti dāņu dzejnieka Pieta Heina vārdi:
Ceļš uz gudrību?
Nu tas ir skaidrs
un vienkārši izteikt:
Err
un kļūdies
un atkal kļūdies
bet mazāk
un mazāk
un mazāk.
Variācijā par šo pilnveidojamības tēmu Knuta ieguldījums datorzinātņu teorijā Datorprogrammēšanas mākslas lappusēs ir viņa stingrā algoritmu analīze. Izmantojot viņa grāmatā aprakstītās metodes, var pārbaudīt operācijas, ko izmanto, lai mašīnas instrukcijas pārvērstu vienādojumos, lai noteiktu, vai tās ir optimālas. Programmas uzlabošana tad kļūst par algoritmu atrašanu ar vispiemērotākajiem atribūtiem. Ne tas, ka teorētiskie pierādījumi var aizstāt faktiski darbojošos programmatūru datorā. Bieži citētajā piezīmē, ko viņš min savā tīmekļa lapā, viņš reiz brīdināja kolēģi: Uzmanieties no iepriekš minētā koda; Es to tikai pierādīju pareizi, nevis mēģināju.
Slikti pārtraukumi
Knuta Stenforda runā pilnveidojamība atkal bija tēma. Viņš sekoja lappusēm savā sējumā par digitālo tipogrāfiju, pārsniedzot ievada nodaļas, līdz pat garākajai grāmatas sadaļai, kas uzbrūk būtiskai tipogrāfijas problēmai. Viņš vērš klausītāju uzmanību vienam no galvenajiem tehniskajiem trikiem TeX sistēmā: jautājumam par to, kā sadalīt rindkopas tā, lai rindas būtu aptuveni vienādas un labas.
Slikta atstarpe starp vārdiem un neglīta izvēle rindiņu pārtraukumiem bija viena no galvenajām datortipogrāfijas problēmām, kas aizsāka Knutu viņa TeX krusta karā. Neparastas vārdu plaisas, defisu kāpnes un bezsaimnieka teksta fragmenti radās stingriem algoritmiem, ko izmantoja, lai programmētu rindiņu pārtraukumus, neņemot vērā vizuālo eleganci. Knuta risinājums: lieciet datoram izmantot izmēģinājumu un kļūdu metodes, lai pārbaudītu, kā vislabāk var sadalīt katru teksta rindkopu. Tā vietā, lai mantkārīgi algoritmi iesaiņotu visvairāk vārdu uz līnijas standarta datortipogrāfijā pirms un pēc, TeX-Knuth skaitļošanas ietilpīgā metode novērtē skaistumu.
Šķiet, ka Knuts ir dzimis uzdevumam veicināt skaistumu drukātajās lapās, izmantojot skaitļošanas metodes. Man jau no paša sākuma bija mīlestība pret grāmatām, viņš stāsta auditorijai. Manas mātes kolekcijā mēs atradām pirmo alfabēta grāmatu, kas man bija. Biju paņēmusi vēstules un saskaitījusi visus serifus. Viņš lepojas ar savu agrīno lasītprasmi, kādam rakstniekam stāstot, ka bijis jaunākais Milvoki publiskās bibliotēkas Grāmatu tārpu kluba dalībnieks. Viņa interese par tipogrāfisko reproducēšanu arī radās agrīnā dzīves posmā. Viena no viņa agrākajām atmiņām par publicēšanu pirms darbvirsmas bija viņa tēva Ervīna palīdzība ar mimeogrāfa trafaretiem baznīcas biļetena drukāšanai pagrabā. Tāpat kā viņa tēva informatīvais izdevums, TeX bija paredzēts kā pašmāju projekts pārvaldāmā mērogā. Sākotnējais nolūks bija, lai tas būtu man un manai sekretārei, viņš stāsta TR intervijā savas mājas otrā stāva kabinetā. Atliecies melnajā atpūtas krēslā, Knuts atzīst, ka garais ceļojums uz TeX bija paredzēts kā ātrs brauciens blakus: es grasījos to pabeigt gada laikā.
Notikumi uzņēma citu pagriezienu. 1978. gadā Sun’s Stīls, pēc tam MIT absolvents, apmeklēja Stenfordu, tulkoja TeX, lai to izmantotu MIT lieldatorā. Knuts atceras, ka pēkšņi man bija 10 lietotāji, pēc tam 100. Katru reizi tas piedzīvoja dažādus kļūdu līmeņus. No 1000. līdz 10 000. lietotājam es saplēsu kodu un sāku no jauna. Knuts saka, ka tad viņš saprata, ka TeX nebija tikai atkāpe, tā pati bija daļa no vīzijas. Es redzēju, ka tas piepildīja pasaules vajadzību, un tāpēc es labāk daru to pareizi.
Galvenais pagrieziena punkts TeX izplatībā bija lekcija, ko Knuts lasīja Amerikas Matemātikas biedrībā (AMS). Barbara Bītone, personāla speciāliste AMS kompozīcijas sistēmās un ilggadējā Portlendas TeX lietotāju grupas amatpersona, kas atrodas Ore, atceras šo notikumu: viņš tika uzaicināts nolasīt Josiah Willard Gibbs lekciju. Alberts Einšteins un Džons fon Neimans bija starp iepriekšējiem runātājiem. Knuts pirmo reizi publiski runāja par savu jauno salikšanas sistēmu. Knuts sludināja korim; sapulcētie matemātiķi zināja, kā drukāšanas kvalitāte ir pasliktinājusies. Bītons piebilst: TeX bija pirmā kompozīcijas sistēma, kas bija paredzēta raksta vai grāmatas autoram, nevis izdevniecībai. Drīz pēc tam AMS kļuva par sākotnējo TeX institucionālo lietotāju, izmantojot Knuth sistēmu, lai publicētu visus savus dokumentus un žurnālus.
Kad izplatījās informācija un arvien vairāk lietotāju izmantoja viņa bezmaksas programmatūru (kura bija rakstīta akadēmiskajam lieldatoram, bet drīz vien kļuva pieejama personālajiem datoriem), Knuts sāka pētīt drukāšanas vēsturi, lai rastu risinājumus šaurām lietojumprogrammām. Bieži vien viņa pētījumi izrādījās neauglīgi, un viņam bija jānāk klajā ar savu atbildi. Svinīgajiem ielūgumiem viņš izveidoja jaunus fontus; mūzikas salikšanai viņš atrisināja sarežģītas saskaņošanas problēmas. Man bija tik daudz lietotāju, viņš atceras. No kāzu ielūgumiem un programmām vietējam simfoniskajam orķestrim līdz datorprogrammām.
Gandrīz deviņus gadus Knuta iedziļināšanās tipogrāfijā nodarbināja viņu visu laiku, atturot viņu no darba pie programmēšanas grāmatas, ko viņš uzskatīja par savu patieso aicinājumu. Man bija jādomā par beigu spēli, viņš saka. Kā es varētu atbildīgi pabeigt TeX un pateikt: tas vairs nemainīsies? Man bija jāizstrādā četru gadu stratēģija, lai atbrīvotos no sevis un atgrieztos datorprogrammēšanas mākslā.
Knuta risinājums: 1990. gadā izlaižot TeX versiju 3.0, viņš paziņoja, ka viņa darbs ir pabeigts. Mācekļiem būs jāuztur sistēma. Knuts saka, ka viņš aprobežosies ar savu darbu ar reto kļūdu labošanu, kurām tika pievērsta viņa uzmanība; ar katru labojumu viņš piešķir vēl vienu ciparu versijas numuram, lai tas tiecas uz pi (pašreizējā versija ir 3.14159).
Viens no Knuta lēmuma pārtraukt būtisku izmaiņu veikšanu TeX rezultātā ir tāds, ka TeX faila formāts ir palicis nemainīgs. Tā ir vienīgā programmatūra, kurā varat paņemt failu savam darbam no 1985. gada un nav nepieciešams to pārveidot, lai to izdrukātu tāpat kā šodien, atzīmē Deivids Fukss, Liberate Technologies (iepriekš Network Computer Inc.) vecākais pētnieks, kurš bija Stenfordas absolvents TeX izstrādes laikā. Fukss lēš, ka visā pasaulē ir 1 miljons TeX lietotāju; daudzi izmanto īpašas nozīmes komerciālas pakotnes, kas veidotas ap TeX kodolu, piemēram, LATeX (uz komandām orientēta makro valoda) un TeXDoc (optimizēta programmatūras dokumentācijai).
Negatīvā puse ir tā, ka TeX ir ierobežota ar savu pievilcību, jo tā nav WYSIWYG, atzīst Fukss, izmantojot akronīmu, ko redzat, tas ir tas, ko jūs saņemat — standarta termins, kas apraksta teksta apstrādes programmatūru, kas ekrānā parāda formatējumu, kā tas parādīsies drukātajā lapā. . Tā vietā, lai piedāvātu reāllaika interaktivitāti ekrānā, TeX ir nepieciešama iezīmēšanas valoda, kas jāievada dokumentā un jāinterpretē dators; to, ko iegūstat, redzat tikai pēc tam, kad tas ir izdrukāts. Neskatoties uz neintuitīvo lietotāja interfeisu, TeX ir izveidojis īpašu ražošanas profesionāļu kodolu, kas nepieņems nevienu aizstājēju. Kāpēc lai kāds vēlētos kaut ko citu? jautā Pols Anagnostopolis, Kārlailā (Masa) dzīvojošais izdevēju konsultants un uz TeX balstītas programmatūras autors grāmatu sacerēšanai. Daudziem cilvēkiem WYSIWYG ir vienalga.
Opuss procesā
Pavadīt deviņus gadus, nevis vienu, lai radītu tex, ir tāds pats episks nepareizs aprēķins, kas noveda Knutu līdz monumentālam mērogam. Datorprogrammēšanas māksla . Pēc bakalaura grāda iegūšanas Case Institute (tagad Case Western Reserve), viņš studēja doktorantūrā un pasniedza Kalifornijas Tehnoloģiju institūtā 1962. gadā, kad ar mācību grāmatu izdevēju Addison-Wesley ar viņu tika noslēgts līgums, lai viņš uzrakstītu sējumu par datoru kompilatoriem. (Kompilatori ir īpašas programmas, kas programmētāju ievadīto tekstu pārvērš instrukcijās datora dzimtajā binārajā valodā.)
Savā grāmatā izklātajā pētījumā Knuts stāsta par projekta vēsturi. No 1962. līdz 1966. gadam viņš uzrakstīja pirmo melnrakstu ar zīmuli. Manuskripts bija 3000 lappušu garš. Es domāju, ka tas ir viens sējums, iespējams, 600 lappušu. Es tikko sapratu, ka rakstītais grāmatās ir mazāks par manu rokrakstu. Tad es ierakstīju pirmo nodaļu, un tā pati par sevi bija 450 lappuses. Nosūtīju to izdevējam, un viņi teica: Don, vai tev ir nojausma, cik gara būs tava grāmata?
Saskaroties ar tik smagnēju manuskriptu, daudzi izdevēji projektu būtu atmetuši. Tā vietā Addison-Wesley izstrādāja publicēšanas grafiku, kas galu galā varētu izvērsties līdz septiņiem sējumiem. Paredzēts, ka 4. sējums būs gatavs 2004. gadā un 5. sējums līdz 2009. gadam. Tad Knuts var pabeigt 6. un 7. sējumu, ja viņa sakāmais par viņa izvēlētajām tēmām joprojām ir pamācošs. Pīters Gordons, Addison-Wesley izdevējdarbības partneris un Donalda Knuta redaktors pēdējos 20 gadus, skaidro, ka Datorprogrammēšanas mākslas pirmo trīs sējumu panākumi ir ļāvuši izdevējam veidot visu datorzinātņu līniju, pamatojoties uz Knuta darbu. Donam ir savs dzīves plāns un sava laika izjūta, viņš atzīmē. Viņš ir tik radošs un apdāvināts autors, labākais, ko katrs redaktors var darīt, ir palikt tālāk un ļaut viņam ievērot savu plānu.
Tas palīdz, ka grāmata turpina saņemt atzinību no citiem digitālās jomas gaišreģiem. Savā sindicētā laikraksta slejā Bils Geitss reiz atbildēja kādam lasītājam: Ja domājat, ka esat patiešām labs programmētājs vai ja vēlaties apstrīdēt savas zināšanas, izlasiet Donalda Knuta grāmatu Datorprogrammēšanas māksla. Geitss aprakstīja savu tikšanos ar grāmatu: Man bija vajadzīga neticama disciplīna un vairāki mēneši, līdz es to izlasīju. Izstudēju 20 lappuses, noliku uz nedēļu un atgriezos pēc vēl 20 lappusēm. Ja kāds ir tik nekaunīgs, ka domā, ka zina visu, Knuts palīdzēs saprast, ka pasaule ir dziļa un sarežģīta. Ja varat izlasīt visu, atsūtiet man CV.
Tas, kas atbalsta Knutu viņa episkajā projektā, ir viņa fundamentālā mīlestība pret šo tēmu. Cilvēkiem, kas strādā pie algoritmu analīzes, ir dubulta laime, viņš saka, izklausoties pēc Jodas. Jūs esat laimīgs, kad atrisinat problēmu un atkal, kad cilvēki smaida, izmantojot jūsu risinājumu savā programmatūrā.
Pirms viņš var atpūsties apsolītajā zemē, Knuts saskaras ar pēdējo kalnu. Viņam ir jāpārveido vispārinātais dators, ko savā grāmatā izmanto programmēšanas piemēriem un vingrinājumiem, no 50 gadus vecas fon Neimaņa stila mašīnas ar neefektīvām komandām uz modernāku RISC (samazinātu instrukciju kopu dators) sistēmu, kas nodrošina ātrāku darbību. (Vairumā datoru Intel procesori ir vecākās paaudzes; PowerPC mikroshēmas jaunākajos Macintosh modeļos ir RISC.) Es cenšos to izveidot tā, lai tas būtu par 10 gadiem priekšā savam laikam, saka Knuts. Esmu izpētījis visas mūsu rīcībā esošās mašīnas un mēģinājis izmantot to jaukākās īpašības un tās visas apvienot. Šī super RISC mašīna, ko viņš sauc par MMIX, būtībā ir mācību koncepcija. Bet viņš saka, ka labprāt redzētu to uzbūvētu. Es pavadu daudz laika, lai to dokumentētu, lai kāds varētu to izveidot. Dizains būs publiski pieejams. Savas Computer Musings ievadsarunu sērijas par MMIX vidū Knuts ir tikai mēnešu attālumā, lai pabeigtu šo sava darba posmu.
Un tad? Es sāku uzlādēt 4. skaļumā ar maksimālo ātrumu. Es varu uzrakstīt apmēram vienu publicējamu lapu dienā, viņš saka. Citā grāmatā viņš reiz rakstīja ar ātrumu divas lappuses dienā, bet tas bija pārāk daudz. Es nevarētu būt labs vīrs un labs tēvs, un tas nebija labi. Tātad, es tikai apsolu 250 lappuses gadā 4. sējumam. Knuta programmatūras Bībeles bhaktām, tostarp Bilam Geitsam, šīs lapas nevarēs parādīties pietiekami drīz.
Kas attiecas uz Knuta nelokāmo pārliecību par sava ilgtermiņa mērķa sasniegšanu, šķiet, ka bioloģija ir viņa pusē. Viņa mātei ir 87 gadi, viņa ar veselību un joprojām strādā nekustamo īpašumu biroja vadībā. Viņa tēvs, kurš viņu aizsāka ceļā uz datortipogrāfiju, nomira 62 gadu vecumā. Tomēr šis digitālais patriarhs secina: mana tēva tēvs nodzīvoja 97 gadus, tāpēc es ceru viņam sekot.
Pirms Knuts sasniedz vecumu, kas nepieciešams, lai pabeigtu visus savus publicēšanas plānus, viņam, iespējams, nāksies saskarties ar kārdinājumiem, kas nāk ar slavu. Divu lappušu garā žurnāla reklāma vietnei fatbrain.com ar aizraujošu kolāžu vēsta: Vienīgā grāmatnīca pasaulē, kurā Donalds Knuts pārspēj Džonu Grišemu par miljardu. Šis varētu būt pirmais komerciālais apliecinājums Knuta ikoniskajam statusam digerati vidū. Vai šāda atzīšana novedīs pie uzmanības mēra tieši tad, kad programmatūras gudrais gatavojas atsākt savu ceļu uz savas dzīves misijas pabeigšanu? Tas liek aizdomāties, cik ilgi Mozus varētu būt klaiņojis pa tuksnesi, ja būtu bijuši mūsdienu mediji.