maandag 17 februari 2014

Méthodique Magnifique! Open-source software in de wetenschap

Sebastiaan Mathôt
Deze Psychonoom hebben we de kick off van een nieuwe rubriek: Méthodique Magnifique!  Hierin bespreken psychonomen nieuwe of inventieve onderzoeksmethoden die direct nuttig zijn voor de dagelijkse praktijk van de psychonoom. Denk bijvoorbeeld aan nieuwe open source experimenteersoftware, de mogelijkheid voor het afnemen van onderzoek op Wii balance board of iPad, of het online aanbieden en afnemen van experimenten aan een grote sample (zoals in Amazon Mechanical Turk, Psychonoom 26-2). Met deze stukken kunt u praktisch inzicht krijgen in nieuwe methoden en technieken, leert u over de afwegingen die andere onderzoekers maken bij het doen van onderzoek, of kunt u juist vernieuwende onderzoeksideeën krijgen. 

We beginnen deze rubriek met een bijdrage van Sebastiaan Mathôt, voormalig aio bij Jan Theeuwes aan de VU, huidig post-doc bij Jonathan Grainger aan het Laboratoire de Psychologie Cognitive, Aix-Marseille Université. In zijn algemene introductie “Open Source software in de wetenschap” zet hij de redenen, voordelen, en implicaties van open source software op een rijtje, en maakt hiermee de weg vrij voor alle software bijdragen die we nog gaan krijgen. Vervolgens trapt hij af met een praktische introductie van zijn experimenteersoftware OpenSesame.


Een jaar of drie geleden begon ik met het ontwikkelen van OpenSesame. Dat is een vrijelijk beschikbaar programma, voornamelijk gericht op psychologen en neurowetenschappers, waarmee je gemakkelijk experimentjes kan maken. OpenSesame begon als een weekendje hacken. Inmiddels is het uitgegroeid tot een flink project, waar een handvol mensen systematisch aan meewerkt, tientallen mensen af en toe wat aan bijdragen en zo'n 2500 mensen actief gebruik van maken.

Door mijn werk aan OpenSesame ben ik me steeds meer gaan interesseren voor open-source software. Hoe het gebruikt wordt en wie het maakt. Want wie is er nou zo gek om tijd te steken in het maken van een programma om dat vervolgens gratis weg te geven? Wel ... Blijkbaar toch een aantal mensen, want open-source software is tegenwoordig overal. Browsers zoals Firefox en Chrome. Besturingssystemen zoals Ubuntu en Android. Programmeertalen zoals Python en R. Mediaspelers zoals VLC. Allemaal voorbeelden van open-source programma's die door veel mensen dagelijks worden gebruikt.

Maar hoe zit het met specialistische wetenschappelijke software? Nog specifieker: Welke programma's gebruikt de psychonoom zoal? Dat varieert natuurlijk van gebied tot gebied en persoon tot persoon, maar je denkt al snel aan dure, closed-source programma's, zoals E-Prime, SPSS, MatLab, Presentation, of BrainVoyager. Le psychonomist moyen is niet zo druk met open-source software.
In principe bestaan er open-source alternatieven voor alle bovengenoemde programma's. Denk aan PsychoPy, R, Python of FSL. Maar ik zie de lezer zijn neus al ophalen: Die zijn toch lang niet zo goed? Deels is dat waar. Maar de vraag wordt dan: Waarom wordt er niet meer moeite gedaan om open-source alternatieven te ontwikkelen? Waarom emmeren psychonomen door met onpraktische licenties (geen SPSS licentie voor thuis?), hoge kosten ($995 voor E-Prime 2 professional) en scripts die niet onderling uit te wisselen zijn? Dit laatste is extra relevant geworden nu er zoveel aandacht is voor het belang van replicatie en transparantie. Hoe doe je een directe replicatie van een experiment als je de benodigde software niet hebt? En transparantie krijgt al snel post-Babeliaanse trekken als iedereen dure, incompatibele pakketten gebruikt.

Ondanks enige scepsis vermoed ik dat de meeste wetenschappers vinden dat open-source software in principe te verkiezen is boven commerciële wetenschappelijke software. Maar open-source software lijdt onder een aantal stigma's. Een wijdverbreid misverstand is bijvoorbeeld dat open-source software buggy is, terwijl commerciële software degelijk en betrouwbaar is. Maar hoewel kwaliteit subjectief is--en vanwege cognitieve dissonantie sterk gebiased in het voordeel van dure programma's!--lijkt dit stigma niet consistent met de realiteit: Open-source software bevat ongeveer half zoveel fouten per regel code als commerciële software.


Een tweede misverstand is dat het inefficiënt zou zijn om open-source software zelf te (laten) ontwikkelen. In feite is dit een prisoners dilemma [1], want natuurlijk is het voor individuele instanties vaak duurder om een programma te ontwikkelen dan om een commerciële licentie aan te schaffen. Maar stel nou dat wetenschappelijke instituten de handen ineen zouden slaan en gezamenlijk software zouden gaan ontwikkelen: Schrijf jij dit programma voor mij, dan schrijf ik dat programma voor jou. Zou open-source software dan nog steeds inefficiënt zijn?

Laten we dit eens bekijken door een aantal commerciële pakketten naast elkaar zetten: E-Prime, Presentation en Inquisit. Met al deze programma's kan je experimentjes maken. Desalniettemin is voor elk programma het wiel opnieuw uitgevonden. Alle overlappende functionaliteit is voor elk programma opnieuw geïmplementeerd. Want als ontwikkelaars van commerciële programma's ergens niet van houden, dan is het van het delen van code of goede ideeën. Talloze patentenoorlogen maken dit pijnlijk duidelijk. Laten we nu ter vergelijking een aantal open-source programma's naast elkaar zetten: Expyriment, PsychoPy en OpenSesame. Ook dit zijn programma's om experimentjes te maken, en ook deze hebben overlappende functionaliteit. Maar deze open-source programma's kun je in combinatie met elkaar gebruiken. Bovendien bouwen ze voort op elkaars functionaliteit, want open-source licenties maken het mogelijk dat ontwikkelaars elkaars code gebruiken. Het punt is niet dat deze open-source programma's beter zijn dan de commerciële varianten. Dat mag iedereen voor zichzelf bepalen. Maar het punt is dat het ontwikkelproces van open-source software coöperatief en daardoor efficiënt is. Zeker in theorie, maar vaak ook in de praktijk.

Het moge duidelijk zijn: Open-source software heeft veel voordelen, ook binnen de wetenschap. Daarom zou het een goede zaak zijn als ontwikkelaars van open-source software meer gestimuleerd zouden worden. Hoe zouden universiteiten hieraan kunnen bijdragen?

Ik denk dat een eerste stap is om te erkennen dat software tijd nodig heeft om volwassen te worden. Er zijn genoeg AiO's en postdocs die vol enthousiasme aan een software project beginnen. Vaak gaat het dan om programma's die deels zijn ontwikkeld voor eigen onderzoek en vervolgens vrijelijk beschikbaar worden gemaakt. Als je een welwillende baas hebt dan wordt dergelijk hobbyisme toegestaan, mits het 'echte' werk er niet onder lijdt. En wellicht valt er nog een paper in Behavior Research Methods, Journal of Neuroscience Methods, of Frontiers in Neuroinformatics uit te halen. Maar vaak wordt er niet bij stilgestaan dat programma's ook moeten worden onderhouden. Bugs moeten worden opgelost. Veranderingen in computers en besturingssystemen moeten worden bijgehouden. Zo niet dan bederft je mooie programma net zo snel als een open pak melk.

En hier begint het te knellen, want universiteiten houden niet van onderhoud. Een nieuw programma ontwikkelen is één ding. Dat is innovatie. Dat lijkt nog een beetje op onderzoek doen. Maar een programma onderhouden is niet interessant. Daar kan je geen papers over schrijven en ook geen beurzen voor aanvragen. Veel projecten eindigen daarom als abandonware, spookpagina's op ontwikkelsites als GitHub, SourceForge of Google Code.

Idealiter zouden universiteiten het onderhoud van open-source wetenschappelijke programma's juist stimuleren. Als je eenmaal begonnen bent, zet het dan ook door, zou de boodschap moeten zijn. Want zo krijg je goede programma's. Hiervoor moeten universiteiten zich wel over hun publicatiefetisjisme heen zetten, want de waarde van een wetenschappelijk programma zit niet in een paper dat erover geschreven is, maar in de wetenschappers die het gebruiken. Open-source wetenschappelijke software heeft een zeer concrete en evidente impact waar ontwikkelaars voor beloond zouden moeten worden. Anders maken ze die software niet!

Verder kunnen ontwikkelaars wel een steuntje in de rug gebruiken. Ik was recentelijk op de APS convention waar ik één van de oprichters van het Center for Open Science (COS) heb ontmoet. Het COS is een Amerikaanse instantie die zich onder andere bezighoudt met het faciliteren van open-source wetenschappelijke software. Ze geven advies, ze zetten netwerken op (zowel sociale als digitale!) en ze bieden financiële ondersteuning aan veelbelovende projecten. Het zou mooi zijn als een dergelijke instantie ook in Nederland zou bestaan. Een beetje systematische ondersteuning zou het aanbod van goede open-source software doen vergroten. Investeren in de toekomst, is dat niet de kern van de wetenschap?

Sebastiaan Mathôt

[1] “Bij een prisoners dilemma ontstaat een Nash-evenwicht, gebaseerd is op ieders eigenbelang, dat niet optimaal is. Eenzijdig handelen kan de uitkomst niet verbeteren, maar door samenwerking zou een betere uitkomst tot stand kunnen komen.” Bron.

Geen opmerkingen:

Een reactie posten