Työkaverini löysi tällä viikolla mielenkiintoisen artikkelin. Artikkelissa ehdotetaan minimistandardia ilmakehätieteen ja meteorologian tutkimusartikkeleille, jotka käyttävät laskennallisia menetelmiä. Kirjoittajan ehdottamassa minimistandardissa tieteellisen artikkelin kirjoittajalta olisi vaadittava artikkelin julkaisun yhteydessä tietokoneohjelmien lähdekoodi, dokumentti ohjelmien toiminnasta ja kolmannen osapuolen kirjastojen käytöstä, tarkat ohjelmien ja kirjastojen versionumerot, tiedot tietokoneesta, jolla simulaatiot on tehty sekä lokitiedosto, josta käy ilmi millä käskyillä minkäkin artikkelin tuloksen saa toteutettua. Näitä asioita olisi artikkelin mukaan vaadittava kaikilta töiltä, joissa tietokoneohjelman avulla on tehty merkittäviä johtopäätöksiä. Luonnollisesti koska kaikissa projekteissa ei ole mahdollista jakaa lähdekoodia esimerkiksi tekijänoikeudellisista syistä, olisi myös mahdollista jättää osia lähdekoodista tai koko koodi julkaisematta, mutta siitäkin olisi annettava erillinen lausunto.
Pidän artikkelin ehdottamaa ajatusta lähdekoodin jakamisesta hyvänä mutta ehdotusta standardista liian raskaana. Käsittelen seuraavassa ainoastaan projekteja, joissa laskennallisen työn on tehnyt yksi tutkija omalla tietokoneellaan ja teen paljastuksen: fyysikot eivät ole ammattiohjelmoijia. Tämä tarkoittaa, että vaikka ohjelmamme toimivat ja ovat tarkasti testattuja, puuttuvat dokumentointi ja suurin osa lähdekoodin kommenteista kokonaan. Väitän myös, että kovinkaan monelle tutkijalle versionhallintatyökalut ja niihin littyvät julkaisualustat eivät ole tuttuja. Hyvän ohjelmointitavan ja työskentelyä helpottavien työkalujen opettelu on kuitenkin nykyään tehtävä omalla ajalla, tai sitten olisi hyväksyttävä, että jonkin aikaa olisi työskkenneltävä alennetulla työteholla. Pelkäänkin, että liian moni tutkija ajautuisi tekemään esimerkiksi lokitiedostot käsin valmiiden työkalujen käytön sijaan.
Ilmakehätieteelle tiukan standardin sijaan parempi alku olisi, jos tutkijat alkaisivat jakaa ohjelmiaan enemmän GitHubin kaltaisilla sivustoilla. Kuten ylläolevassa artikkelissakin sanotaan, vaakakupissa painaa myös ikiaikainen vaatimus tieteen toistettavuudesta. Siinä missä laboratorioissa tai kentällä tehdyt koejärjestelyt ovat artikkeleissa kuvattu kemiallisen yhdisteen valmistajaa myöten, ei käytetyistä ohjelmista yleensä kerrota kuin matemaattiset yhtälöt, jotka ohjelmat ratkaisevat. Vaillinainen ohjelmien dokumentointi ja jakaminen vaikeuttavat muiden tutkimusryhmien mahdollisuutta vahvistaa saatuja tuloksia. Lähdekoodin nykyistä vapaampi jakaminen voisi parhaassa tapauksessa myös hyödyttää jakajaa, kun omiin laskennallisiin ratkaisuihin voisi saada parannusehdotuksia muilta tutkijoilta tai tutkimusartikkelin vertaisarvioijilta. Ensin ainakin minun olisi kirjoitettava selkeämpää ja yleiskäyttöisempää koodia, sekä kommentoida sitä enemmän kuin yhdellä lauseella funktion alussa.
Vastaa