不完善并不等同于压迫
作者:Richard Stallman当一个自由软件程序缺少用户想要的功能时,这很不幸;我们敦促人们添加缺失的功能。有些人会更进一步,声称如果一个程序缺少某些功能,它甚至算不上自由软件——它会剥夺用户自由 0(按照你的意愿运行程序的自由),或者不支持其用户或用途。这种论点是误导性的,因为它基于将能力等同于自由,将不完善等同于压迫。
每个程序不可避免地具有某些功能,同时缺少其他可能需要的功能。有些工作它可以完成,而有些工作如果不进行进一步开发就无法完成。这就是软件的本质。
缺少关键功能可能意味着某些用户发现该程序完全不可用。例如,如果您只理解图形界面,命令行程序可能对您来说无法使用。如果您看不到屏幕,没有屏幕阅读器的程序可能对您来说无法使用。如果您只会说希腊语,带有英文菜单和消息的程序可能对您来说无法使用。如果您的程序是用 Ada 编写的,C 编译器对您来说无法使用。要求您自己克服这些障碍是不合理的。自由软件确实应该提供您需要的功能。
自由软件确实应该提供这些功能,但是缺少该功能并不会使程序成为非自由的,因为这是一种不完善,而不是压迫。
使一个程序成为非自由程序是开发者犯下的不公正行为,剥夺了使用该程序的任何人的自由。开发者因此应该受到谴责。谴责该开发者至关重要,因为只要开发者继续这样做,其他人就无法撤销这种不公正。我们可以,并且也正在尝试通过开发自由的替代品来拯救受害者,但我们无法使非自由程序成为自由的。
开发一个自由程序而不添加某些重要功能并没有对任何人造成伤害。相反,它做了一些好事,但没有做到人们需要的所有好事。没有人应该因为没有开发缺失的功能而受到谴责,因为任何有能力的人都可以做到。如果因为自由程序的作者没有完成一些额外的工作而指责他们,那将是不知感恩,并且适得其反。
我们可以做的是说明完成这项工作需要做一些额外的工作。这是建设性的,因为它有助于我们说服某人去做这项工作。
如果您认为自由程序中的某个扩展很重要,请以尊重我们贡献者的方式来推动它。不要批评那些贡献了我们现在拥有的有用代码的人。相反,要寻找完成这项工作的方法。当程序开发人员有时间进行更多工作时,您可以敦促他们将注意力转向缺失的功能。您可以主动提供帮助。您可以招募人员或筹集资金来支持这项工作。