Miten tutustuin APL:ään

Timo Laurmaa

Ensimmäinen APL-näköhavaintoni ajoittui opiskeluvuosiini TKK:ssa Otaniemessä. Noin vuonna 1976-77 kiinnitin huomiota tietojenkäsittelyopin laboratorion nurkassa seisoneeseen erikoiseen Teletypen kaltaiseen päätteeseen, jota tuntui aina käyttävän sama teekkari. Olin itse sinä vaiheessa opiskellut Basicia, Fortrania ja Algolia. Niinpä en oikein ymmärtänyt mistä oli kyse, kun mainittu teekkari kerran näytti minulle 2741-päätteen ohjelmalistausta. Kummallisen näköisiä merkkejä käyttäen hän tuotti Monte Carlo-simuloinnin avulla kardioidin hahmon, ja olin sitä mieltä että tähän tarvittava ohjelma ei mitenkään voinut olla kokonaisuudessaan siinä esillä, puolella sivulla.

Tämä Arto Juvosen esittelemä APL-ohjelma herätti minussa sellaisen kiinnostuksen kipinän, että ilmoittauduinkin oitis keväällä 1978 dosentti Lassi Hyvärisen (TKK:n matematiikan laitoksella) luennoimalle "APL ja sen matemaattiset sovellukset" -kurssille. Opetus oli mitä havainnollisinta, sillä TKK:n päärakennuksen E-salissa oli kiinteästi asennettuna noin 6-10 TV-monitoria, joita en ollut koskaan ennen nähnyt käytössä, mutta joiden ruuduille Lassi monisti opetusvälineenä käyttämänsä IBM5100 -tietokoneen pienen kuvaruudun. Lassi oli todellinen edelläkävijä mikrotietokoneen käyttämisessä opetusvälineenä. IBM PC:n edeltäjä tarjosi 32 kilotavun työtilan, ja siinä oli kytkimellä valittavissa joko APL tai Basic. Toisena työvälineenä toimi Gustav Tolletin (ja Per Gjerlövin) legendaarinen "vihreä kirja", ja tuntiassistentti A. Juvosen harjoitustehtävissä riitti pähkinöitä purtavaksi.

Siihen aikaan APL:ää käytettiin TKK:ssa myös tietojenkäsittelyopin laitoksella kurssin "Tietokoneen arkkitehtuuri" havaintovälineenä. Tämä tapahtui ennen kuin minä osallistuin ko. kurssille, mutta muistelen kurssikavereitteni oppimateriaalia vähän nähtyäni että jopa Iversonin alkuperäistä "A Programming Language" -kirjan notaatiota käytettiin tietokoneen toimintojen kuvaamisessa.

Varsinaisen lähtölaukauksen APL:n todelliseen hyödyntämiseen antoivat Arton myötävaikutuksella saamani ensimmäiset "maksavat asiakkaat" Sokos ja IBM. Palkka- ja laitemyyntikirjanpitosovellusten ylläpito oli arkipäiväistä puuhaa mutta perehdytti sopivasti lukemaan erilaisia APL-ohjelmointityylejä. Oman tyylini muotoutumiseen vaikutti olennaisesti Arton kokoaman SPECIAL-apuohjelmatyötilan listauksen tarkka läpikäynti ja siellä viljeltyjen idiomien opettelu. Vielä nykyisinkin tehokkaiden APLSV-pohjaisten sääntiöajattelua hyödyntävien ohjelmien (kuten GRPS, GRPV, PIOTA, FIELDS...) hallinta kannattaa yhtä hyvin APL2- kuin Dyalog-ympäristössä. Tämän ajatuksen soveltaminen tuli todella ajankohtaiseksi 70-80 -lukujen vaihteessa, kun NIB (Pohjoismaiden Investontipankki) oli ottamassa käyttöön tanskalaisvalmisteista kirjanpito- ja lainareskontrajärjestelmää. Palvelukeskusasiakkaana NIB olisi joutunut maksamaan APL-käytöstään CPU-perusteisesti niin paljon, ettei uutta systeemiä olisi juuri voitu ottaa todelliseen tuotantokäyttöön. Onneksi olin löytänyt SPECIAL-työkalupakista LINETIME-ohjelman, nykyisten TIME, quadMF ja quadMONITOR-funktioiden edeltäjän ja VSAPL-version. Kun lähes jokaisesta päätoiminnosta oli löytynyt yli 95% CPU-aikaa syövä yksi ainoa ohjelmarivi, ei ollut enää kovinkaan vaikeaa remontoida sovelluksia kymmenen kertaa nopeammin toimiviksi.

Samoihin aikoihin 70-luvun lopussa saimme prof. Markku Syrjäsen kanssa tehtäväksemme selvittää, olisiko APL:stä valtionhallinnon tietojenkäsittelyn välineeksi. Vertailimme suurta määrää APL-tulkkeja, mm. toimittajilta IBM, HP, Univac ja Burroughs. HP:llä oli silloin tarjolla APLGOL:ksi kutsuttu versio, jossa oli kontrollirakenteet If, For, While jne - ei siis itse asiassa mikään APL+:n viime vuosien keksintö. Selvitysprojektimme antoi tietysti APL:lle varsin hyvät suositukset, ja niin APL:n (oikeastaan useimmiten ADI:n) käyttö sai valtionhallinnossa virallisen siunauksen.

Selvitysprojektin jälkimaininkeihin kuului myös toiminta työryhmässä, joka kokoontui perustamaan Suomen APL-yhdistystä. Muistaakseni ryhmässä toimivat ainakin Sakari Kajander (VTML), Markku Syrjänen, Jussi Vierikko (silloin PTK), Tauno Ylinen (VM) ja Timo Seppälä (silloin IBM). Yhdistyksen sääntöjä laadittaessa me innostuneet APListit esitimme mm. että yhdistyksen kokouksen päätösvaltaisuus edellyttäisi 25% jäsenistöstä läsnäoloa. Onneksi joku rutinoitu juristi korjasi tämän täysin epärealistisen ajatuksen - voimaan tulleet säännöt taisivat edellyttää 3-5 henkilön läsnäoloa.

Kirjoitinpäätteiden aikakaudella ja osittain vielä nykyisinkin (APL2/370:ssa) yksi APL-työskentelyn tuottavuuden ongelmia oli kelvoton ohjelmaeditori. Tämän ongelman ratkaisi 1979 Arto Juvoselta saamani E-editori, niin sanottu FinnAPL-editori, joka hakkasi del-editorin mennen tullen erityisesti kirjoitinpäätekäytössä. Seuraavana vuonna, saatuani ensimmäisen pysyvän työpaikkani silloisessa HOP:ssa, oli jo siirrytty 3270-näyttöpäätteisiin, joissa jotkut onnelliset VM/CMS-käyttäjät saivat nauttia )XEDIT ON -komennolla del-editorin korvaavasta luksuseditorista. Toisin oli HOP:ssa: APL-ympäristönä oli VSPC, eikä alkuun 3278-päätteissä ollut edes APL-merkkejä. Ei hätää - Artolla oli ollut samanlaisia ongelmia, ja hän oli muuttanut E-editorin tukemaan AP124-kokoruutuprosessoria, ja kaiken lisäksi toimimaan ei-APL-päätteellä! Rho kirjoitettiin ja luettiin $R, iota $I, jne. Muutaman viikon kuluttua tällaisen koodin lukeminen sujui ongelmitta - kummallista että J:n lukeminen on minulle yhä ylivoimaista. E-editori on muuten vieläkin vakioeditorini APL2:ssa, ainakin siihen asti kunnes BIS täällä Baselissa luopuu Y2K-ongelmia kiertääkseen koko keskuskoneesta.