Software zal nooit foutloos worden omdat ontwikkelaars bestaande software onvoldoende doorontwikkelen en te veel gefocust zijn op nieuwe versies. Dat stelt VU-onderzoeker Andrew Tanenbaum die de betrouwbaarheid en veiligheid van systeemsoftware onderzoekt.
U heeft een subsidie van 2,5 miljoen euro gekregen van de European Research Council (ERC). Wat gaat u precies onderzoeken?
Ik ga onderzoek doen naar betrouwbare en veilige systeemsoftware. Ik wil het systeem Minix, dat ik in de jaren tachtig maakte, verder ontwikkelen.
In software zitten altijd fouten, dat zijn bugs in de code. Een bug zorgt niet altijd voor een crash, dat gebeurt alleen in bijzondere omstandigheden. Software moet deze fouten eigenlijk zelf detecteren en oplossen, zodat de gebruiker er niets van merkt. Er is wel zelfregulerende software, maar niet veel en het werkt niet zo goed.
Veel software is zo ontwikkeld dat er geen wijzigingen aangebracht kunnen worden terwijl de programmatuur draait. Programma's moeten gestopt of herstart worden om updates door te voeren. Dat lukt niet altijd, servers bij banken moeten altijd blijven draaien. Door meer te moduleren moet het mogelijk worden om bijvoorbeeld de software op een draaiende fileserver te vernieuwen.
U gaat dus verder met Minix?
De ontwikkeling van Minix staat al een jaar of tien stil. Ik ontwikkelde Minix in de jaren tachtig. Linus Torvals ontwikkelde het systeem verder, maar wijzigde het zo erg dat het een ander systeem werd. Dat werd Linux. Linux heeft te veel regels code, het is te groot. Windows is nog veel groter. Hoe meer code, hoe meer fouten. Uit onderzoek blijkt dat er in goede software gemiddeld een fout per honderd regels code zit. Als je er echt alles aan doet, bijvoorbeeld door goed te testen en een goed beleid, dan kom je uit op een bug per duizend regels code. Maar beter dan dat kun je het niet doen. Linux heeft vijf miljoen regels code. De complete Windows Vista distributie is 70 miljoen regels.
Hoeveel geld heeft u hier voor beschikbaar?
Ik heb hiervoor 2,5 miljoen euro beschikbaar voor vijf jaar. Een deel van dat geld gaat naar de Vrije Universiteit (VU) als overhead. Dat betekent dat ik ongeveer 0,4 miljoen euro heb per jaar. Hier kan ik ongeveer vijf mensen voor aan het werk zetten. Waarschijnlijk zijn dat twee tot drie programmeurs, een aantal aio's (assistenten in opleiding) en wat post-doctorale onderzoekers.
Wat hoopt u over vijf jaar te hebben?
Ik hoop dat we dan veel ideeën hebben over hoe het beter moet. En dat we een werkend prototype hebben.
Wordt software ooit foutloos?
Het zal wel ooit mogelijk worden dat software foutloos wordt, maar ik denk niet dat het ooit gebeurd. Softwareleveranciers komen met een constant stroom van updates en nieuwe features (met nieuwe bugs) en iedere paar jaar met een nieuw systeem. Een televisie draait tien jaar zonder problemen, die is redelijk stabiel. Ik wil dat een computer net zo stabiel is als een televisie.
Softwareontwikkelaars werken altijd aan nieuwe versies. Als Microsoft nu nog Windows 98 ontwikkelde, was het foutenvrij geweest. Maar dat gebeurt niet. Programma's krijgen steeds meer functies, vaak steeds nuttelozere functies. Zolang softwaremakers nieuwe versies blijven ontwikkelen (in plaats van de oude versies debuggen), blijven er altijd fouten in software zitten.
Nogal logisch dat je niet 10 jaar met hetzelfde systeem blijft werken. De hardware veranderd mee en dat vereist zo nu en dan wijzigingen in de kern van je OS.
Windows XP was toch duidelijk een verbetering die je met alleen het debuggen van Windows 98 nooit voor elkaar had gekregen.
En nu moet een 10 jaar oud systeem als start dienen voor een project van 2,5 miljoen? Had dat geld maar aan mij gegeven.
Waarom niet beginnen van scratch en gelijk rekening houden met moderne hardware? Multi-core? 64 bit? Wil ie dat er zo in gaan hacken ofzo?
Impliceert ‘ie nu dat Linux gebaseerd is op Minix ?
Volgens mij had ie toch al eerder toegegeven dat Linux compleet los stond van Minix en dat er geen code van Minix in Linux gebruikt is…
Lijkt wel of hij met deze opmerking alsnog wat credits voor Linux wil opeisen.
En zoals Nick al terecht zegt.. gewoon from scratch beginnen en niet met die oude zooi waar een leger studenten aan heeft zitten klooien.
Het ERC weet wel waar ze het geld aan uitgeven.
Sowieso een beetje scheef redeneren. Minder code is beter omdat er minder fouten inzitten.
Liechtenstein is dus een stuk gezonder dan Nederland, want in Nederland wonen meer mensen en zijn er dus meer zieken.
“Dit is natuurlijk de wereld op zijn kop. Feitelijk doet meneer Tanenbaum een pleidooi voor het vertragen van nieuwe releases, wat natuurlijk funest is voor de concurrentiepositie van een bedrijf.”
Zie verder mijn blogpost: http://adi.atosoriginblog.nl/2008/08/22/software-wordt-nooit-foutloos-so-what
Geld binnensleuren voor zijn Uni en zijn eigen tien jaar geleden overleden project opgraven…
De European Research Council had het geld net zo goed door de plee kunnen spoelen.
@robert mekking
De “concurrentiepositie”? Van Microsoft zeker. Ik weet dat zij dit argument gebruiken om hun software op de markt te gooien terwijl die nog lang niet af is. Maar ondertussen sparen ze gewoon miljarden dollars uit door naieve gebruikers als onbezoldigde testers te laten optreden. Als er werkelijk concurrentie was dan zouden ze veel hogere prioriteit geven aan de kwaliteit van hun producten. En dan praten we over miljarden en niet die zielige paar miljoen waarmee Tanenbaum mag proberen zijn speeltje nieuw leven in te blazen.
Ik ben het er niet mee eens dat we de huidige kwaliteit van software maar moeten accepteren. Als je televisie of auto gebreken heeft dan heb je recht op herstel of vervanging. Waarom zou dat niet ook kunnen gelden voor software.
Het zegt voldoende dat Microsoft in zijn disclaimers aangeeft dat hun software “niet geschikt” is “voor welk doel dan ook”… Misschien kan mw Kroes ervoor zorgen dat softwarebedrijven hier niet meer mee weg komen. Dan zal er pas echt iets gaan veranderen, hoop ik.
@Joao: D’r heeft geen leger van studenten aan Minix lopen kloten. Dit is juist de reden waarom Linus met Linux begonnen is.
@Nick: Zal liggen aan de compiler of die 64 bits is ingesteld.
Zijn pleidooi voor meer testen is op zich niet verkeerd. Tegenwoordig zijn exploderende ariane raketten doodnormaal. Wie heeft toch de trend gezet dat testen van systemen niet nodig is?
@JosW: Je hebt helemaal gelijk wat betreft die tendes wbt software kwaliteit.
Wat IK nu mis in jullie commentaar…
Gefeliciteerd met deze subsidie,
IK heb liever iemand die zijn HOOFD gebruikt in plaats van de MUIS die ze krijgen van de software leverancier.
Eindelijk iemand die NEDERLAND een stap vooruit kan zetten.
Scheef redeneren, Nick?
Tanenbaum stelt dat software uit teveel code bestaat.
Wonen er, om jouw redenering te volgen, teveel mensen in Nederland zodat er meer zieken zijn dan in bijv. Liechtenstein met een lagere bevolkingsdichtheid?
Heel veel code is bloated, dat is een feit. Meer code betekent niet altijd meer functionaliteit.