Tag Archives: Darwin

Survival of the fittest

Als voorstander van open source software benoem ik graag de voordelen ervan. Ze zijn inmiddels wel bekend. Een uitgekauwd onderwerp is kostenbesparingen. Nu wil ik een voordeel onder de aandacht brengen waarvan wellicht niet iedereen op de hoogte is.

Men weet dat open source door communities wordt gemaakt. Ze bestaan uit bedrijven of individuele programmeurs die zich rond interessante software verenigen. Deze programmeurs ontlenen een deel van hun identiteit aan de community.

Ik ken een programmeur die bijdragen levert aan het Debian-project. Hij is trots als zijn package geaccepteerd wordt vanwege de strenge eisen. Blijkbaar doe je het goed als jouw code geaccepteerd wordt.

In een community besluiten enkele mensen welke bijdragen gebruikt worden. De kwaliteit van de code is belangrijk bij deze keuze. De code moet duidelijk zijn, ‘Lean and mean’ en aansluiten bij de ontwikkeling die het softwareproduct doormaakt. De nieuwe vervangt dan de bestaande code, omdat deze beter is of beter aansluit bij de ontwikkeling.

In het verleden waren er discussies over welke methode van task sceduling (schakelen tussen taken) in Linux gebruikt moest worden. Wordt men het niet eens, dan kan de code als patch voort blijven bestaan. Echter, meestal wordt gekozen voor de beste implementatie.

Firewall

Een voorbeeld is de firewall code in Linux. Toen ik me hier voor het eerst in verdiepte, was ipchains de gebruikte methode, opvolger van ipfwadm. Was ipchains dan beter en makkelijker of gaf het meer mogelijkheden? Kort erna werd ipchains vervangen door iptables. Ik onderzocht hoe iptables werkte en pastte mijn firewall scripts aan. Voor marketingmedewerkers van een commercieel softwarebedrijf was dit een ramp geweest. Hoe leg je klanten uit dat er andere software gebruikt moet gaan worden? Tot drie keer toe! Waren ipfwadm en ipchains dan niet goed? In de open source wereld is dat geen probleem. Technici zijn snel overtuigd van de betere techniek. En er zijn geen marketingmensen die er hinder van ondervinden.

Het lijkt erop dat er een pool is van elkaar beconcurrerende technieken waarbij de beste wint. Zie daar de vergelijking met de evolutie theorie van Charles Darwin. Volgens ‘Survival of the Fittest’ heeft het organisme met de hoogste overlevingskans de grootste kans op nakomelingen; zo blijven de sterksten bestaan. Overigens gaat de vergelijking verder mank, omdat de theorie ook uit gaat van toeval dat voor diversiteit zorgt.

Haaienvijver

De gedachte van de pool vind ik interessant. In de praktijk werkt het ook zo. Iptables is al jaren de dominante techniek. Er is nog één vraagstuk dat mij bezig houdt. Levert de community uiteindelijk superieure software op? En, zo ja, is dat dan niet de reden om open source software te gebruiken?

Dit artikel is verschenen op de site van Computable op 29-0-2010