A Study of Scientific Computational Notebook Quality
Deze studie evalueert de kwaliteit van wetenschappelijke code op basis van 518 repositories afkomstig van Nature-publicaties uit 2024 en concludeert dat ernstige tekortkomingen in reproduceerbaarheid, leesbaarheid en herbruikbaarheid, zoals ontbrekende data, code-duplicatie en verwarrende staatbeheer, de noodzaak onderstrepen voor betere hulpmiddelen en abstracties.
Oorspronkelijk artikel gelicentieerd onder CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dit is een AI-gegenereerde uitleg van het onderstaande artikel. Het is niet geschreven of goedgekeurd door de auteurs. Raadpleeg het oorspronkelijke artikel voor technische nauwkeurigheid. Lees de volledige disclaimer
De "Wetenschappelijke Kookboeken" die Niemand Kan Gebruiken
Stel je voor dat je een beroemd kookboek leest van een topchef. De foto's van de gerechten zien er prachtig uit, de beschrijvingen klinken geweldig, maar als je de instructies probeert te volgen in je eigen keuken, mislukt het gerecht. Misschien ontbreekt er een speciaal ingrediënt, of staat er "voeg wat zout toe" zonder te zeggen hoeveel. Of misschien is de volgorde van de stappen zo willekeurig dat het gerecht opbrandt voordat het gaar is.
Dit is precies wat een nieuw onderzoek van wetenschappers van de UC San Diego heeft ontdekt, maar dan met wetenschappelijke computercode in plaats van kookboeken. Ze keken naar de "recepten" (Jupyter notebooks) die bij de meest prestigieuze wetenschappelijke artikelen in het tijdschrift Nature horen.
Hier is wat ze vonden, vertaald in alledaagse taal:
1. De "Kookboeken" werken bijna nooit (Reproduceerbaarheid)
De onderzoekers probeerden 19 van deze wetenschappelijke recepten na te maken. Het resultaat? Slechts twee werkten perfect. De rest faalde.
- De reden: Vaak ontbrak het "ingrediënten" (data-bestanden) of waren de "keukengerei" (software-bibliotheken) niet goed aangesloten.
- De metafoor: Het is alsof een chef zegt: "Maak deze taart," maar vergeet te zeggen dat je eieren nodig hebt, en de eieren zijn ook nog eens in een andere stad opgeslagen. Zonder die eieren kun je de taart niet bakken, hoe goed het recept ook klinkt.
2. De "Schrijfwijze" is vaak onduidelijk (Leesbaarheid)
Wetenschappelijke code zou een verhaal moeten vertellen: waarom deden we dit? Wat betekent dit resultaat?
- De bevinding: De meeste notebooks zijn als een kookboek dat alleen de ingrediëntenlijst bevat, maar geen uitleg over de techniek. Er staat veel code, maar weinig uitleg in mensentaal.
- De metafoor: Het is alsof iemand een auto bouwt en alleen de schroeven en bouten in een doos stopt, zonder handleiding. Als je later probeert de auto te repareren, moet je raden welke bout bij welke schroef hoort.
- Opmerking: Als de code bedoeld was om anderen te laten zien hoe het werkt (een "demo"), was het vaak wel goed uitgelegd. Maar als het code was om de eigen resultaten vast te leggen (voor de auteur zelf), was het vaak een rommeltje.
3. Het "Plak-en-Plak" probleem (Code Clones)
In plaats van slimme, herbruikbare onderdelen te maken, kopiëren wetenschappers vaak stukken code en plakken ze ze ergens anders in.
- De bevinding: Ze vonden veel stukken code die exact hetzelfde waren, maar dan in verschillende delen van het bestand of in verschillende bestanden.
- De metafoor: Stel je voor dat je een recept voor pannenkoeken hebt. In plaats van één keer het recept te schrijven en te zeggen "gebruik dit voor alle pannenkoeken", schrijf je het recept 50 keer over in je boekje. Als je later merkt dat je te veel suiker gebruikt, moet je 50 keer het recept aanpassen. Dat is niet alleen vermoeiend, maar ook gevaarlijk: je vergeet misschien één keer aan te passen, en dan heb je een pannenkoek die niet eetbaar is.
4. De "Verwarde Spaghetti" (Mutatie en State)
Dit is misschien wel het lastigste punt. In een goed computerprogramma zijn dingen duidelijk: je doet stap A, dan stap B. In deze wetenschappelijke notebooks is alles door elkaar heen.
- De bevinding: Variabelen (gegevens) worden op willekeurige momenten veranderd, soms ver weg van waar ze zijn gemaakt. Je kunt de code in elke willekeurige volgorde uitvoeren, wat zorgt voor een "geest" in de computer die je niet kunt zien.
- De metafoor: Het is alsof je in een kamer loopt en overal dingen verplaatst. Je zet een stoel bij het raam, maar een minuut later staat hij bij de deur. Als je later terugkomt, weet je niet meer waar de stoel stond toen je begon. In de wetenschap is dit dodelijk: als je niet weet hoe de "stoel" (de data) stond, kun je het resultaat niet vertrouwen.
Wat betekent dit voor de toekomst?
De onderzoekers concluderen dat wetenschappers vaak geweldig zijn in hun vakgebied (biologie, fysica, etc.), maar dat ze niet altijd zijn opgeleid om goede software te schrijven. Ze werken in een omgeving (Jupyter) die heel flexibel is, maar die ook uitnodigt tot rommel.
De oplossing?
We hebben nieuwe gereedschappen nodig. Denk aan:
- Slimmere keukens: Software die je waarschuwt als je een ingrediënt vergeet.
- Beter schrijfgerei: Tools die je helpen om je "recepten" netjes te structureren, zodat anderen ze kunnen gebruiken.
- Opleiding: Wetenschappers moeten leren hoe ze hun code netjes kunnen houden, net zoals een chef leert hoe hij zijn keuken schoonhoudt.
Kortom: Wetenschap is cruciaal, maar als de "recepten" (de code) niet werken, kunnen we de resultaten niet vertrouwen. Het is tijd om de wetenschappelijke keuken netter en overzichtelijker te maken.
Verdrinkt u in papers in uw vakgebied?
Ontvang dagelijkse digests van de nieuwste papers die bij uw onderzoekswoorden passen — met technische samenvattingen, in uw taal.