Tietojenkäsittelytiede (tai tietotekniikka ylipäätään) tuntuu kaltaiselleni maallikolle pelottavan tekniseltä ja vaikeasti lähestyttävältä: on loogista porttia, muuntajaa, muuttujaa ja ties mitä pakettikytkentää. Silti tietokoneet ovat nykymaailman ytimessä, emmekä voisi käytännössä toimia ilman niitä. Toisin sanoen, kai niistä nyt pitäisi jotain ymmärtää sen lisäksi että osaa pistää koneen päälle ja kirjoittaa kirja-arvosteluja nettiin. Linda Liukkaan Nähdä maailma hiekanjyvässä on tarkoitettu juuri minun kaltaisilleni ihmisille. Kirja kertoo, mitä tietojenkäsittelytiede oikeastaan on, mutta sen näkökulma on epätavallinen. Kirja tarkastelee asiaa inhimillisten tarinoiden ja kokemusten kautta, mikä kuulostaa ehkä erikoiselta, mutta palaan vielä tuonnempana lähestymistavan nerokkuuteen.
Sain kirjan alkupuoliskolla jonkinlaisen valaistuksen. Luin vuonna 2021 kirjan In the Land of Invented Languages, joka kertoo miksi ja miten ihmiset ovat luoneet keinotekoisia kieliä. Usein tavoitteena on ollut luoda täydellisen looginen kieli, joka pystyy kuvaamaan maailmaa tarkkuudella johon luonnollinen kieli ei pysty. Kirjassa ei menty varsinaisiin ohjelmointikieliin, mutta yhteys tulee selväksi kun Liukas pohtii Gottfried Leibnizin (1646–1716) ja George Boolen (1815–1864) haaveita universaalista kielestä, jolla kuvata maailmaa. Leibniz kehitti binäärilukujärjestelmän, ja Boole puolestaan kiteytti työnsä logiikkaan, jossa jokaisen väittämän arvo voi olla joko tosi tai epätosi, ja väittämien todentamiseen käytetään sanoja, kuten JA, TAI, EI ja JOS. Tästä keksinnöstä juontuvat logiikkataulut olivat vielä kaukana tietokoneista, mutta veivät osaltaan tärkeää työtä eteenpäin.
Haave loogisesta kielestä tuli aavistuksen lähemmäksi kun Ada Lovelace (1815–1852) huomasi aikalaistensa joukossa ensimmäisenä, että numerot voivat edustaa logiikkaa, ja ennen kaikkea, että logiikka voi edustaa mitä tahansa, esimerkiksi musiikkia, taidetta tai matematiikkaa – jos ne vain voidaan koodata sopivalla tavalla. Tämän neronvälähdyksen Lovelace sai 1800-luvun alussa kehitetystä Jacquard-kudontakoneesta, joka käytti rei’itettyjä kortteja kuvioiden automaattiseen kutomiseen. Ada kehitti tavan käyttää kortteja niin, että kuvioinnin sijasta ne suorittivatkin laskutoimituksia. Hän toisin sanoen kirjoitti ensimmäisen pätkän koodia.
Entä mitä oikeastaan tarkoittaa, että jokin on laskettavissa ja mitä laskenta itsessään on? Ja mikä tärkeintä, voiko minkä tahansa ongelman ratkaista laskennan avulla? Tällaisia asioita pohti Alan Turing 1900-luvun alkupuolella, aikana jolloin tietokoneita ei vielä ollut olemassa. Turingin ideoima ”Turingin kone” perustui puhtaasti matematiikkaan. Se on teoreettinen malli, joka seuraa mahdollisimman tarkkoja sääntöjä, mutta pystyy silti laskemaan kaikki ratkaistavissa olevat laskutoimitukset. Tämä oli mahdollista luomalla tietokoneen viisi verbiä, joilla kone voi laskea minkä tahansa laskettavissa olevan ongelman: ”liiku vasemmalle”, ”liiku oikealle”, ”tulosta ykkönen”, ”tulosta nolla” ja ”poista”. Siinä se, ja niin meillä on pienin mahdollinen kieli.
Kun meillä on kieli, tarvitsemme seuraavaksi tavan kertoa koneelle mitä tehdä. Tätä tarkoitusta palvelee algoritmi – ohjeiden sarja, jota kone voi seurata askel askeleelta. Periaatteessa siis resepti tai kirjoneuleohje ovat myös algoritmeja, mutta ne vaativat toteuttajalta kokemusta ja taustatietoa, minkä vuoksi niitä ei lasketa oikeiksi algoritmeiksi. Tietokoneiden maailmassa algoritmi on algoritmi vain silloin, kun sen esittämät ohjeet voi suorittaa askel askeleelta ilman ihmisen päätöksentekoa, Liukas selventää.
Liukas toteaa, että iso osa nykyistä tietojenkäsittelytiedettä onkin ongelmien luokittelu sillä perusteella, onko ne laskennallisesti ratkaistavissa vai eivät. Kirjassa tietysti vilisee vaikka mitä kiinnostavia henkilöitä ja teknisiä yksityiskohtia, mutta itselleni juuri tämä kielellinen ulottuvuus oli se ahaa-hetki. Koodaus on kuin maailmankielen prototyyppi – pettävän yksinkertainen yhdistelmä kielioppia ja logiikkaa, jolla voidaan lopulta rakentaa kokonaisia todellisuuksia. Haave, josta on unelmoitu jo kauan, ennen kuin kukaan pystyi edes kuvittelemaan mitään tietokoneen kaltaista.
Kirjan toisessa osassa sukelletaan tietokoneen varsinaiseen toimintaan ja sen kehittäjiin. Tässäkin luvussa on tarjolla yllättäviä näkökulmia. Kuinka moni on esimerkiksi miettinyt miltä internet oikeastaan ”näyttää”? Tätäkin kysymystä Linda Liukas on pohtinut opettaessaan lapsille tietotekniikan ihmeitä.
Kirjan älykkyyttä ja vuorovaikutusta käsittelevä kolmas osio oli kuitenkin erityisen vaikuttava. Liukas on juuri saanut lapsen, ja pieni ihmistaimi on oivallinen vertailukohta pohtia, miten meidän aivomme jäsentelelevät ja oppivat tietoa ja miten se eroaa tietokoneista. Tässä osiossa tulee kiinnostavaa tietoa muun muassa isoista kielimalleista ja pohdintaa miltä tulevaisuuden tietokoneet voisivat näyttää – elämältä?
Ajatus, että rajat koneen ja elämän välillä alkavat hämärtyä, ei ehkä olekaan niin kummallinen. On suhteellisen käsittämätön ajatus, että esimerkiksi sienet ovat sähköä johtavilta ominaisuuksiltaan kykeneviä samanlaisiin asioihin kuin tietokoneiden valmistuksessa käytetty pii. Sienet pystyvät esimerkiksi säännöstelemään sähkön kulkua ja muistamaan erilaisia sähkövarauksia. Mutta toisaalta sähkön liikettä olemme mekin. Tietoisuutemme on pieniä sähköimpulsseja neuronien välillä, jotka joko haarautuvat tai eivät – aivan kuten tietokoneiden nollat ja ykköset.
Ehkä suurin oivallus itselleni onkin se, ettei koodaus ole vieras kieli, vaan sukua sille logiikalle, jolla koko todellisuus rakentuu. Mikäpä sen kauniimpi ajatus. Onkin ehkä harmi, että tietojenkäsittely usein nähdään vain teknisen käsitteistön kautta. Liukas kuitenkin onnistuu tavoittamaan kirjallaan laajemman näkökulman, joka tekee lukukokemuksesta paikoin jopa filosofisen. Hieno teos, erityisesti ihmisille, jotka eivät ole mitään tekniikan ihmelapsia.







