这是针对英文原版页面的中文翻译。

不完美并不是压制

当一个自由程序缺少用户需要的功能时,是一个不幸;我们敦促人们添加缺失的功能。如果自由软件缺失某个功能,有人甚至会离谱地宣称这个程序不再是自由软件——理由是它剥夺了用户的自由之零(按照自己意愿运行程序的自由),或者是不支持某种用法。这种论点误人子弟,因为它的基础是把自由和能力混为一谈,把不完美当成了压制。

每个程序最终都会有某些功能,也会缺少用户想要的另外一些功能。它可以完成一些工作,同时在没有进一步的开发前无法完成另外一些工作。这是软件的天然特点。

如果它缺少某个关键的功能,那么某些用户会觉得这个程序毫无用处。例如,如果你只会用图形界面,那么你面对命令行程序就束手无策。如果你看不到屏幕,那么不带屏幕阅读器的程序对你来说就遥不可及。如果你只会中文,那么带有英文菜单和消息的程序对你来说就是天书奇谈。如果程序是用 Ada 写的,那么你就无法用 C 编译器来编译。让你自己来解决这些问题不太合理。自由软件确实应该提供你需要的功能。

虽然自由软件应该提供,但是缺少这些功能并没有让该程序变得不自由,因为这是不完美,而不是压制。

让程序不自由是开发者不公正的作为,它剥夺了程序使用者的自由。这些开发者应该因此被谴责。而谴责这些开发者是关键,因为只要他们继续那么干,其他人就无法挽回这种不公正。我们能够,并且在努力通过开发自由的替代程序来解救受害者,但是我们不能把非自由程序变成自由程序。

开发一个自由软件而没有添加某个重要的功能并没有亏待任何人。反过来,这是在做一件好事,只是不是那么全面的好事。没人应该因为功能缺失而受谴责,因为任何有能力的人都可以做出那些功能。把自由软件的作者挑出来并抱怨他们没有做得更多是恩将仇报,也是搬起石头砸自己的脚。

我们能做的是呼吁大家再做工作来完成整个程序。这种帮助说服大家完成工作的做法才是建设性的。

如果你认为某个自由程序需要一个很重要的扩展,那么请用尊重贡献者的方式来要求它。请不要批评贡献了有益代码的人。反之,请寻找完成任务的方法。你可以呼吁程序的开发者在有精力时把注意力转移到这些缺失的功能上。你可以提供帮助。你可以雇人或筹集资金来支持这些工作。