Open source software

Een softwareprogramma bestaat uit enkele tot miljoenen opdrachten. Een voorbeeld van één zo’n opdracht in een zelfverzonnen computertaal is:

Is het vandaag Henk's geboortedag? Meld dan dat het vanavond feestavond is.

Dit is een opdrachtregel uit een programma dat Harold voor een vriendenprijsje voor zijn vergeetachtige vriend Henk heeft gemaakt. Harold laat dit programma, de broncode, door een ander programma, een zg. compiler vertalen in tweetallige ofwel binaire machinetaal (binary). Dat ziet er dan zo uit:

0101000101111010111011101100111011010001111001010 enz. enz. enz.

Dit programma, dat niet terugvertaald kan worden naar de broncode, geeft Harold aan Henk. De broncode mag Henk niet zien. Dat is gesloten broncode.

Henk installeert het programma en vult zijn geboortedag in: 29 februari. Het eerste jaar gaat het goed. Maar de volgende jaren vraagt Henk zich toch af of er niet een fout (bug) in het programma zit. In dit geval kan hij wel raden wat ontbreekt, namelijk:

Is dit jaar een schrikkeljaar? Dan is de feestavond een dag eerder.

Hij wil de fout door Carlos laten herstellen maar moet daarvoor terug naar Harold die het wel voor een iets hoger vriendenprijsje wil doen
Nu heeft Harold soms wel een slecht humeur en dan geen zin in een feestje bij zijn beste vriend Henk. Hij heeft daarom toegevoegd de opdrachtregel:

Als Harold een email heeft gestuurd waarin staat: 'De narcissen bloeien al', dan is het vanavond geen feestavond en moet Henk niet herinnerd worden.

Hier zijn geen woorden voor; je zou het misschien een my-friend-bug kunnen noemen.
Harold wil ook graag weten of Henk software van Carlos (Carlosoft) gaat gebruiken. Hij heeft daarvoor toegevoegd:

Is 'Carlosoft' geïnstalleerd? Stuur dan stiekem een email naar Harold.

Dit is een voorbeeld van spyware.
Omdat Harold graag een vast inkomen heeft, heeft hij nog wat toegevoegd:

Controleer of het programma al langer dan 3 jaar geïnstalleerd is. Zo ja, loop dan regelmatig vast en meld: 'Koop nu een nieuwe versie'.

In dit geval valt Harold snel door de mand. Henk wil voortaan alleen nog open broncode. Zelf snapt hij die code niet, maar hij kan daarvoor bij Carlos en andere softwaremakers, en bij belangenorganisaties en allerlei media terecht.

Dit is natuurlijk een absurd verhaal. Niemand maakt zulke fouten. En dat consumenten opzettelijk benadeeld worden lijkt hoogst onwaarschijnlijk, hoe gemakkelijk het ook is. Maar het laat wel zien wat de voordelen van software met open broncode zijn. Bijvoorbeeld, de garantie dat software voor de overheid of voor patientendossiers geen spyware bevat. Want het blijft natuurlijk jammer dat zelfs monopolisten niet kunnen garanderen dat ze geen spyware in hun software stoppen.
Open (-broncode-) software (Engels: Open source software, OSS; zie ook FLOSS) wordt afhankelijk van de belangengroep en het gebruik verschillend gedefinieerd.
Over open software bestaat wel een groot misverstand, namelijk dat iedereen er aan kan sleutelen. Het is zo dat veranderingen - die door duizenden programmeurs worden bedacht en voorgesteld - niet zomaar in de officiële software terechtkomen. Alle voorstellen worden eerst uitgebreid getest en de toezichthouders beslissen uiteindelijk.