Tietokone – työväline vai tyranni?
TIETOKONEKASKU, joka monia huvittaa ja toisia puistattaa, kuuluu seuraavasti: Useat suurvallat sopivat pisimmälle kehitettyjen tietokoneittensa liittämisestä yhteen auttamaan näitä valtioita ratkaisemaan monimutkaisia ongelmiaan. Suunnattomat tietomäärät kytketään voimakkaisiin toimintayksikköihin. Järjestelmäkokonaisuuden testaamiseksi siihen syötetään ”perimmäinen kysymys”: ”ONKO JUMALAA OLEMASSA?”
Nauhakelat pyörivät ja merkkivalot välähtelevät, kun tähän mennessä monimutkaisin tietokonejärjestelmä tutkii valtavia tietokantoja, yhdistelee ja erittelee tosiseikkoja pyrkiessään käyttämään kaiken mahdollisen kysymyksen ratkaisemiseksi. Muutaman minuutin kuluttua kaikki toiminta lakkaa lukuun ottamatta käyntiin räpsähtävää kirjoitinta, joka ilmoittaa miljardien loogisten päättelyjen lopputuloksen. Vaienneen katsojajoukon pelokkaisiin silmiin näkyy ytimekäs vastaus: ”NYT ON!”
Ihminen suhtautuu tähän kertomukseen samaan tapaan kuin kauneusarvoihin: paljon riippuu siitä, mitä katsoja näkee. Henkilökohtaiset kokemuksesi tietokoneista ovat kenties saaneet sinut loputtomasti ihailemaan niiden kykyjä. Toinen äärimmäisyys on, että saatat tuntea levottoman pelon sekaista vastenmielisyyttä.
Joidenkuiden mielestä tietokone on mekaaninen nero, joka voi heti ilmoittaa paikkojen varaamisesta 10000 kilometrin matkaa varten, auttaa asianajajaa löytämään vaikeaan juttuun liittyvää tärkeää aineistoa ja joka voi joutohetkinään olla varteenotettava vastustaja sakkipelissä. Toisten mielestä tietokone on sokea, erehdyksiin taipuvainen kone, joka sotkee heidän pankkitilinsä, karhuaa heiltä jatkuvasti ajat sitten maksettua laskua ja tallettaa heistä ”muistiinsa” arkaluonteista tietoa, jonka muu maailma voi saada näkyviin vain nappia painamalla.
Mitä mieltä sinä olet tietokoneesta? Haluaisitko tarkastella hieman lähemmin tätä monitahoista elektroniikan ihmettä?
Miksi se kehitettiin?
Kautta historian ihminen on yrittänyt parantaa kykyjään toistuvien työvaiheiden nopeuttamisessa tai poistamisessa. Työtä säästävät mekaaniset laitteet ovat jo vuosikausia helpottaneet monia ruumiillisia töitä, kuten kyntämistä, kävelemistä ja tavaroiden valmistusta. Kauan aikaa ajateltiin kuitenkin, että ajatustoimintoja, miten toistuvia ne sitten olivatkin, ei voitaisi automatisoida.
Ottakaamme esimerkiksi tehtailija, jonka tarvitsee laskea yhteen joukko lukuja saadakseen selville nykyisen varastotilanteensa. Alkujaan tämä laskelma oli täysin ajatustyötä. Kun yhteenlaskukone ja nykyaikaiset laskimet tulivat, varsinainen laskeminen automatisoitiin, vaikkakin tietojen syöttö pysyi käsityönä. Laskinta käyttävän ruumiinliikkeistä tuli prosessin hitain vaihe. Kyllästyminen ja huolimattomuus vaikeuttivat osaltaan laskennan suorittamista.
Voitaisiinko suunnitella kone, joka ”lukisi” numerot, suorittaisi tavallaan numeronäppäinten painamisen, päättelisi, pitääkö lisätä vai vähentää, ja sitten kirjoittaisi lopputuloksen? Se voitiin! Tietokoneeseen pystyttiin syöttämään suoraan tietoa joko reikäkorttien tai magneettinauhan välityksellä tai jopa siten, että optinen lukija ”tutkii” suoraan alkuperäisen tositteen. Mutta miten kone tietäisi, mitä tehdä luvuille?
Vastauksen toi koneeseen tallennettu ohjelma. Yhteenlaskukone tai laskin kykeni suorittamaan vain yhden tai kaksi toimintoa jokaisella näppäimen painalluksella, kun taas tietokone, jossa on tallennettu ohjelma, toisin sanoen ”muisti”, saattoi toimia käskyjen sarjan ohjaamana käyttäen monia itsenäisiä reittejä sen mukaan kuin se eritteli syöttötietoja. Kun tietokoneen muistin tallennuskyky ja nopeus lisääntyivät, avautui henkeäsalpaavia mahdollisuuksia.
Tietokoneen laajempia sovellutusmahdollisuuksia
Voitko kuvitella olevasi tehtailija, joka pohtii näitä mahdollisuuksia? Saattaisit päätellä: ’Jos kone pystyy laskemaan yhteen sen minkä tuotamme ja vähentämään sen minkä myymme, miksi emme voisi antaa sen pitää kirjaa varastostamme ja ”kertoa” meille, kun varastomäärä laskee alhaiseksi. Vielä parempi olisi, että se kertoisi meille, milloin nopeasti vaihtuvien tavaroiden määrä laskee alle kahdensadan ja hitaasti vaihtuvien tavaroiden määrä alle kahdenkymmenen. Mutta hetkinen! Joinakin aikoina vuodesta tavaroiden menekki on tavallista suurempi. Ilmoitetaan sille viime vuoden myyntiluvut ja annetaan sen kertoa, mitä on joka viikko odotettavissa. Me tiedämme, mitä yhtiömme eri osastot tarvitsivat viime vuonna. Tämän tiedon avulla tämä kone voisi tehdä aikataulun samojen määrien lähettämisestä automaattisesti tänä vuonna. Voisiko se ”lukea” tilauksen, jakaa sen osiin ja kertoa meille, milloin tuotanto pitää aloittaa, jotta tavarat olisivat ajoissa valmiit? Voisiko se . . .?’
Tietenkin se voi. Nykyisin tietokone tekee tämän ja paljon muutakin monissa yhtiöissä. Mahdollisuuksia rajoittavat ainoastaan tietokoneen käytettävissä oleva aika, sen teho ja laitteisto sekä käyttäjän mielikuvitus ja kekseliäisyys.
Yhä nopeampia
Havainnollistaaksemme nykyaikaisten tietokoneiden nopeutta voimme kuvitella konttoristia, jonka tehtävänä on laskea yhteen 100000 seitsemännumeroista lukua. Jos nämä luvut kirjoitetaan ykkösen rivivälillä standardikokoiselle arkille, kymmenen saraketta riville, ne täyttäisivät noin 150 sivua. Ahkerasti työskentelevälle ihmiselle riittäisi töitä lähes 28 tunniksi, jos hän käyttää laskinta, syöttää siihen seitsemän numeroa ja painaa yhteenlaskunäppäintä kerran sekunnissa. Miten masentavaa olisikaan, jos tietokone alkaisi saman työn samanaikaisesti! Ennen kuin ihminen painaisi ensimmäisen kerran yhteenlaskunäppäintä, tietokone olisi jo kirjoittamassa lopputulosta!
Nopea tietokone työskentelee kuten mikä tahansa kone – väsymättä tai kyllästymättä ja oikein ohjelmoituna käsittämättömän täsmällisesti. Mutta entä kustannukset? Kun sadantuhannen laskutoimituksen suorittaminen tietokoneella maksoi 1950-luvun alkupuolella noin viisi markkaa, saman työn hinta on nykyisin vähemmän kuin viisi penniä. Uudet ”kuplamuistit” saattavat tarjota mahdollisuuden pienentää tietokoneen muistilaitteet tuhannenteen osaan nykyisestä, ja insinöörit näkevät mahdolliseksi sijoittaa kokonaisen tietokoneen muistilaitteen puolen senttimetrin pituiselle metallisirulle!
Saako tämä sinut tuntemaan pelkoa? Tuntuuko sinusta samalta kuin eräästä tutkijasta, joka tuli siihen johtopäätökseen, että muutaman vuosisadan kuluttua ainoa toivomme on, että tietokoneet suvaitsevat pitää meitä lemmikkieläiminään? Tuleeko tietokoneista meitä hallitsevia tyranneja? Etsiessämme vastausta on varmasti aika tarkastella niiden rajoituksia.
Tietokoneiden rajoituksia
Niin kunnioittavaa pelkoa herättäviä kuin tietokoneen kyvyt ovatkin, se on silti kone. Britannica-tietosanakirja sanookin sattuvasti: ”Tietokoneella ei ole harkintakykyä tai tervettä järkeä, ja sille täytyy ohjelmassa antaa pikkutarkat ohjeet siitä, miten kaikki mahdolliset tilanteet tulee käsitellä.” Kirjoittaessaan tietojenkäsittelyä ohjaavaa käskysarjaa nimenomaan ohjelmoijalla täytyy olla siihen tarvittava mielikuvitus ja päättelykyky. Tietokone ei voi sen enempää kuin mikään muukaan kone tehdä enempää tai vähempää kuin noudattaa ohjelmoijan sille määrittämää toimintatapaa. Se pystyy päättelemään (jos sen on tarkoitettu päättelevän), onko jokin lause väärin tietokonekielen sääntöjen mukaan. Mutta se ei pysty päättelemään, onko lause loogisesti oikein vai väärin haluttuun tulokseen pääsemiseksi.
Suuri osa ohjelmoijan työstä on testaamista, loogisten ja muiden virheiden poistamista, joita tietokone ei huomaa. Tämä tapahtuu kokeilemalla ohjelmaa varta vasten valmistettua tietoaineistoa käyttämällä ja vertaamalla tietokoneen tulostetta ennalta tiedossa oleviin oikeisiin tuloksiin. Voit ilmeisestikin havaita, että koska koneelta puuttuu täysin arvostelukyky, tietokonejärjestelmä on täysin riippuvainen ohjelmoijasta. Tämä elektroniikan ihme on ”nopea idiootti”, kuten eräs ohjelmoinnin opettaja sattuvasti sanoi!
Tietokone toimii käskyjen mukaan sokeasti kokematta mitään tunnonvaivoja väärinteoista. Tämän vuoksi ohjelmoija voisi saada tietokoneen toimimaan ennalta halutulla tavalla panemalla sen muuttamaan toimintaansa jonkun anomusta jättävän etu- ja/tai sukunimessä olevien kirjainyhdistelmien mukaan. Tarjolla on myös mahdollisuus, että epärehellinen ohjelmoija panee tietokoneen toimimaan henkilökohtaiseksi hyödykseen. New York Times mainitsi 3. heinäkuuta 1977, että tietokoneen avulla tapahtuvien rikosten kustannukset ovat nyt arviolta 300 miljoonaa dollaria (1200 milj. mk) vuodessa, ja keskimääräinen saalis on 500000dollaria (2000000 mk)!
On selvää, että tietokone ei voi tehdä enempää eikä paremmin kuin ihminen; se voi ainoastaan tehdä jotakin nopeammin. On kiinnostavaa, mitä aikakauslehti Natural History sanoi tästä verratessaan ihmistä ja tietokonetta: ”Jos nykypäivän tietokoneista tehtäisiin kooltaan suurempia, niin ihmisen aivojen muistikapasiteetin omaava kone kuluttaisi sähkövirtaa noin miljardi wattia – puolet Grand Coulee -padon voimalaitoksen tehosta – ja täyttäisi suurimman osan Empire State Buildingin tilavuudesta. Se maksaisi noin 10 miljardia dollaria. Koneella olisi hämmästyttävä tekoäly, mutta se olisi ainoastaan kömpelö jäljitelmä ihmisaivoista.” Tämä lehti sanoo lisäksi: ”Maailman tehokkaimmat sähköaivot ovat lähes joka suhteessa toivottoman puutteellisia verrattuina ihmisen pääkallon sisällä olevaan kahteen ja puoleen litraan harmaata ainetta.”
Toisin kuin ihminen tietokone ei voi vähäisimmässäkään määrin poiketa siitä, mitä se on ohjelmoitu tekemään. Haluaisitko ymmärtää tämän paremmin? Asian valaisemiseksi saattaa riittää katkelma yksinkertaisesta tietokoneohjelmasta.
Tietokoneen ohjelma
Tietokoneohjelma antaa tietokoneelle kaikki ohjeet siitä, millaista tietoa koneeseen syötetään, mitkä ovat käsittelysäännöt ja missä muodossa tuloste halutaan. Jos tarkastelemme jälleen esimerkkiämme tehtailijasta, kirjoittakaamme ohjelman katkelma, joka saattaa ajan tasalle hänen valmistevarastonsa kirjanpidon päivän myynnin ja tuotannon jälkeen. Ohjelmointikieli on COBOL (Common Business Oriented Language), joka on tarkoitettu kaupallishallinnollisia sovellutuksia varten. Tiedot näyttävät seuraavanlaisilta:
TAPAHTUMAT
00012TEHTY0120
00150TEHTY0032
00201TEHTY0088
00201MYYTY0035
00208TEHTY1134
00301TEHTY0078
00301MYYTY0012
00404TEHTY1234
VANHA KANTATIEDOSTO (EILISPÄIVÄN)
00012KUMITIIVISTE 00700150
00150METALLISARANA01201200
00201MESSINKIKAHVA00320030
00208PUURUUVI 25MM00980500
00301IKKUNANPUITE 04300090
00404NAULA 50MM 1560999
Edellä olevat tiedot voidaan määritellä ohjelmassa seuraavasti (Huomaa, että jokainen X ja 9 edustaa yhtä merkkipaikkaa):
O1 TAPAHTUMAKORTTI
05 TAP-VARASTONUMERO PIC XXXXX.
05 MYYTY-TAI-TEHTY PIC XXXXX.
05 KPL-LUKU PIC 9999.
01 VARASTOTIETUE
05 VARASTONUMERO PIC XXXXX.
05 VARASTONIMIKE PIC X(13).
05 KPL-VARASTOSSA PIC 99999.
05 MINIMI-KPL PIC 999.
Kun jokainen tapahtuma kirjataan oikeaan paikkaansa kantatiedostossa, käytetään seuraavia COBOL-kielisiä lauseita:
IF MYYTY-TAI-TEHTY IS EQUAL TO ’TEHTY’
ADD KPL-LUKU TO KPL-VARASTOSSA.
IF MYYTY-TAI-TEHTY IS EQUAL TO ’MYYTY’
SUBTRACT KPL-LUKU FROM KPL-VARASTOSSA.
Uusi kantatiedosto on tapahtumien kirjaamisen jälkeen seuraavan näköinen:
00012KUMITIIVISTE 00820150
00150METALLISARANA 01233200
00201MESSINKIKAHVA 00373030
00208PUURUUVI 25MM 02114500
00301IKKUNANPUITE 04366090
00404NAULA 50MM 16834999
[Englanninkieliset sanat ovat COBOL-kielen osia, jotka suomalaisenkin ohjelmoijan täytyy kirjoittaa englanniksi: PIC on lyhennys sanasta picture ’kuva’. Lauseet kuuluisivat suomeksi: Jos myyty-tai-tehty on sama kuin ’tehty’, lisää kpl-luku kenttään kpl-varastossa. Jos myyty-tai-tehty on sama kuin ’myyty’, vähennä kpl-luku kentästä kpl-varastossa.]
Tämä englannin ja suomen sanoista koostuva ohjelma ei varsinaisesti ohjaa tietokonetta, vaan se täytyy ensin muuntaa koneen koodikielelle, mikä tapahtuu ”kääntäjäksi” nimitetyn erikoisohjelman avulla. Tietokoneohjelmassa saatetaan käyttää sanoja ”VARASTONUMERO” ja ”KPL-LUKU”, mutta näillä ei ole mitään merkitystä koneelle. Se käyttää niitä vain löytääkseen käsittelyn aikana tietyt alueet muistista. Nämä sanat voitaisiin joka paikassa ohjelmassa korvata nimillä ”MATTI” ja ”MAIJA”, ja tuloksena olisi täsmälleen sama konekielinen koodi. COBOL-kieli on suunniteltu lukijaa ajatellen.
Mahdollisia pulmia
Kun edellä olevaa ohjelmaa käytetään, on olemassa monia virhelähteitä, joihin ei ole vielä varauduttu. Mitä tapahtuisi jos kortille olisi lävistetty ”MYYTY”-sanan asemesta ”MYTTY”? Entä mitä tapahtuisi, jos luku olisi ollut yhden paikan verran oikealla? Entäpä jos numerokentässä olisi ollut ”12X4” luvun ”1234” asemesta? Täsmällinen ystävämme tietokone eksyisi pahan kerran. Lisäksi mitä tapahtuisi silloin, jos erehdyksestä tai todellisuudessa varastossa oleva määrä ylittäisi 99999 tai luvut olisivat oikeita mutta kolme päivää vanhoja? Hyviä tulostietoja ei voida saada ilman hyviä syöttötietoja. Tietokoneväen keskuudessa tämä ajatus on antanut aiheen selittämättäkin selvään lausahdukseen: ”Roskaa sisään – roskaa ulos.”
Ohjelmoijan täytyy ottaa mielikuvitus avukseen voidakseen ajatella kaikkia mahdollisia virheitä ja laatia sinnikkäästi varokeinoja niiden varalta. Julkaisu The Mythical Man-Month kuvailee asian näin: ”Suurten linjojen suunnitteleminen on huvia; vaikeasti havaittavien pienten virheiden selville saaminen on pelkkää työtä. Kaikkeen luovaan toimintaan liittyy uuvuttavaa, pitkäveteistä, huolellisuutta vaativaa työtä, eikä ohjelmointi ole mikään poikkeus.” Ohjelmoijan parhaista ponnisteluista huolimatta jokaisen tietokonejärjestelmän tuottamia tulosteita täytyy ihmisen silti tarkastaa ja korjata tarpeen vaatiessa. Sen enempää tietokonetta kuin ohjelmoijaakaan ei tulisi pitää erehtymättömänä.
Oikea näkemys tietokoneista
Tietokone, jonka kyvyt nopeudessa ja tarkkuudessa ovat suuret, on erinomainen orja ihmisen palvelukseen. Kun sitä ohjataan oikein, se voi poistaa häneltä suuren osan toistuviin töihin liittyvästä ikävystymisestä ja turhautumisesta. Se voi vapauttaa hänet käyttämään hengenkykyjään. Mutta koneeseen ei voida ohjelmoida inhimillisiä empatian, myötätunnon, aloitekyvyn, ymmärtämyksen ja mielikuvituksen ominaisuuksia. Ihmisen, joka on koneen isäntä, täytyy ohjata sitä, tarkastaa sen työtä ja tarvittaessa muuttaa sen toimintoja.
Tietokoneen kaltaiset koneet saattavat suoriutua kunnioitusta herättävistä teknisistä tehtävistä. Ne ovat kuitenkin vain sen soveltamista eikä parantelemista, mitä Jumala on luonut. Tietokone on kone, eikä ihmisen tule pelätä sitä tai osoittaa sille kunnioitusta, vaan käyttää sitä vapautuakseen joistakin taakoista, jotta hän voisi nauttia vapaammin ja täydemmin elämisen ilosta.