Onvolledig is niet hetzelfde als onderdrukking

door Richard Stallman

Als een vrij programma niet alle functionaliteiten bevat die gebruikers zouden willen hebben is dat jammer; we moedigen mensen aan om toe te voegen wat nu nog mist. Sommigen gaan nog verder en beweren dat een programma geen vrije software is als het bepaalde functionaliteit mist—dat het gebruikers vrijheid 0 ontzegt (de vrijheid om het programma uit te voeren zoals jij wenst) of situaties waarvoor het programma niet is gemaakt. Dit argument is misplaatst omdat het is gebaseerd op het relateren van bekwaamheid met vrijheid, en onvolledigheid met onderdrukking.

Elk programma heeft onvermijdelijk bepaalde functionaliteiten en ontbeert andere die wellicht gewenst zijn. Er zijn bepaalde taken die het programma kan doen, en andere die het niet kan doen zonder extra werk. Dat is de aard van software.

Als een bepaalde functionaliteit mist kan dat betekenen dat sommige gebruikers het programma totaal onbruikbaar vinden. Als je bijvoorbeeld alleen grafische interfaces snapt, zou een commandolijn-programma wel eens onmogelijk te gebruiken kunnen zijn. Als je het scherm niet kunt zien, kan een programma zonder schermlezer onmogelijk te gebruiken zijn voor jou. Als je alleen Grieks spreekt is een programma met menu's en berichten in het Engels wellicht onmogelijk te gebruiken voor jou. Als jouw programma's zijn geschreven in Ada, is het voor jou niet mogelijk om een C-compiler te gebruiken. Om je deze hindernissen zelf te laten overbruggen is te veel gevraagd. Vrije software zou echt de functionaliteit moeten bieden die je nodig hebt.

Vrije software zou het echt moeten leveren, maar de afwezigheid van een bepaalde functie zorgt er niet voor dat een programma niet-vrij is, omdat het onvolledig is, geen onderdrukking.

Een programma niet-vrij maken is een onrecht dat gepleegd wordt door de ontwikkelaar, die de gebruikers vrijheid ontzegt. De ontwikkelaar verdient hiervoor afkeuring. Het is belangrijk om die ontwikkelaar te berispen, omdat niemand anders die onrechtvaardigheid ongedaan kan maken zolang de ontwikkelaar ermee door gaat. We kunnen de slachtoffers redden door een vrije vervanging te ontwikkelen, en we doen dit, maar we kunnen het niet-vrije programma niet vrij maken.

Je doet niets verkeerd door een vrij programma te ontwikkelen zonder daarbij een belangrijke functie toe te voegen. Je doet iets goeds maar wellicht niet al het goede dat mensen nodig hebben. Niemand verdient afkeuring vanwege het niet ontwikkelen van die bepaalde functionaliteit, omdat elk bekwaam persoon het zou kunnen doen. Het zou ondankbaar en nutteloos zijn om de auteurs van het vrije programma eens fijntjes te laten weten dat ze niet wat extra werk hebben gedaan.

Wat we wel kunnen doen is vermelden dat het afmaken van de taak wat extra werk vereist. Dat is constructief, omdat het ons helpt om iemand te overtuigen dat werk te doen.

Als je denkt dat een bepaalde uitbreiding van een vrij programma belangrijk is, maak dat dan op respectvolle manier duidelijk aan diegenen die aan het programma bijdragen. Bekritiseer alsjeblieft niet de mensen die nuttige code hebben bijgedragen. Je kunt de ontwikkelaars van het programma vragen om hun aandacht te richten op de missende functie als zij tijd hebben voor meer werk. Je kunt je hulp aan hen aanbieden.