太上,下知有之。其次,亲而誉之。其次,畏之。其次,侮之。
信不足焉,有不信焉。
悠兮其贵言。
功成事遂,百姓皆谓:“我自然。”——《老子》
1998年,自由软件社区有些人开始用“开源”来替代“自由软件”,以描述他们的所作所为。“开源”一词迅速关联到不同的方法、不同的哲学、不同的价值,甚至是接受何种许可证的不同标准。现在,自由软件运动与开源运动,已经是各自独立的运动,它们有不同的观点和目标,虽然两者还能一起从事实际的项目。
两个运动的根本差别在于它们的价值、它们看待世界的方法。就开源运动而言,软件是否应该开源是一个实际的问题,而不是道德诉求。正如有人指出:“开源是一种开发的方法,自由软件是一场社会运动。”对开源运动来说,非自由软件不是最佳答案;对自由软件运动来说,非自由软件是社会问题,而自由软件是正解。
自由软件运动和开源运动就像自由软件社区里的两个政治阵营。我们的基本原则不同,但对实际操作的建议大致相同,所以两者能够共同成就特定的项目。我们不认为开源运动是敌人,敌人是专属软件。
我们不反对开源运动,但是我们不想和他们混为一谈。我们感谢他们对自由软件社区有贡献,但是是我们创建的社区,而我们期望人们认识到这一点。我们期待人们把我们的价值、哲学和我们的成就联系起来,而不是联想到开源的观念。我们要人们听到我们的声音,而不是被遮蔽在持有不同观点的另一群人背后。
本文以下部分比较“自由软件”和“开源”两种措辞。这会告诉您为何“开源”一词没有解决任何问题,反而制造了麻烦。
“Free Software”一词带有歧义,它有一个不是我们期望的解释:“免费可得的软件”,而我们的定义是:“给予使用者自由的软件”。如果能找到没有歧义、也不引起其他问题的措辞,那么当然是比较好的。不幸的是,所有可用的替代英语措辞都有各自的问题。我们尝试各方人士建议的措辞,也没有找到一个明显“正确”的好替代。
每个替代“Free Software”的提案都有类似的语义问题,甚至更差——其中包括“Open Source Software”。
由开源促进会发布的“开源软件”的官方定义和我们对自由软件的定义非常接近;不过,它某些方面稍显松散,而且它接受的某些许可证给用户带来限制是我们不能接受的。“开源软件”这一表达的字面意义是“你可以查看源代码”,这个标准比自由软件弱太多;它包含自由软件,但是也包含一些专属程序,比如按照原始许可证发布的Qt(在QPL之前的许可证)。
“开源”的字面意思已经不是倡议者原来的诉求,其结果是大多人误解了其倡导者倡导的本意。来看看作家Neal Stephenson如何定义“开源”:
Linux是“开源”软件意味着,简单说,任何人都可以获得其源代码文件的拷贝。
我认为Neal Stephenson并非故意拒绝或争论开源的“官方”定义。我想他只是单纯地从英语文字出发,顾名思义。堪萨斯州政府也发布类似的认知:
开源软件的源代码免费且公开,尽管其对人们对其源代码可以做什么、不可以做什么的许可证有多种变化。
当然,正如我们对“自由软件”做的一样,开源人士也曾努力通过发布该词语的精确定义来解决问题。然而“Free Software”的解释是简单的——人们只要能理解“言论自由,而非免费啤酒”,就能够不再错解自由软件中“Free”的意味。而“开源”却没有一个方法能够这般简洁地涵盖其正式定义,并明确指出为什么其字面意义是错误的。
“开源软件”的主要论点是“自由软件”会使一些人感到不安。那是真的——谈论有关自由的话题、谈论道德伦理的议题、谈论公众义务以及个人利益,就是在促使人们思考他们宁愿忽视的一些事。这会引发情感的不悦、以及某些人士的抵制。
几年前,自由软件的开发者们注意到这种不悦的反应,有人开始探究一个能免除困局的方法。他们意识到,如果对道德与自由的理念保持沉默,只讨论能够立即带来实质利益的自由软件,那么他们或许能更有效率地“销售”这些软件给客户,特别是企业界的客户。
“开源”一词就是用来更多地朝这个方向努力——一个“让企业界更接受”的方式。开源运动的视野与价值就是根植在这个决定之上。用他们自己的话来说,这种方法已被证实有效,今天有许多人就为纯粹实际的理由而转到自由软件。
这样下去也很好,但我们谋求的并不到此为止!吸引人们接纳自由软件并不是整个工程,它只是第一步。
这些用户迟早会因为实用的优势而再转回到专属软件,为数庞大的软件公司正在提供此类利诱,用户为什么要拒绝呢?除非他们懂得去衡量自由的价值,这些自由是自由软件自身就带有的。这种理念有赖于我们的传播——为了实践它,我们必须谈论自由,有一些人用“沉默”的方法做生意对社区可能有益,但我们还必须得有足够多的谈论自由的声音。
现在,我们有太多的“沉默”,而对自由的讨论却不够。大多数参与自由软件者很少谈论自由——通常是因为他们要寻求“让企业界更接受”,软件销售业者尤其倾向这种姿态。有些GNU/Linux操作系统的发行版将专属软件添加到自由系统之中,他们鼓励用户将之视为优势,而不是告诉他们这是在背离自由。
人数增长太快,我们没能应对好自由软件用户的涌入,没能教育好人们自由和我们社区的价值。这就是为什么非自由软件(比如最初开始流行的Qt),特别是非自由的操作系统发行版能在这片土地繁荣的原因。现在我们放弃使用“自由”一词会是一个错误,我们需要更多、而不是更少的关于自由的探讨。
如果“开源”一词吸引更多的用户加入我们的社区,那么当然是贡献,但我们因此可能得更费力才有办法让他们把自由听入耳中。我们必须说:“这是自由软件,它给你自由!”——比以往更多、更大声地说。