Esta es una traducción de la página original en inglés.

Imperfección no es lo mismo que opresión

El hecho de que un programa libre carezca de funcionalidades deseadas por los usuarios es algo desafortunado, y exhortamos a la gente a subsanar esas deficiencias. Algunas personas podrían ir más lejos y sostener que un programa no es software libre si carece de cierta funcionalidad, ya que estaría negando a los usuarios la libertad 0 (la de utilizar el programa como uno quiera) por el hecho de no admitir ciertos usos. Este es un razonamiento equivocado porque se basa en equiparar capacidad con libertad e imperfección con opresión.

Es inevitable que todo programa posea ciertas funcionalidades y carezca de otras que podrían ser deseables. Hay ciertas tareas que el programa puede llevar a cabo y otras que no, a menos que se haga un trabajo adicional. Esta es la naturaleza del software.

La ausencia de ciertas funcionalidades fundamentales puede llevar a que algunos usuarios hallen el programa totalmente inutilizable. Por ejemplo, si uno solo se maneja con interfaces gráficas, un programa en línea de comandos le puede resultar imposible de usar. Si uno no puede ver la pantalla, un programa sin lector de pantalla le puede resultar imposible de usar. Si uno habla únicamente griego, un programa con menús y mensajes en inglés le puede resultar imposible de usar. Si los programas están escritos en Ada, es imposible que pueda utilizar un compilador de C. No es razonable exigirle al usuario que supere estas barreras por sí mismo. Ciertamente, el software libre debería proporcionar la funcionalidad que el usuario necesita.

El software libre debería efectivamente proporcionar esa funcionalidad, pero su falta no implica que el programa no sea libre; porque se trata de una imperfección, no de un acto de opresión.

Crear un programa que no sea libre es una injusticia cometida por el diseñador del mismo, quien niega la libertad a todo aquel que lo use. El diseñador merece reprobación por ello. Es de vital importancia reprobar a ese diseñador, porque nadie más puede reparar esa injusticia mientras el diseñador continúe cometiéndola. Podemos e intentamos librar a las víctimas diseñando un reemplazo libre, pero no está dentro de nuestras posibilidades lograr que el software que no es libre sea libre.

Diseñar un programa libre sin agregar una determinada característica importante no le hace mal a nadie. Por el contrario, se está haciendo algo bueno pero no todo lo bueno que la gente precisa. No hay nadie en particular que merezca reprobación por no diseñar la característica faltante, ya que cualquier persona capacitada podría hacerlo. Sería ingrato, y asimismo contraproducente, señalar como culpables a los creadores del programa libre por no haber realizado un trabajo adicional.

Lo que podemos hacer es afirmar que, para completar la tarea, es necesario cierto trabajo suplementario. Esto es positivo porque sirve para convencer a alguna persona para que haga ese trabajo.

Si usted cree que, en un programa libre, una determinada extensión es importante, solicítela a nuestros colaboradores con respeto. No sea crítico con las personas que ayudaron a crear el código útil con el que contamos. Más bien, busque una forma de completar el trabajo. Puede proponer a los diseñadores del programa que, cuando dispongan de tiempo para otro trabajo, se concentren en la característica que le falta. Puede brindarles su ayuda. Puede reclutar personas o recaudar fondos para apoyar el proyecto.