根据维基百科的解释,开源软件又被称之为开放源代码软件,是一种源代码可以任意获取的计算机软件。
但是经历了多年的发展之后,不少开发者对“开源即自由”的理解越来越偏颇,其认为开源等于完全的免费、应用无约束、可随意修改......对此,你怎么看待开源这一定义?
作者 | STEVE KLABNIK
译者 | 弯月
责编 | 屠敏
出品 | CSDN(ID:CSDNnews)
以下为译文:
战争仍在继续,这个世界从来也不乏战争。不过,我所谈论的不是真实的战争,而是含义之争,一场围绕“开源”的含义展开的争论。
让我们先来看看故事的背景。
自由软件基金会
人们成立各种组织的原因各异。开源的故事始自一个名为“GNU项目”的组织的故事。那是1983年,USENET上发布了一片最初的公告(
https://groups.google.com/forum/#!
msg/net.unix-wizards/8twfRPM79u0/1xlglzrWrU0J)。我从中截取了四个重要段落:
从感恩节开始,我会写一篇完整的文章介绍GNU系统(全名为Gnu’s Not Unix),该系统是与Unix兼容的软件系统,并免费赠送给每个可以使用的人。衷心期待各位给予时间、资金、程序和设备上的支持。
我认为黄金法则的要求是如果我喜欢一个程序,那么就必须与喜欢该程序的其他人分享。我不能问心无愧地签署保密协议或软件许可协议。
如此一来,我就可以在不违反我的原则的前提下,继续使用电脑。我决定将所有必需的软件都换成免费软件,再也不使用任何收费软件。
如果我可以获得捐款,那么我就可以聘请一些全职或兼职人员。虽然我开出的薪水不高,但我希望能够找到一些赞同帮助人类与金钱同等重要的有志之士。我认为这是让具有奉献精神的人全心全意投入到GUN工作上的方式,因为他们不必再另谋生计。
这篇文章可以从许多不同的角度来看,的确文中包含了各种有趣的内容。但就目前而言,我想谈谈这篇文章的动机。我认为主要动机有两个:第一,构建软件产品;第二个更为重要,创建软件的需求,因为现有软件不符合某些价值观。
“意识形态”一词的定义颇为复杂,维基百科上该词的定义为:
意识形态是对人、社会及人和社会有关的宇宙的认知与道德信念的通盘形态。
GNU项目的成立是为了根据特定的意识形态构建软件:共享软件。本文讨论的不是这个项目是否实现了这个目标,也不是争论这个目标的好坏。我的观点是,GNU项目的起源是由一系列规范的信念和价值观所激发的。
两年后,为了支持GNU项目,并推广自由软件的概念,自由软件基金会成立了。自由软件是符合GNU项目意识形态的软件,而自由软件的定义出现并发布于1986年2月。以下是定义:
名字中的“免费”一词并不代表价格,指的是自由。首先,你可以自由复制程序,并发给你的邻居,让他们也可以和你一起使用。其次,更改程序的自由,这样你就可以控制程序,而不是让程序控制你;为此,必须提供源代码。
从那时起,自由软件的定义就扩展到了四个点。点击这里阅读当前的定义(
https://www.gnu.org/philosophy/free-sw.en.html)。
开源的诞生
十年过去了,开源正面临着许多烦恼。我再次引用维基百科:
“开源”一词的现代意义由自由软件运动中的一组人提出,他们批评了“自由软件”一词中隐含的政治议程和道德哲学,试图重新包装自由软件运动,以反映更具商业头脑的立场。此外,“自由软件”一词的歧义阻碍了商业上的使用。该组人员包括Christine Peterson、Todd Anderson、Larry Augustin、Jon Hall、Sam Ockman、Michael Tiemann和Eric S. Raymond。在加利福尼亚州帕洛阿尔托举行的会议上,Peterson提出了“开源”一词,以回应Netscape于1998年1月公布的Navigator源代码。第二天,Linus Torvalds响应了Peterson的提议,而且Phil Hughes在Linux Journal中表示支持这个词。
通过上面这段,我们看到了开源运动的诞生。如果你希望找到来源,下面是Eric S. Raymond的文章(
http://www.catb.org/~esr/open-source.html)的节选。
具体来说,我们遇到的问题是“自由软件”这个词本身,而不是这个概念。我相信我们必须抛弃这个词。
这个词有两个问题。首先,这个词有歧义,“自由”的意思含糊不清(常常给自由软件基金会的宣传带来很大困难)。“自由”意味着“不收钱”?还是说“可以随便修改”?还是其他的意思?
其次,这个词不利于将自由软件带入商业。虽然我并不会介意,但是我们需要改变这些人的看法,而不是对他们嗤之以鼻。现在我们有机会真正影响主流商业的世界,而不会影响我们的理想和对卓越技术的献身,所以我们需要重新思考这个问题。我们需要一个更好的名称。
不久之后,开源促进会成立。与自由软件基金会一样,开源促进会大力推广“开源”一词及其背后的意识形态。与自由软件定义一样,开源的定义也是根据Debian自由软件开发指南而创建的。
同样,在此意识形态下成立了一个组织。但是这一次却有略微的不同。较早期的开源促进会网站上说:
与会者认为应该抛弃过去说教和对抗“自由软件”的态度,严格按照同样务实的方式并以推动了Netscape的商业案例为基础推广这个概念。
最新的网站上说:
与会者认为,促使Netscape发布代码的商业实例代表了一种非常有价值的方式,我们可以借助这种方式与潜在软件用户和开发人员交流,并说服他们参与到社区中来创建和改进源代码。与会者还认为,一个有意义的名字可以表明这种方法,还可以将这种方法与关注哲学和政治的“自由软件”区分开来。
开源软件的概念很简单:自由软件,但针对的是商业。
展望未来
二十年过去了,情况发生了很多变化。
为了让意识形态的运动持续下去,他们需要在新的成员中间重新树立自己的价值观。曾经有一段时间里,自由软件基金会和开源促进会做出了很大贡献。自由软件和开源这两大运动催生了很多软件,而且也转变了很多人的看法。但是,后来发生了一件事情……
我不清楚事情的经过。我觉得简单来说关键就在于“GitHub!!”我认为GitHub功不可没,虽然这中间的故事更加曲折。我个人认为性别起了很大的作用。但那又是另外一个故事了。姑且不论起因,但事情确实发生了。
开源在有些地方遇到了许多运动都会面临的问题:运动的成员不理解创建运动时的意识形态。
如果你随便问一位开发人员“开源”对他们意味着什么,他们往往不会说:“遵循开源定义的软件。”如果你问他们“自由软件和开源软件之间有什么区别”,他们往往会反问:“这两者不是同一个东西吗?”或者说:“开源软件可以收费,并非所有开源软件都是免费的。”甚至有人说:“开源软件在GitHub上。”
在与开发人员讨论开源时,你还会听到一些其他的言论。这让我如鲠在喉,不吐不快,所以我才写了这篇文章。你经常会听到开发人员谈论企业与开源开发人员之间的关系有多么混乱和复杂。企业没有向开源贡献足够的“回馈”,他们不愿意花钱支持开源的工作人员。他们只知道获取,却不知道给予。我自己也说过很多类似的话。
但问题在于:这就是当初创立开源概念的原因。如果你问那些真正创立了开源的人,很明显他们也会这么说。开源就是为企业提供更好的免费软件的一个渠道。当然,这并不意味着人们的批评有错。这种关系可以改善。我觉得开源软件的开发人员并不是傻子,也不是伪君子。
这就是我们造就的今天的局面。人们创建了自由软件运动,后来又在这基础之上创建了开源。如今的开发人员不了解这段历史,或者根本不关心这些历史,或者他们认为历史根本不重要。所以,我们才有了战争。一场关于开源的含义的战争。人们通过推文、博客和讨论争论不休。这是一场旧的守护者(即当初创立了这个概念的人)与新一代(那些只了解基本概念的开发人员)之间的战争。
我认为历史还会重演。就像开源运动所说的那样:“我们就像自由软件一样,只是会不断变化。”我认为最终我们会兴起一个新的运动。出于同样的原因,为“开源”起个新名字,我觉得这场运动将有如今的开发人员发起,他们也会起一个新名字。我不知道这个新运动将是什么样子,我会在另外一篇文章中单独探索其诞生的原因。给你一个提示:问题在于自由软件和开源的创立方式。所有的问题都源自根本,目前我还不清楚如何解决。
原文:
https://words.steveklabnik.com/the-culture-war-at-the-heart-of-open-source
本文为CSDN翻译,转载请注明来源出处。