14. kesäkuuta 2020

Knuth



Donald Knuth on esimerkki tietokonemiehestä, joka rikkoo ennakkokäsityksenne.

Voi olla, että nero John von Neumann antoi väriä jopa ”tohtori Outolempi” -elokuvan kylmän sodan haukalle. Voi olla. Elämäkertatiedoistaan päätellen tämä aika varhain kuollut Turingin kaveri ei ollut kaikin puolin miellyttävä henkilö. Toisaalta unkarilaistaustaisena hän oli kokenut kaikenlaista jo varhaisessa iässä.

Varmistin käsitykseni etukäteen. Donald Knuth on elossa olevista ja kaikista ohjelmoinnin uranuurtajista arvostetuin. Hänen algoritmiikan kehityksen kannalta ratkaiseva teossarjansa tietokoneen ohjelmoinnin taiteesta, "The Art of Computer Programming”, alkoi ilmestyä 1969, eikä ole vielä valmis. Hän oli välillä Stanfordin ja Oxfordin professorina, on saanut kaikki mahdolliset palkinnot ja kuuluu kaikkiin ajateltavissa oleviin seuroihin Royal Societysta alkaen.

Hän on rakentanut kotiinsa urut ja säveltänyt kreikankieliseen tekstiin perustuvan teoksen Pyhän Johanneksen ilmestysestä. Kantaesitys oli Ruotsissa toissa vuonna.  Hän on aktiivinen seurakunnan jäsen (luterilainen), ja hyllyssäni on hänen kirjansa 3:16, jossa yksi ja sama raamatun jae, aina eri Raamatun kirjoista, on toteutettu silmiä hivelevän kauniilla typografialla – ja samalla löydetty ällistyttäviä yhteyksiä jonkin Samuelin kirjan ja Paavalin kirjeen kesken ja siis lyöty kiilaa ”satunnaisuuden” käsitteeseen. 

Niille, joille aito perehtyminen Knuthin suureen teokseen on samalla tavalla vältettävä asia kuin Feynmanin korkeakoulufysiikka I-III, miehen työ on tuttu hänen kehittämästään ladontaohjelmasta TeX, nykyisin käytännössä LaTeX. (Viimeinen kirjain on kreikan ’khi’ eli äksän pitäisi ulottua viivan alle.)  Vuosikymmeniä käytännössä kaikki matemaattinen, fysikaalinen, tietokonetieteellinen, kemiallinen ja vastaava teksti on toteutettu tuolla järjestelmällä. Eksponentit pysyvät paikallaan eivätkä rivit luistele yhteen.

Jokin LaTex tulee ainakin Linuxissa paketissa mukana. Jossain toisessa, vaihtoehtoisessa elämässä opettelisin kunnolla sopivan tekstieditorin ja etenisin siitä TeXiin – mutta tuotan melkein pelkästään kirjotusta, ja lyöntivirheistä pidän. Kieltämättä käytin UltraEditiä ja RegEx -komentoja, kun kauan sitten latasin sodassa kaatuneiden henkilötiedot katsoakseni, kasaantuvatko ne. Siinä oli paljon työtä, mutta Excel-tiedostot ovat hyviä olemassa. Ja kasaantumisesta en tiedä vieläkään. Yli puolet kaatuneista oli mainittu työmiehinä tai maanviljelijöinä, ja menneen ajan kotipaikkaa ja asuinpaikkaa koskevat tiedot ovat tunnetusti epävarmoja. Opiskelijakin pysyi kirjoilla vanhassa kotikunnassaan, vaikka olisi asunut yliopistokaupungissa vuosia.  

Lukekaa Knuthista lähemmin mainion Quanta-magazinen artikkeli. Lukekaa muutenkin tuon lehden julkaisemaa. Tekstien vuoksi on nähty vaivaa, eikä ihan äkkiä käy kuten Naturen tai Sciencen jutuissa, että maallikkolukija putoaa kerrassaan kärryiltä, tai varsinaisissa yleisölehdissä, joissa tieteelliseksi väitetty juttu on enemmän tai vähemmän silkkoa sisältä.

C.P. Snown kahta kulttuuria kuvaava kirjoitus on eräänlainen klassikko. Se pitää yllä virheellistä mielikuvaa luonnontieteiden erillisyydestä ja vaikeudesta. Donald Knuth olisi samaa mieltä. On yksi kulttuuri, joka perustuu puhuttuihin (ja sitten kirjoitettuihin) kieliin. Eli tiede, myös luonnontiede, on osa kirjallisuutta, ja kirjallisuus on aina vanhan, kömpelön suomennoksen mukaan kaunokirjallisuutta.

6 kommenttia:

  1. Aikanaan olen Knuthin kirjoja lueskellut ja annan niistä korkeat pisteet. Latexia käytän edelleen lähes päivittäin ja sillä saa huippuluokan matemaattisen tekstin ulkoasun. Se on toki vaivalloisempi käyttää kuin Word mutta silläpä ei saakaan mitään asiallisia kaavoja aikaan. Leipätekstiä voi kirjoittaa kuin vettä vaan.

    VastaaPoista
  2. Minä luulen, että Knuthin kirjasarjaa julkaistiin jo vähän aikaisemmin. Yhtä kaikki Helsingin yliopiston tietojenkäsittelyopin laitoksella Martti Tienarin cumlaude kursseilla 1970-luvun vaihteessa Knuthin algoritmien maailma oli keskeisenä luentosisältönä. Siellä opittiin tarkastelemaan prosessja algoritmeina.

    Kun menin palkkatyöhön atk-alalle sitten 1972, Knuthin algoritmitiedettä käytettiin hyväksi tietorakenteiden suunnittelussa. Teimme systeemiä, jossa käsiteltään aikariippuvaisia tietoja. Knuthin määrittelemä binaaripuu sopi tuohon hyvin: puun juuressa on ikuisesti voimassaolevat tiedot ja siitä aika sitten pirstoutuu alipuihin, aina vaan pienempiin osiin. Ja kun kun puuta käy läpi tietyllä logiikalla, tiedot tulevat käsitellyiksi "oikeassa" järjestyksessä. Kyseistä systeemiä ajettiin tuotannossa yli kaksikymmentä vuotta.

    Jälkeenpäin ajatellen tuo aikakäsitteen ilmaiseminen binaaripuuna tuntuu kiehtovan filosofiselta idealta.

    Tienarin luennoilla muuten tuli tutuksi myös Noam Chomsky, joka monella saattaa yhä olla tuntematon tiedemies.

    VastaaPoista
    Vastaukset
    1. Chomsky tuli tutuksi formaalien kielten lisensiattikursseilla (lisensiaatin tutkinto kyllä sitten jäi tekemättä, kun työt veivät).

      Vasta paljon myöhemmin opin tuntemaan Chomskyn toisen puolen: hänen melko eksoottiset poliittiset mielipiteensä. Ne ovat sitten jo toinen juttu.

      Noilla samoilla kursseilla käsiteltiin muuten myös kieliä, joiden "lauseet" ovat puita - dendrolanguages.

      Poista
    2. Knuth ei ollut tiedemies, vaan teknologi. Eikä matematiikkakaan ole tiede, vaan teknologia.

      Poista
    3. 'Computer science', sikäli kun 'science' tarkoittaisi luonnontiedettä, on sielua järsivä oksymoroni. En ammu itseäni kuitenkaan sen takia. Uskon, että Jeesuslapsi on annettu maailmaan väärentämään vääryydet ilokissoiksi.

      Poista
  3. Donald Knuth on huima jannu. Olen seurannut häntä suurinpiirtein LaTexistä lähtien (mikä ei tietenkään tee Tompasta huimaa jannua :-) )

    VastaaPoista