Koodi on huonoa

Pohjautuen Nikita Prokopovin erinomaiseen blogaukseen modernista tietokoneohjelmoinnista ja ohjelmistojen kehityksestä, nostan samaa kissaa pöydälle. Hän nostaa esille teknologian absoluuttista tehottomuutta ja hukkaan heitettyjä resursseja. Vaikka aihepiiri on kovin tekninen, itse asia on sangen kansankielinen.

Kuu lähellä, sähköposti kaukana

Olemme kaikki lukeneet miten pikkuriikkisellä laskentataholla saatiin lähetettyä ihminen kuuhun ja takaisin. Moni on ollut töissä 1980-luvun tietotekniikan kanssa ja oppi ymmärtämään mitä koneet tekevät pitääkseen tehtaan pyörimässä tai kirjanpidon kasassa. Tietotekniikka oli korutonta, ohjelmointi oli vaativaa. Käyttö oli toki usein myös turhan vaikeaa mutta sen kanssa tuli toimeen. 1990-luvulla modernit Macintosh- ja Windows-tietokoneet tekivät asioita helpommiksi. Värillinen, graafinen käyttöliittymä auttoi hahmottamaan asioita. Vuoden 1995 graafinen käyttöjärjestelmä vie 30 megatavua tilaa ja muistutti jo laajalti nykypäivän järjestelmiä. Tämän päivän käyttöjärjestelmä vie 133-kertaisen määrän tilaa. Satakolmekymmentäkolme. Nikita Prokopov kysyy onko se kaiken tämän kasvun väärtiä ja olen vastaukssta samaa mieltä: ei ole. Nykytietotekniikka on laajalti osin tuhlailevaa, paisunutta ja tehotonta.

Ei tietenkään ole haitaksi että moni ohjelmointiteknologia on tullut helpommaksi. Nykyään on tarjolla ns. rakennussarjoja (framework) monimutkaisiin ohjelmointeihin. Rakennussarja itsessään on ohjelmoitu modernilla, helpotetulla ns. korkean tason koodilla ja se perustuu laajoihin yleiskirjastoihin jotka yleensä perustuvat toisiin kirjastoihin. Tehokkuus on samaa luokkaa jos Ratinan kauppakeskukseen saisi mahtumaan vain 10 neliötä liiketilaa. Moderni rakentaminen on äärimmäisen tehokasta, kaikki tila otetaan käyttöön ja hukkaa ei katsota sen paremmin neliöissä kuin rakennusmateriaaleissakaan. Tietotekniikalta emme kuitenkaan edellytä tehokkuutta.

Olen nähnyt suomalaisen lääkärin ottaman videopätkän, jossa hän uusi reseptiä eräällä julkisen sektorin järjestelmällä. Pitkiä odotuksia, puolen tusinaa eri ikkunaa, hirmu määrä klikkailua ja naputtelua – ei sitä itkemättä voinut katsoa. Ei toki yksityinenkään sektori mitenkään viaton ole, olen päässyt tutustumaan liiankin moniin paikkoihin ja käytäntöihin, niin pienissä kuin isoissakin ohjelmistotaloissa missä ns. pohjatason koodaajia ei välttämättä talossa enää edes ole ja jos on, heitä on vähän. Tämä osin selittää pilvipalveluntarjonnan suosiota, kun on aivan liian helppoa vain ostaa lisää suorituskykykä kompensoimaan ala-arvoista koodia. Terveydenhuolto, maksuliikenne, kauppa, verotus, uutiset – joka alalla pääasiallinen ratkaisu on mennä sieltä mistä aita on matalin. ”Heitetään rahaa ongelman päälle” on yleinen sanonta. Miksi tehdä hyvää kun rahalla voidaan pyörittää huonoa? Ongelmia ei edes yritetä ratkaista.

Diginatiivi tunari

Nykypäivän yläkoulussa tapahtui taannoin niin, että oppilaiden piti hakea netistä kuvia, tallentaa ne koneelle ja ladata ne koulun sisäverkkoon. Vain yksi kymmenestä oppilaasta osasi sen tehdä. He kyllä osaavat käyttää tablettia ja mobiililaitteita, mutta itse tietotekniikan järjestelmien osaamista ei ole. En tietenkään syytä lapsia tästä, mutta tämä on hyvä esimerkki siitä miten tietotekniikka lisääntyy samalla kun sen osaaminen vähenee. Tällainen ”kyllä kone/järjestelmä/kirjasto/alusta/pilvitarjoaja hoitaa” -tyyppinen asenne on toki merkki siitä että koneet ovat helppoja, mutta myös tuhoisa. Tehokasta koodia pitäisi osata tehdä muuallakin kuin NASAn tai CSC:n kaltaisissa huippuyksiköissä.

Media murehtii täysin aiheellisesti diginatiivin kansan puutteellisista käytöstavoista verkossa. Ehdotan että eipä se diginatiivi välttämättä osaa verkossa paljoa muutakaan. On hyvin mahdollista että tässä maassa on kaltaisiani, aiheesta huolestuvia ihmisiä yksi bussilastillinen ja muiden mielestä tilanne on ihan jees. Katkerasti väitän kuitenkin seuraavaa: katsoi asiaa ympäristön, talouden tai elinikäisen oppimisen kannalta, mielestäni tämä tie ei vie voittoon.

16 vastausta artikkeliin “Koodi on huonoa”

  1. Olin aikoinaan työelämän alussa cobol-ohjelmoija. Siitä sain ymmärryksen¨tietoteknoiikan kiemuroihin jo 70- luvun lopussa. Kuitenkaan sen antama hyötyä liittyi vain yleiseen tietotekniikan käytön ymmärrykseen- siitä oli todella hyötyä, ohjelmoinnista ei.

    Suurin ongelmatiikka tänään liittyy siihen, että ne tärkeät koodattavat( ohjelmoitavat) systeemit tarvitsevat kokemusta oikeasta elämästä, mikä sitten käännetään koodikiellelle. Ja nyt ei puhuta pelibusineksesta, joka on jalat irti normaalista tietotekniikan käyttötarkoituksesta.

    Nyt yhteiskuntaa ohjataan tietotekniikan kehityksen antamin uusin mahdollisuuksin- ei tavallisten ihmisten tarvitsemien helppokäyttöisien palveluiden.

    Tulemme palaamaa perusasioiden juurille, kun tietotekniikka tulee liian mutkikkaaksi tavalliselle ihmiselle.

  2. Vanhoina hyvinä aikoina prosessoritehoa ja muistitilaa oli vähän. Yksi ohjelmistosuunnittelija pystyi koodaamaan pienen näppärän ja yksinkertaisen ohjelmiston, joka suoritti jonkun hyödyllisen tehtävän. Koodi tehtiin osin assemblerilla osin vaikkapa PLM:llä.

    Jos tuli tarve muuttaa ohjelmistoa (vaikkapa laiteympäristön muutoksen vuoksi)niin sekään ei ollut ylivoimaista.

    Nyt usein samaa ohjelmistoa tekee useampi ohjelmistosuunnittelija ja tuloksena on bugeja vilisevä mammutti. Jos bugien määrä saadaan lopulta siedettäväksi, niin ainakin ohjelmiston muuttaminen on lähes ylivoimaista.

    Pieni on kaunista.

  3. Pieni ohjelma, vähän toimintoja.
    Tää kymppi toteuttaa samaa kaavaa kuin winkku 95.
    Toimintoja ja klikattavaa on esim tekstinkäsittelyssä enempi ku oli ysivitosessa kaikkiaan. Siis noin suurin piirtein ja pienin kääntein.

    1. Pieni ohjelma, vähän toimintoja, mutta helppo käyttää. Vaikkapa nykyisessä Officessa menee aikaa hukkaan etsiessä ja valitessa ihan normaaleja toimintoja, jotka ennen löytyivät helposti.

  4. Eipä se cobol ole maailmasta vielä mihinkään hävinnyt. Aika lähelle optimia päästään ihan wanhalla C:llä, jonka henkinen seuraaja on Go. Näillä pääsee jo varsin tehokkaalle tasolle – mutta suosio ei ole hurjaa. Toki optimoinnista kaikki ei ole koodia, iso osa on tietokantaoptimointia. Siellä tehdään isoja asioita jos osataan.

    Yllättävän moni asia on Windows 10:llä hitaampaa ja huonommin tehtävissä kuin vaikkapa Windows NT 3.51:llä, jota käytin aikanaan hyvin kauan, se on vähän Windows 95:ta vanhempi.

    1. Olin utelias ja höntti. Tosin tiesin, ettei Windows kymppiä kannata ahtaa kännykkään. Ostin kuitenkin Lumia 950:n, joka syö akkua ja varsinkin sen latausta. Linuxia siihen tuskin saa millään vaihdettua.

  5. Itse olen 95:lla oppini hakenut ja nyt olen harmain hiuksin jatkuvaan muutokseen eikä valmistä vieläkään.
    Avaan tietokoneeni salasanalla – näppään sähköpostia – pitää avata kännykkä salakuviolla ja hyväksyä sähköpostin avaus – kyllä on kehitys edennyt?

  6. Kokemuksia automaattisen tietojenkäsittelyn alkuhämärästä.

    70-luvun alussa koodasin Makkatatalossa VRn ATK osastolla, kieli oli assembler ja myöhemmin PL/1. Assemblerit koodattiin kaavakkeille tikkukirjaimille ja kymmenpäinen lävistäjäjoukkue lävisti reikäkorteille. Mutkikkaammassa listausohjelmassa saattoi olla parituhatta korttia, kun läjä joskus tipahti lattialle sikinsokin oli itku lähellä.

    Sellainen pysyvä muisto jäi noilta ajoilta että koulussa opittu ”kaunokirjoitus” tykkänään unohtu, tänäpäivänä vielä kaiken kiirjoitan tikkukirjaimilla.

  7. Wikipedia tietää kertoa, että yli 25 vuotta vanhoilla Digitalin laitteilla ja ohjelmilla pyöritetään yhä teollisuutta, voimaloita, yms. Uusi tekniikka on saatavilla, mutta ei tuo autuutta.

    Tai ehkä oleellisempana: 25 vuoden aikana ei ole tekniikka tuonut mitään sellaista jolla tehdas suoriutuisi töistään paremmin. Ajattelun aihetta.

    1. Minäkin tein joskus yli 25 vuotta sitten ohjelmia PDP:llä, mutta en itse PDP:lle vaan mikroprosessoreille. Ne mikroprosessorit olivat silloin uutta.

  8. Kaikki ei ole myöskään muuttunut. Puhutaanpa tiedonsiirrosta (mm.) kaupan alan yritysten välillä. Yhäkin käytetään paljon EDIFACT-muotoa. Se on yllättävän robusti, vaikka on 30 vuotta täyttänyt.

    Koska trendikkyys, sitten päätettiin että ehei, nyt siirrytään XML:ään. Nyt täysin saman datan siirtäminen vie moninkertaisen määrän kapasiteettia.

    Ja jos se ei riittäisi, XML:n sisään usutetaan vielä toinen formaatti ja paketoidaan ne hienoksi ja kas kummaa, nyt käytetään satakertainen määrä kapasiteettia samaan tietoon.

    1. XML;hän tehtiin, jotta tiedonsiirto eri järjestelmien välillä onnistuisi, eli standardiksi. Kyllähän standardit ovat hyviä. Kukaan tuskin haluaisi palata siihen aikaan kun jokisella kännykällä oli erilainen laturinpistoke. Ja eikös XML ole hyvin simppeliä?

  9. Mun koodit rajoittui Sharp MZ-721 tarjoamaan kokonaisuuteen.
    Kieli oli muistaakseni joku Basic tai joku muu.
    (So there was a lot of languages adapted for this machine (more than five versions of BASIC, assemblers, Pascal, Lisp, C, Fortran, Comal, Forth, & others). )
    Siitä on jo yli 30 vuotta.
    Puuha oli mielenkiintoista ja aikaa vievää.

  10. Minusta ongelmana ylipäänsä on se, että käyttöliittymät tehdään surkeiksi ja keskeneräisiä ohjelmistoja ostetaan ja aletaan käyttää. Esimerkkinä vaikka Tampereen kirjastojen uusittu tietojärjestelmä, joka ei alkuun toiminut oikein mitenkään. Myös verkkosivuilla törmää aivan toimimattomiin ratkaisuihin, vaikka Aamulehden verkkopalvelussa.

    Windows itsessään näyttää myös olevan sellainen viritelmä, että sitä ei olisi kannattanut ottaa laajaan hyötykäyttöön. Mutta raha ratkaiseen ja kun MIcrosoft tuotteisti sen ja kytki mukaan kaikenlaisia palvelinalustojen palveluita ja sai melekin kaikki tietokoneiden valmistajat talutusnuoraansa, niin sen sotkun kanssa sitten on pitänyt sukupolvien pärjätä. JOs Linus Torwaldsilla olisi ollut koodin kehittämisen lisäksi enemmän kaupallista kunnianhimoa tai ahne apuri, niin olisimme saaneet paremmin toimivat järjestelmät. Mutta niinhän se usein taitaa olla, että tiedemies ja liikemies ovat eri asia.

    Tallennustilasta tuskin kannattaa olla huolissaan, koko ajan tulee uusia ratlkaisuja. Itse asiassa ennenhän tietokoneesta loppui joskus tallennustila, nyt sellainen tilanne ei helposti tule eteen. Tallennustilan kasvu on ollut paljon koodin paisumista nopeampaa.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *