Väitöstilaisuus lähestyy, väitöskirja julkaistu

Puolustan väitöskirjaani “Evidence-Based Programming Language Design: A Philosophical and Methodological Exploration” perjantaina 4. joulukuuta 2015 kello 12 Jyväskylän yliopiston vanhassa juhlasalissa (Seminarium-rakennus, sali S212). Vastaväittäjänä on professori Lutz Prechelt (Freie Universität Berlin, Saksa) ja kustoksena professori Tommi Kärkkäinen (Jyväskylän yliopisto).

Väitöstilaisuus on julkinen ja sinne on vapaa pääsy. Yleisö voi pukeutua kuten mihin tahansa arkiseen aktiviteettiin yliopistossa (esimerkiksi luennolle), juhlapukeutuminen ei ole tarpeen. Facebook-tapahtuma on.

Väitöskirjan esitarkastajina toimivat professori Matthias Felleisen (Northeastern University, Yhdysvallat) ja professori Andreas Stefik (University of Nevada, Las Vegas, Yhdysvallat). Väitöskirja sisältää merkittävän osan lisensiaattityöstäni, jonka tarkastivat viime vuonna tohtori Stefan Hanenberg (Duisburg-Essenin yliopisto, Saksa) ja professori Stein Krogdahl (Oslon yliopisto, Norja).

Väitöskirja on nyt julkisesti saatavilla PDF:nä.

YHTEENVETO

Näyttöön perustuva ohjelmointikielten kehitys. Filosofinen ja menetelmäopillinen tutkimusmatka.

Väitöskirjassani pohdin, kuinka olemassa olevaa tutkimuskirjallisuutta voisi käyttää hyväksi ohjelmointikielten kehityksessä. Vastaavaan ongelmaan lääketieteessä kehitettiin 1970–1980-luvuilla lähestymistapa, jota 1990-luvun alusta on kutsuttu näyttöön perustuvaksi lääketieteeksi. Niinpä väitöskirjassani selvitän vastaavan näyttöön perustuvan ohjelmointikielten kehityksen mahdollista olemusta.

Väitöskirjan tutkimusmenetelmänä on toisaalta filosofinen käsiteanalyysi ja toisaalta systemaattinen kirjallisuuskartoitus. Käsiteanalyysillä selvensin näyttöön perustuvan lääketieteen olemusta ja sen siirtämistä soveltuvin osin ohjelmointikielten kehitykseen. Systemaattisella kirjallisuuskartoituksella, jonka aiemmin raportoin lisensiaattityönäni, selvitin, mitä empiiristä tutkimusnäyttöä on olemassa, jota voisi ohjelmointikielten näyttöön perustuvassa kehityksessä käyttää hyväksi. Lisäksi väitöskirja sisältää laajahkon tällaisten tutkimusten metodologiaa pohtivan osuuden.

Osana metodologian tarkastelua olen väitöskirjassani tarkentanut systemaattisten kirjallisuuskartoitusten ja -katsausten menetelmää kysyen, soveltuuko Cohenin kappa aineistokoodauksen luotettavuuden arviointiin. Matemaattisilla menetelmillä vastaukseksi selvisi ei. Sen asemesta suosittelen käyttämään Krippendorffin alfaa tai Fleissin kappaa.

Empiirisen tutkimusnäytön kirjallisuuskartoituksessa, jonka aineisto ulottuu vuoteen 2012 asti, havaitsin, että ohjelmointikielten suunnitteluratkaisujen hyödyllisyyttä on tutkittu jonkin verran: kaiken kaikkiaan tutkimuksia löytyi 141, ja näistä 65 tutkimusta, jotka ovat selkeimmin hyödyllisiä kielen kehittäjille, muodostavat tulosten ytimen. Eniten on tutkittu eri tapoja ilmaista suorituksen haarautumista (11 koetta ytimessä, joista 8 kontrolloituja, joista 3 satunnaistettuja; vanhin tutkimus julkaistu 1973), valintaa staattisen ja dynaamisen tyypityksen välillä (6 tutkimusta ytimessä, joista 5 kontrolloituja kokeita, joista 4 satunnaistettuja; vanhin tutkimus julkaistu 2009), sekä eri tapoja ilmaista silmukkarakenne (5 tutkimusta ytimessä, joista 4 kokeita, joista 3 kontrolloituja ja yksi satunnaistettu; vanhin tutkimus julkaistu 1978). Hyödyllisyyttä on tutkimuksissa tarkasteltu pääasiassa virhealttiuden, ohjelmien ymmärrettävyyden sekä ohjelmointityön työläyden kautta.

Tutkimusmenetelmistä suosituin ytimessä oli (määrällinen) koe, jota käytti 41 tutkimusta. Toiseksi suosituin 11 tutkimuksella oli tutkimusasetelma, jossa olemassa olevia ohjelmia muokattiin käyttämään uutta ohjelmointikielen suunnitteluratkaisua hyväkseen. Kolmanneksi suosituin 8 tutkimuksella oli ohjelmistokorpuksen analyysi. Ytimessä käytettiin lisäksi tapaustutkimusta (2), kyselyä (2) ja ohjelmaparien analysointia (1). Ytimen kokeellisissa tutkimuksissa yleisimmin koehenkilöinä käytettiin ohjelmoijia (35 koetta), jotka tavallisimmin olivat ohjelmoinnin opiskelijoita (29 koetta).

Kartoituksen tuloksista on pääteltävissä varsin masentava kuva tämän kartoituksen alueeseen kuuluvasta tutkimusaktiviteetista. Vaikuttaa siltä, että aina silloin tällöin joku tutkija tai tutkimusryhmä keksii, että tällaiset tutkimukset olisivat hieno juttu, ja tekee niitä sitten muutaman kunnes kyllästyy ja vaihtaa aihetta. Julkaistut tutkimukset eivät vaikuttaisi inspiroineen kovin paljoa jatkotutkimuksia, eikä paradigman perustavia esimerkkitutkimuksia näytä syntyneen. On myös mahdollista, että julkaisufoorumien toimittajat ja vertaisarvioijat pitävät empiiristä tutkimusta niin hyödyttömänä, ettei sellaisia tutkimuksia juuri niiden tekemisestä huolimatta julkaista. On toki mahdollista, että viimeisen viiden vuoden aikana lisääntynyt tutkimustoiminta tarkoittaa, että tilanne on muuttunut; mutta koska lukumäärät ovat edelleen pieniä, saattaa tilanne palata jokusen vuoden jälkeen takaisin matalan aktiviteetin tasolle. Valitettavasti kartoitukseni aineistosta ei ole mahdollista päätellä mitään viime vuosien tutkimustoiminnasta.

Väitöskirjan tuloksena syntynyt näyttöön perustuvan ohjelmointikielten kehityksen hahmotelma on seuraava. Jos kielen kehittäjälle on tosiasiassa epäselvää, miten jokin kehitysongelma tulisi ratkaista, hän voi alkaa soveltaa menetelmän viisiaskelista toimintaohjetta. Ensin hän täsmentää kysymyksensä, sitten hän tekee kysymyksen perusteella kirjallisuushaut, kolmanneksi hän arvioi löytyneiden lähteiden luotettavuuden, neljänneksi soveltaa kirjallisuuden antamaa ratkaisua ongelmaansa ja viidenneksi pohtii, kuinka menetelmän soveltaminen häneltä onnistui. Tämä toimintaohje on tällä yleistasolla hyvin samanlainen kuin näyttöön perustuvassa lääketieteessä; eroja tulee, kun askelille annetaan tarkemmat toteutusohjeet.

Kuten kaikilla tutkimuksilla, tällä väitöskirjalla on rajoitteita, jotka tulee tuloksia tulkittaessa ottaa huomioon. Käsiteanalyysin tärkein rajoite on, etteivät sillä tavalla syntyvät tulokset ole todistettavissa oikeiksi; paraskaan käsiteanalyysi ei välttämättä vakuuta kaikkia lukijoita. Väitöstyöni käsiteanalyysin tavoitteena on siten ollut, että eri mieltä oleva lukija kykenee vastaamaan argumentteihini järkevillä vasta-argumenteilla ja siten edistämään aihetta koskevaa tieteellistä keskustelua. Kirjallisuuskartoituksen keskeisin rajoite puolestaan on, että julkaisujen mukaan ottamisessa ja tutkimusten koodauksessa on voinut sattua virheitä, vaikka niitä on pyritty välttämään ja löytämään. On myös mahdollista, että joitakin asiaan liittyviä tutkimuksia ei ole löytynyt hauissa eikä siksi ole kartoituksessa huomioitu.

Väitöskirjan olennaisin tulos on näyttöön perustuvan ohjelmointikielten kehityksen hahmotelma, joka soveltuu jatkotutkimuksen pohjaksi. Sitä ei ole empiirisesti arvioitu, joten lopullisena vastauksena sitä ei voi pitää. Sen käytettävissä nykyisin oleva empiirinen tutkimusnäyttö on ohutta, mutta sitä on.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.