Ajk kotisivu 70

Asko Korpela
Muistelmat

15-Kielet o 00-Muistelmat o 17-Oppikirjat
Anna palautetta
Muistelmat

16 Ohjelmointi puoli elämää

  1. Ensin oli FORTRAN
  2. Mitä kaikkea olen sitten ohjelmoinut?
  3. Kaikki numeroiksi ja grafiikaksi
  4. Turbo Pascal alusta tähän päivään
  5. Kaksi ulkopuolista ohjelmointiprojektia
  6. Arkipäivä numeroiksi
  7. Kuvia

Jos johonkin niin tähän sopisi minun tapauksessani fraasi 'elämää suurempi asia', mutta jos pysytään totuudessa' niin oikea sana on: ohjelmointi on minulle puoli elämää. Olen tosissani siinä käsityksessä että siitä lähtien, kun aloin ohjelmoida eli joskus 1961, noin puolet työajasta olen ohjelmointiin käyttänyt. 20170308

Ensin oli FORTRAN

Ensimmäinen ohjelmointikieleni oli FORTRAN. Sitä opetti Kauppakorkeakoulusa vieraillut amerikkalainen professori MM. (Jo kaksi kuukautta olen ponnistellut muistaakseni tämän tärkeän opettajan nimen. Kielen päällä pyörii koko ajan). Välineenä käytettiin reikäkorttia, jonka ylälaitaan lävistyskone kirjoitti saman teksti, jonka se lävisti kunkin merkin alapuolelle siten että reiistä niiden sijainnin mukaan kahdeksalla rivillä muodostui kakkosen potensseina yläriville kirjoitettu merkki. Kortille vasemmalta oikealle mahtui 80 merkkiä. Tietokone sitten luki näitä kortteja siten että reiän kohdalla syntyi sähkövaraus ja tieto tallentui koneen käyttöön. Kuvittelen, että tämä on pätevä kuvaus sen ajan interfacesta eli käyttöliittymästä ihmisen ja tietokoneen välillä. Tällä keinolla myös ohjattiin tietokonetta FORTRAN ohjelmointikieltä käyttäen käsittelemään sille annettuja tietoja, siihen aikaan enimmäkseen tekemään laskutoimituksia. Tekstinkäsittely tuli myöhemmin. Lisensiaattityöni 1971 oli ensimmäisiä tietokoneella tuotettuja kirjamuotoisia tekstejä. Siihen aikaan ei ollut valmiita Wordin kaltaisia tekstinkäsittelyohjelmia, vaan tulostinta piti ohjata tulostettavaksi tarkoitetun tekstin yhteydessä. Oli kuitenkin kauppakorkeakoulun tietokonekeskuksessa lahjakas nörtti Timo Raunio, joka ennen pitkää kehitti oman tekstinkäsittelykielen nimeltään Daisy. Nimi Daisy (Päivänkakkara) tuli siihen aikaan käytössä olleen kirjoituskoneen muovisesta kirjasinkiekosta. Lisensiaattityöni kirjoitettiin nimenomaan Daisy kielellä.

Yllätyksekseni olen äskettäin kuullut, että FORTRAN on vieläkin käytössä oleva tietokonekieli. Kun siirryttiin henkilökohtaisiin tietokoneisiin, siirryttiin myös pois FORTRANista ja tilalle ohjelmointikieleksi tuli Pascal.

Pascal oli alun perin proseduraalinen ohjelmointikieli. Niklaus Wirth kehitti sen 1960- ja 1970-lukujen vaihteessa ALGOL-kielen pohjalta erityisesti opetuskäyttöä ajatellen.[1] Ohjelmointikieli on nimetty matemaatikko Blaise Pascalin mukaan. Pascalia hyvin lähellä ovat Wirthin myöhemmin kehittämät ohjelmointikielet Modula-2 ja Oberon, joita voidaan pitää Pascalin "jälkeläisinä". Pascal oli suosittu kieli opetuskäytössä 1970-luvulta 1990-luvun alkupuolelle asti kunnes C-kieli syrjäytti sen.
Ammattikäyttöön Pascal-kieli tuli Borlandin Turbo Pascal -kielen ansiosta 1980-luvulla. Silloiset Turbo Pascalin ylivoimaiset ominaisuudet aiheuttivat sen, että muut ohjelmointikieliä tekevät ohjelmistotalot luopuivat vähitellen omista Pascal-kääntäjistään.

Minä opiskelin ja harjoittelin Pascalin käyttöä lähes vuoden isolla tietokoneella ennen henkilökohtaisten tuloa. Olen jo edellä kertonut, kuinka laatimaani regressio-ohjelmaa käytin itse ja moni muu käytti silloin ja vielä sen jälkeenkin, kun olin Ajka mallia perustamassa Philassa 1973-74. Se oli vielä FORTRAN kielellä tehty ohjelma. Yhä muistan kuin eilisen päivän, kun ensi kerran painoin nappia PC tietokoneella syötettyäni siihen saman regrssion laskemisohjelmani Turbo Pascal 2 kielellä. Kylmät väreet tuntuivat selkäpiissä, kun osoitin eli kursori pysähtyi ensimmäisen ohjelmavirheen kohdalle kuvaruudussa. Ei tarvinut painaa mieleen 4-merkkistä numerokoodia ja ryhtyä etsimään virhettä eri puolilta ohjelmaa. Tarvitsi vain vaihtaa virheellinen merkki oikeaan ja käynnistää ohjelma jatkamaan siitä, mihin se oli virheen takia pysähtynyt. Kerassaan tärisyttävä tilanne. Samanlaisen tilanteen koin sitten kun valmistelin Ajka mallia käytettäväksi Heureka tiedepuistossa. Silloin näin ensi kerran oikeata tietokonegrafiikkaa, enkä vain tähti tai plus tai miinus merkeistä muodostetuista pylväistä piirrettujä kuvioita. Muistan kuinka saman tien päätin, että tuon haluan minäkin.

Mitä kaikkea olen sitten ohjelmoinut?

Tärkein on tietenkin Suomen kansantalouden ekonometrinen Ajka sittemmin Tajka malli kansantalouden tilinpidon pohjalta. Sen historiasta, rakenteesta, toiminnasta ja käytöstä on erikseen kuvaus luvussa 11. Joten tässä ei siitä sen enempää. Muusta ohjelmoinnista sen sijaan.

Minulla on ollut kaksi isompaa ulkopuoliseen eli muiden käyttöön tarkoitettua ohjelmointiprojektia. Toinen oli asuntojen hintojen seuranta Suur-Helsingin Osuuspankin keräämästä aineistosta. Siitä laskin keskihintoja huoneistojen koon, sijaiinin ja iän mukaan lajiteltuna kuukausittain 17 vuoden ajan kunnes sitten vihdoin Tilastokeskus otti tällaisen hintaseurannan asiakseen. Idean isä oli Round Table kaverini Suur-Helsingin Osuuspankin toimitusjohtaja Tapio Koivula. Koivula oli pari vuotta minua vanhempi ja kuoli 55-vuotiaana eli noin 1990. Kun siitä lasketaan 17 vuotta taakse päin tullaan vuoteen 1973 eli aikaan ennen perheemme oleskelua Yhdysvalloissa. Olisiko siis tämä asia ollut vuoden keskeytyksissä vai alkoiko sittenkin vasta Amerikan matkan jälkeen. En keskeytystä muista, joten jälkimmäinen vaihtoehto tuntuu todennäköisemmältä. Löytyyköhän dokumentteja?

Toinen ulkopuolinen ohjelmointiprojekti on ollut Juoksija-lehden osoiterekisterin hoitaminen. Se minulla on ollut kaksi eri kertaa. Ensin hoidin asian Helsingin kauppakorkeakoulun IBM1130 tietokoneella. Eipä ollutkaan osoiterekisteri vaan maratontilasto luultavasti vuosina 1979 ja 1980. Osoiterekisteri tuli sen jälkeen kun Juoksija-lehti oli hankkinut oman tietokoneen 1980-luvun alussa. Tämän asian erikoisuus oli, että osoitteet kirjoitettiin Basic-ohjelmointikielen käskyiksi, siis ohjelman sisälle eikä ohjelmalla luettavaksi tiedostoksi kuten tavallisesti. Kaikissa osoitteissa tavanomaiset 4 riviä. Varsinainen työ tässä oli osoitteiston pitäminen ajan tasalla: uusien tilaajien liittäminen mukaan ja tilauksensa lopettaneiden poistaminen. Se tehtiin Juoksija-lehden toimituksessa. Minun tehtäväni oli huolehtia ohjelman toimivuudesta ja osoiteluettelon tulostamisesta kirjapainolle aina lehden ilmestyessä. En muista montako vuotta tätä tehtävää hoidin, mutta oli aika, jolloin rekisteriä hoiti joku muu ja sitten taas minä kunnes jo eläkkeelä ollessani pääsin irti tästä tarkkuutta vaatineesta tehtävästä ja sen otti yrityksensä hoidettavaksi kävelymestari Vallu Kononen. Ei ollut osoiterekisteri mikään pikku juttu, sillä aktiivitilaajia oli yli 10000 ja toinen mokoma potentiaalisia. Minä tein tätä harrastuksenani kirjaimellisesti ruokapalkalla eli sain Juoksijassa ollessani maksuttoman lounaan. Oi niitä aikoja. Tapio Pekola, Juoksija-lehden perustaja, päätoimittaja ja toimitusjohtaja vuosikymmenten ajan aina traagiseen kuolemaansa saakka. Todellinen ystävä, suuri filosofi, jonka pääkirjoitus oli aina todellinen herkkupala. Jo Pekolan aikana tuli päätoimittajaksi Ari Paunonen. Siitä erikoinen päätoimittaja, että on ainoa, jonka jokaisen pääkirjoituksen olen lukenut. Kuinka kauan? Oliko kymmenen vuotta vai vähemmän, kunnes Paunonen siirtyi saman lehden rivitoimittajaksi. Muita Juoksija-lehden loistokirjoittajia, joita yhä luen, vaikka juoksut ovat jo 35 vuoden päässä takana päin, ova maratonmestari Janne Holmén ja tosi tietäjä Matti Hannus.

Kaikki numeroiksi ja grafiikaksi

Mutta tietokoneohjelmointi on tässä luvussa varsinainen aihe. On tullut tavakseni sanoa, että muutan kaiken numeroiksi ja numerot edelleen grafiikaksi. Siinä puuhassa tarvitaan nimenomaan ohjelmointia. 1980-luvun alkupuolelta lähtien olen käyttänyt Pascal-perustaista Delphi ohjelmointikieltä koko sen olemassaolon ajan.

Lenkkeily tuottaa numerotietoa, samoin verenpaineen, painon mittaus, säähavaintojen tekeminen. Näitä numerotietoja olen aina noteerannut ja grafiikaksi muuttanut. Numero rassaa aivoa, grafiikka viihdyttää ja aktivoi ajattelua silman kautta. Nyt viimeksi olen soutulaitteella soutua harrastanut, kun en jalan lenkkeilyyn pysty. Kymmeniä kertoja olen korjannut ja parannellut ohjelmaa, joka joka nämä numerotiedot grafiikaksi muuttaa. Soutu.jpg . Edelleen grafiikkaa: asunnon pohjapiirros ja kalustaminen (näyte), Tajka-malliin liittyvä grafiikka, kirjojen kannet. Sitten on tekstien tulostaminen ja asettelu nettitiedostoiksi, kirjoiksi. Kaikkiin näihin liittyy ohjelmointia.

Kaikki kuitenkin, mikä tehdään ohjelmoinnin avulla voidaan tehdä myös käsityönä. Ero on siinä, että ohjelma tekee nopeasti ja täsmällisesti. Pystyy toistamaan toimensa yhä uudelleen. Mutta ohjelman tekemiseen saattaa mennä pitkä aika. Jos jokin on tehtävä vain kerran tai pari, käsityö saattaa olla nopeampaa, mutta jatkuvaan tehtävän toistamiseen tietokone on yliveto. Ohjelmointi on mielenkiintoista, hauskaa, haastavaa. Tekemisessä syyn ja seurauksen suhde on kiinteä. Jos a niin b pitää aina paikkansa. Ohjelmointi opettaa tekijälleen järjestelmällisyyttä ja suunnitelmallisuutta.

Varmaan puolet työajastani olen käyttänyt tietokoneohjelmointiin. Ensimmäinen ohjelmointikieleni oli FORTRAN. Sitä opetti Kauppakorkeakoulusa vieraillut amerikkalai en professori MM. Välineenä käytettiin reikäkorttia, jonka ylälaitaan lävistyskone kirjoitti saman teksti, jonka s lävisti kunkin merkin alapuolelle siten että reiistä niiden sijainnin mukaan kahdeksalla rivillä muodostui kakkosen potensseina yläriville kirjoitettu merkki. Kortille vasemmalta oikealle mahtui 80 merkkiä. Tietokone sitten luki näitä kortteja siten että reiän kohdalla syntyi sähkövaraus ja tieto tallentui koneen käyttöön. Kuvittelen, että tämä on pätevä kuvaus sen ajan interfacesta eli käyttöliittymästä ihmisen ja tietokoneen välillä. Tällä keinolla myös ohjattiin tietokonetta FORTRAN ohjelmointikieltä käyttäen käsittelemään sille annettuja tietoja, siihen aikaan enimmäkseen tekemään laskutoimituksia. Tekstinkäsittely tuli myöhemmin. Lisensiaattityöni 1971 oli ensimmäisiä tietokoneella tuotettuja kirjamuotoisia tekstejä. Siihen aikaan ei ollut valmiita Wordin kaltaisia tekstinkäsittelyohjelmia, vaan tulostinta piti ohjata tulostettavaksi tarkoitetun tekstin yhteydessä. Oli kuitenkin kauppakorkeakoulun tietokonekeskuksessa lahjakas nörtti Timo Raunio, joka ennen pitkää kehitti oman tekstinkäsittelykielen nimeltään Daisy. Nimi Daisy (Päivänkakkara) tuli siihen aikaan käytössä olleen kirjoituskoneen muovisesta kirjasinkiekosta. Lisensiaattityöni kirjoitettiin nimenomaan Daisy kielellä.

Yllätyksekseni olen äskettäin kuullut, että FORTRAN on vieläkin käytössä oleva tietokonekieli. Kun siirryttiin henkilökohtaisiin tietokoneisiin, siirryttiin myös pois FORTRANista ja tilalle ohjelmointikieleksi tuli Pascal.

Pascal oli alun perin proseduraalinen ohjelmointikieli. Niklaus Wirth kehitti sen 1960- ja 1970-lukujen vaihteessa ALGOL-kielen pohjalta erityisesti opetuskäyttöä ajatellen.[1] Ohjelmointikieli on nimetty matemaatikko Blaise Pascalin mukaan. Pascalia hyvin lähellä ovat Wirthin myöhemmin kehittämät ohjelmointikielet Modula-2 ja Oberon, joita voidaan pitää Pascalin "jälkeläisinä". Pascal oli suosittu kieli opetuskäytössä 1970-luvulta 1990-luvun alkupuolelle asti kunnes C-kieli syrjäytti sen.

Turbo Pascal alusta tähän päivään

Ammattikäyttöön Pascal-kieli tuli Borlandin Turbo Pascal -kielen ansiosta 1980-luvulla. Silloiset Turbo Pascalin ylivoimaiset ominaisuudet aiheuttivat sen, että muut ohjelmointikieliä tekevät ohjelmistotalot luopuivat vähitellen omista Pascal-kääntäjistään.

Minä opiskelin ja harjoittelin Pascalin käyttöä lähes vuoden isolla tietokoneella ennen henkilökohtaisten tuloa. Olen jo edellä kertonut, kuinka laatimaani regressio-ohjelmaa käytin itse ja moni muu käytti silloinja vielä ssn jälkeenkin, kun olin Ajka mallia perustamassa Philassa 1973-74. Se oli vielä FORTRAN kielellä tehty ohjelma. Yhä muistan kuin eilisen päivän, kun ensi kerran painoin nappia PC tietokoneella syötettyäni siihen saman regrssion laskemisohjelmani Turbo Pascal 2 kielellä. Kylmät väreet tuntuivat selkäpiissä, kun osoitin eli kursori pysähtyi ensimmäisen ohjelmavirheen kohdalle kuvaruudussa. Ei tarvinut painaa mieleen 4-merkkistä numerokoodia ja ryhtyä etsimään virhettä eri puolilta ohjelmaa. Tarvitsi vain vaihtaa virheellinen merkki oikeaan ja käynnistää ohjelma jatkamaan siitä, mihin se oli virheen takia pysähtynyt. Kerassaan tärisyttävä tilanne. Samanlaisen tilanteen koin sitten kun valmistelin Ajka mallia käytettäväksi Heureka tiedepuistossa. Silloin näin ensi kerran oikeata tietokonegrafiikkaa, enkä vain tähti tai plus tai miinus merkeistä muodostetuista pylväistä piirrettujä kuvioita. Muistan kuinka saman tien päätin, että tuon haluan minäkin.

Mitä kaikkea olen sitten ohjelmoinut? Tärkein on tietenkin Suomen kansantalouden ekonometrinen Ajka sittemmin Tajka malli kansantalouden tilinpidon pohjalta. Sen historiasta, rakenteesta, toiminnasta ja käytöstä on erikseen kuvaus luvussa 11. Joten tässä ei siitä sen enempää. Muusta ohjelmoinnista sen sijaan.

Kaksi ulkopuolista ohjelmointiprojektia

Minulla on ollut kaksi isompaa ulkopuoliseen eli muiden käyttöön tarkoitettua ohjelmointiprojektia. Toinen oli asuntojen hintojen seuranta Suur-Helsingin Osuuspankin keräämästä aineistosta. Siitä laskin keskihintoja huoneistojen koon, sijaiinin ja iän mukaan lajiteltuna kuukausittain 17 vuoden ajan kunnes sitten vihdoin Tilastokeskus otti tällaisen hintaseurannan asiakseen. Idean isä oli Round Table kaverini Suur-Helsingin Osuuspankin toimitusjohtaja Tapio Koivula. Koivula oli pari vuotta minua vanhempi ja kuoli 55-vuotiaana eli noin 1985. Kun siitä lasketaan 17 vuotta taakse päin tullaan vuoteen 1968 eli aikaan ennen perheemme oleskelua Yhdysvalloissa. Olisiko siis tämä asia ollut vuoden keskeytyksissä vai alkoiko sittenkin vasta Amerikan matkan jälkeen. En keskeytystä muista, joten jälkimmäinen vaihtoehto tuntuu todennäköisemmältä. Löytyyköhän dokumentteja?

Toinen ulkopuolinen ohjelmointiprojekti on ollut Juoksija-lehden osoiterekisterin hoitaminen. Se minulla on ollut kaksi eri kertaa. Ensin hoidin asian Helsingin kauppakorkeakoulun IBM1130 tietokoneella. Eipä ollutkaan osoiterekisteri vaan maratontilasto luultavasti vuosina 1979 ja 1980. Osoiterekisteri tuli sen jälkeen kun Juoksija-lehti oli hankkinut oman tietokoneen 1980-luvun alussa. Tämän asian erikoisuus oli, että osoitteet kirjoitettiin Basic-ohjelmointikielen käskyiksi, siis ohjelman sisälle eikä ohjelmalla luettavaksi tiedostoksi kuten tavallisesti. Kaikissa osoitteissa tavanomaiset 4 riviä. Varsinainen työ tässä oli osoitteiston pitäminen ajan tasalla: uusien tilaajien liittäminen mukaan ja tilauksensa lopettaneiden poistaminen. Se tehtiin Juoksija-lehden toimituksessa. Minun tehtäväni oli huolehtia ohjelman toimivuudesta ja osoiteluettelon tulostamisesta kirjapainolle aina lehden ilmestyessä. En muista montako vuotta tätä tehtävää hoidin, mutta oli aika, jolloin rekisteriä hoiti joku muu ja sitten taas minä kunnes jo eläkkeelä ollessani pääsin irti tästä tarkkjutta vaatineesta tehtävästä ja sen otti yrityksensä hoidettavaksi kävelymestari Vallu Kononen. Ei ollut osoiterekisteri mikään pikku juttu, sillä aktiivitilaajia oli yli 10000 ja toinen mokoma potentiaalisia. Minä tein tätä harrastuksenani kirjaimellisesti ruokapalkalla eli sain Juoksijassa ollessani maksuttoman lounaan. Oi niitä aikoja. Tapio Pekola, Juoksija-lehden perustaja, päätoimittaja ja toimitusjohtaja vuosikymmenten ajan aina traagiseen kuolemaansa saakka. Todellinen ystävä, suuri filosofi, jonka pääkirjoitus oli aina todellinen herkkupala. Jo Pekolan aikana tuli päätoimittajaksi Ari Paunonen. Siitä erikoinen päätoimittaja, että on ainoa, jonka jokaisen pääkirjoituksen olen lukenut. Kuinka kauan? Oliko kymmenen vuotta vai vähemmän, kunnes Paunonen siirtyi saman lehden rivitoimittajaksi. Muita Juoksija-lehden loistokirjoittajia, joita yhä luen, vaikka juoksut ovat jo 35 vuoden päässä takana päin, ova maratonmestari Janne Holmén ja tosi tietäjä Matti Hannus.

Arkipäivä numeroiksi

Mutta tietokoneohjelmointi on tässä luvussa varsinainen aihe. On tullut tavakseni sanoa, että muutan kaiken numeroiksi ja numerot edelleen grafiikaksi. Siinä puuhassa tarvitaan nimenomaan ohjelmointia. 1980-luvun alkupuolelta lähtien olen käyttänyt Pascal-perustaista Delphi ohjelmointikieltä koko sen olemassaolon ajan.

Lenkkeily tuottaa numerotietoa, samoin verenpaineen, painon mittaus, säähavaintojen tekeminen. Näitä numerotietoja olen aina noteerannut ja grafiikaksi muuttanut. Numero rassaa aivoa, grafiikka viihdyttää ja aktivoi ajattelua silmän kautta. Nyt viimeksi olen soutulaitteella soutua harrastanut, kun en jalan lenkkeilyyn pysty. Kymmeniä kertoja olen korjannut ja parannellut ohjelmaa, joka joka nämä numerotiedot grafiikaksi muuttaa. Tässä kuva Soutu . Edelleen grafiikkaa: asunnon pohjapiirros ja kalustaminen (näyte), Tajka-malliin liittyvä grafiikka, kirjojen kannet. Sitten on tekstien tulostaminen ja asettelu nettitiedostoiksi, kirjoiksi. Kaikkiin näihin liittyy ohjelmointia.

Kaikki kuitenkin, mikä tehdään ohjelmoinnin avulla voidaan tehdä myös käsityönä. Ero on siinä, että ohjelma tekee nopeasti ja täsmällisesti. Pystyy toistamaan toimensa yhä uudelleen. Mutta ohjelman tekemiseen saattaa mennä pitkä aika. Jos jokin on tehtävä vain kerran tai pari, käsityö saattaa olla nopeampaa, mutta jatkuvaan tehtävän toistamiseen tietokone on yliveto. Ohjelmointi on mielenkiintoista, hauskaa, haastavaa. Tekemisessä syyn ja seurauksen suhde on kiinteä. Jos a niin b pitää aina paikkansa. Ohjelmointi opettaa tekijälleen järjestelmällisyyttä ja suunnitelmallisuutta.


Selauskuvat
16-01-forajkgb 16-02-forajkgs 16-03-forajkhm 16-04-forajkhs 16-05-forajktm
16-06-AskoKorpela+00-tar 16-07-PolAjka-screen-2004
16-08-AskoKorpela+11-clo 16-09-AskoKorpela-13-clo 16-10-AskoKorpela-14-clo
16-11-2017+Verenpaine 16-12-Riihitie4A11-Pun-har 16-tsPolTajka



PageTop
15-Kielet o 00-Muistelmat o 17-Oppikirjat

Asko Korpela 20180106 (20170401)