为什么自由软件需要自由手册
自由操作系统的最大不足之处不在于软件本身,而是在于我们缺乏可以包含其中的良好的自由手册。我们的很多重要的程序都没有提供完整的手册。文档是任何一种完整的软件包所必需的一部分;当一个重要的自由软件没有提供一份自由的手册时,就产生了一个严重的缺口。我们现在存在很多这样的缺口。
曾几何时,在很多年前,我决定要学习 Perl。我得到了一份自由的手册,但我发现它很难读懂。当我向其他 Perl 的用户请教是否有其他的参考资料时,他们告诉我有一些更好的入门手册——但它们都不是自由的(不尊重自由)。
为什么会产生这样的情况?那些优秀手册的作者为 O'Reilly Associates 写书,以严苛的条款来出版——不允许复制,不允许修改,没有源文件——这使得它们被排除在了自由软件社区之外。
这样的事情并不是第一次发生,也不会是最后一次,这是自由软件社区的一个重大的损失。非自由的手册的出版商已经诱使很多的作者对他们的作品采用这样的限制。很多次,一位 GNU 的用户高兴的告诉我他正在写一本手册,并希望这可以帮助到 GNU 工程,然而我的希望很快就又破灭了,因为他很快向我解释说,他已经与一家出版社签约,所以作品不能以自由的方式提供给我们使用。
现实的情况是大多数程序员都不能写一手很好的文章,我们无法承受以这样方式失去各种手册。
自由文档,就像自由软件一样,核心在于自由,而不是价格。O'Reilly Associates 出版社出售这些文档,赚取利润,这本身无可厚非(自由软件基金会也出售印刷版的GNU手册)。但是,GNU 手册的源代码是开放的,出售的只是纸质的印刷版本。GNU 手册允许被复制和修改;而非自由的 Perl 手册则不允许的这些。这样的限制才是问题所在。
对于自由手册的准则与对自由软件的准则几乎一样:要求给所有的用户特定的自由。必须允许重新发布(包括商业发布),这样才能保证手册可以以在线或印刷的方式与每一份软件一同发布。同时,允许对手册进行修改也是非常重要的。
作为一种通用的规则,我并不认为让人们可以随便修改各种文章和书籍是必要的。写作与编写软件并不是完全适用相同的规则。比如说,我并不认为我们应该允许你或我去修改类似于本文的文档,因为它描述的是我们的行为和观点。
但是,自由软件的文档需要可以被自由的修改是非常重要的,主要的原因在于:当人们有权去修改软件、添加或修改软件的功能,如果他们足够尽责,他们就会同时去修改手册,这样才可以在软件被修改的前提下保证文档的准确度和可用性。如果一本手册禁止程序员去尽责的完成他们的工作,或者更准确的说要求程序员在修改程序后从头去编写一本手册,这将无法满足我们这个社区的需要。
如果说一味的禁止修改是无法接受的,那么,一定程度上的对于修改的限制是没有问题的。举例来说,要求保留始作者的版权声明、发布条款、作者列表,这些都是可以的。同样的,要求修改后的版本包含一个修改声明,甚至要求整段文字不可以删除或修改(如果它们是非技术的内容的话),都是没有问题的。(一些 GNU 的手册就有这样的部分。)
这些限制通常并不是问题,因为在实践中,它们并没有阻止负责的程序员跟据程序来修改手册。换句话说,它们并不能阻止自由软件社区充分的使用手册。
然而,所有手册的 技术 内容必须是允许修改,并可以通过各种传统媒体以各种常见渠道的进行发布的;否则,这些限制将阻碍到社区的发展,这份手册也就不再是自由的,我们得重新创作一本手册。
很不幸的是, 当一本非自由手册存在时,就很难找到一个人去再写一本。其中重要的原因就在于人们通常认为非自由手册的质量是足够好的——人们找不出再重写一本自由手册的需要。人们没有看到自由操作系统还存在这样一个需要弥补的缺口。
为什么用户常常认为非自由的手册都足够好呢?很多人都没有考虑过这个问题。我希望这篇文章可以在一定程度上改变这个现象。
另外一些用户认为非自由的手册是可以接受的,因为专有软件是可以接受的——他们仅仅从纯实践的角度去评判, 并没有把自由与否作为一项评判的准则。这些人有资格发表他们的观点,但由于这些观点完全没有基于自由的价值观,对于我这们这些崇尚自由的人来说,是没有什么参考价值的。
请向大众宣传这样的思想。我们正在由于非自由的出版物而失去自由的手册。如果我们告诉大家,非自由的手册还远远不够,也许更多希望为 GNU 撰写文档的人可以尽早的认识到把他所写的文档自由发布的重要性。
我们也可以鼓励商业出版社出售自由的或 Copyleft 的手册来代替非自由的手册。您所能做的就是在购买一本手册前检查它的发行条款,优先考虑购买 Copyleft 的手册。
[附注: 我们维护的一个 网页 上提供了一份来自其它出版机构的自由书籍列表].