作者
mako@atdot.cc
译者 比尔盖子
tomli@tomli.me

原文同时有 Arabic (لغة عربية), Spanish (Español), French (Français), Italian (Italiano), Swedish (Svenska), 和 Turkish (Türkçe) 译文

过去十年来,自由软件开发者多次被那些能使自由软件开发工作更加高效、强大的开发工具所吸引。

唯一的代价,他们告诉我们,是这些工具本身并非自由,或者是我们不能浏览、复制、或自己运行其代码的网络服务。他们做出使用这些工具和服务的决策——诸如使用 BitKeeper、SourceForge、Google Code 和 GitHub——自由软件开发者做出了“目的先于手段”的决策,换走了开发者社群自己与用户的自由。这些采纳非自由软件和私有开发工具的决策,损害了我们宣扬软件自由的公信力,也牺牲了我们与我们用户的自由,这些都是我们应该拒绝的。

2002 年,Linus Torvalds 宣布 Linux 内核将迁移到 BitKeeper 这款分布式版本控制系统(DVCS)。虽然这个决策招致了许多警惕和争论,但是 BitKeeper 使得内核开发者能以分布式模式工作,而那时者并不被任何自由软件工具支持——一些 Linux 开发者认为这样做带来的好处值得牺牲开发者的自由。三年之后,质疑者的判断得到了证实:当 Andraw Tridgell 尝试编写 BitKeeper 的自由实现时,BitKeeper 的所有者 Larry McVoy 便撤销了诸位核心内核开发者的免费授权。内核开发者被迫编写了他们的自由软件替代品,如今以 Git 闻名。

当然,自由软件同非自由开发工具的关系不仅只是 BitKeeper。自由软件开发服务平台 SourceForge 的用户们曾经可以获得其源代码,但是它的作者随后倒退回完全封闭的运作模式。虽然 SourceForge 是基于自由软件开发的,但用户通过网页与 SourceForge 交互。由于用户从未拥有任何 SourceForge 软件的副本,他们无权要求获取源代码。类似的项目还有 CollabNet 的 Tigris.org, Google Code 的“免费软件托管”服务,以及 GitHub。这些服务的目的相似,并都以相似的方式将源代码放置在用户可及的范围之外。他们通常免费提供服务,宣扬自己支持自由软件的开发,但这一承诺并不包括这些开发平台自己的软件。这些系统的源代码保持私有状态,使用服务的开发者不可修改。

这些非自由开发工具给许多自由软件开发者带来了困局。许多这类工具的目标都是使自由软件的开发更高效,从而带来更多的自由软件和更多的自由。CollabNet、Google 和 GitHub 各个声称他们希望自由软件成功,声称他们想要帮忙。但是因为种种原因,这些公司没有遵循自由软件的规范,而是使用低于自由软件的标准来支持软件自由。结果者让开发者处于不利地位。这些黑客开发代码的软件自由受到不可接受的排他性限制。

首先,使用非自由工具向自由软件用户传达了一条不可接受的信息。“软件自由对用户很重要,”开发者们似乎在说,“但对我们则不是。”这样的行为危害了破坏了自由软件核心强烈道德主张的基本功效。对那些已经献身自由软件的开发者,我们应该表明我们能成功并且蓬勃发展——使用自由软件。我们应当支持专有系统的自由替代——例如 Savane 可替代 SourceForge 和 Google Code,也是 GNU Savannah 所使用的程序,又如可替代 GitHub 的 Gitorious——使用它们并改善不足之处。

其次,我们应当更进一步意识到,我们开发软件的自由程度依赖于使用、分发和演进软件使用的平台。

如果试图修改程序的用户无法自由获取修改本身所需的软件,《GNU 通用许可证》和源代码对用户就没有什么意义。这不仅仅是台面上开发者的自由,归根结底,也是它们的用户和所有未来“下游”开发者的自由。选择非自由工具,就是将群体和个人们置身于这些工具开发者的摆布之中。

虽然专有开发工具在短期内可能帮助自由软件开发者创造更多自由软件,但它的代价是不可接受的。在备受争议的私有软件及网络服务的问题上,自由软件开发者应该站在自由“过火”的一边上。为了实现更多自由而妥协我们的原则,对我们的用户和更广大的自由软件开发社群而言是自我否定的、不稳定的,终究是不公正的。

正如早期 GNU 维护者最初重视创造开发自由软件本身所需的自由工具一样,我们必须确保我们能够自由地开发软件,明确无误的使用自由工具。如果我们失败了,我们就使软件间接变得更加不自由。如果开发工具没有同我们为用户带来自由一样为我们带来自由,在我们为用户们开发软件时就应该拒绝,我们应该向我们开发工具的提供者施压。自由软件是无法以牺牲我们原则的方式获得成功的。牺牲我们建立自由世界所使用的工具,无论从技术角度、务实角度或道德角度,都无法为我们带来好处。

Benjamin Mako Hill: 自由软件需要自由工具