Imperfection ne veut pas dire oppression
par Richard StallmanQuand il manque à un logiciel libre des possibilités techniques dont les utilisateurs ont besoin, c'est regrettable ; nous incitons les gens à ajouter ce qui manque. Certains voudraient aller plus loin et affirmer qu'un logiciel n'est pas même libre s'il lui manque une certaine fonctionnalité – qu'il refuse la liberté zéro (la liberté d'exécuter le logiciel comme vous voulez) aux utilisateurs ou aux utilisations qu'il ne gère pas. Cet argument est peu judicieux, car il revient à assimiler la capacité à la liberté, et l'imperfection à l'oppression.
Inévitablement, tout programme possède certaines fonctionnalités et il lui en manque d'autres qui pourraient être souhaitables. Il y a certaines tâches qu'il peut faire, et d'autres qu'il ne peut pas faire à moins d'être retravaillé. C'est la nature même du logiciel.
L'absence d'une fonctionnalité clé peut amener certains utilisateurs à trouver le programme complètement inutilisable. Par exemple, si vous ne connaissez que les interfaces graphiques, un programme en ligne de commande peut vous paraître impossible à utiliser. Si vous ne pouvez voir l'écran, un programme sans lecteur d'écran peut être impossible à utiliser pour vous. Si vous ne parlez que chinois, un programme avec des menus et des messages en anglais peut être inutilisable pour vous. Si vos programmes sont écrits en Ada, un compilateur C est inutilisable pour vous. Vous demander de surmonter ces obstacles par vos propres moyens est une exigence déraisonnable. Le logiciel libre devrait effectivement vous fournir la fonctionnalité dont vous avez besoin.
C'est vrai, le logiciel libre devrait vous la fournir, mais son absence ne rend pas le programme non libre, car c'est une imperfection et non une oppression.
En faisant un programme non libre, le développeur commet une injustice, un déni de liberté envers quiconque utilise le programme. Il mérite d'être condamné pour cela. C'est essentiel qu'il soit condamné, car personne d'autre ne peut réparer cette injustice tant qu'il continue à la commettre. Nous pouvons essayer de secourir les victimes en développant une solution de remplacement libre, et c'est bien ce que nous faisons ; mais nous ne pouvons pas rendre libre ce programme non libre.
Développer un programme libre sans y inclure une fonctionnalité importante, ce n'est pas faire du mal à quelqu'un. Disons plutôt que c'est faire un peu de bien, mais pas tout le bien dont les gens ont besoin. Personne en particulier ne mérite d'être condamné pour ne pas avoir développé la fonctionnalité manquante, car cela pourrait être fait par n'importe quelle personne compétente. Il serait ingrat, et contre-productif, de blâmer spécifiquement les auteurs du programme libre pour ne pas avoir effectué un travail supplémentaire.
En revanche, nous pouvons signaler qu'il reste un travail à accomplir pour terminer la tâche. C'est une démarche constructive, car elle nous aide à convaincre quelqu'un de faire ce travail.
Si vous pensez qu'il est important pour un programme libre d'avoir une certaine extension, veuillez respecter nos contributeurs lorsque vous faites pression pour l'obtenir. Ne critiquez pas les gens qui ont contribué au code utile que nous possédons, mais cherchez plutôt un moyen de terminer le travail. Vous pouvez insister pour que les développeurs du programme s'intéressent à la fonctionnalité manquante lorsqu'ils auront le temps de le retravailler. Vous pouvez leur offrir de l'aide. Vous pouvez recruter des gens ou lever des fonds pour financer ce travail.