社会上有些人非常热衷于区分“自由软件”与“开源软件”这两个概念。我不由得诧异,两者的区别很重要么?
“自由软件”这一名字来源于Richard Stallman。当他辞去在麻省理工的工作,推出GNU计划并开始编写后来成为自由软件社区的核心软件:emacs,GNU C编译器(gcc),C语言标准库以及其他软件时,便采用了这一词汇。
Richard希望给予用户充分的“自由”,于是命名GNU计划的软件为“自由软件”。对于他而言,“自由”是基于一个社会及道德的目标,而非商业目标。他觉得,用户应该有权利知道,他们计算机里运行的软件究竟在做些什么。而任何干涉这种“自由”的行为在社会上和道德上都是错误的。他推广了这一理念(而且一直在这样做)--自由软件代表着一种理想:在自由的空气中享受自由(free as in freedom)。同时,这一行动还带来一个附加的好处:软件可以不计成本地使用并分发。
当Linus Torvolds创作Linux操作系统第一版的时候,他使用的全部是GNU的工具,即由GNU计划所开发的。它的后果便是,直至今日,许多人仍称Linux为GNU/Linux。至今,Linux仍在使用GNU的C编译器以及它的C语言库。
但是也有其他人认为,“自由软件”(或者称为免费软件,源于free一词多义,既有自由之义,也有免费之义)这个名字对Linux和其他自由软件的成长与被认可有所不利。他们觉得,这个名字很容易混淆,而且很难向管理层和商业伙伴解释。而且“free as in freedom”这一理念并不能像对那些为此花费了无数时间的开发人员那般,激发起管理层的热情。另一个问题则是,有时候“免费”这一词会被简单地等价于 “不值钱”。许多人觉得如果一个软件是“免费”的,那它肯定是不值钱的。
这一伙人在前瞻学会(Foresight Institute)的黑客兼自由软件开发人员Eric Raymond和Christine Peterson的带领下,提议采用“开源软件”这一名字代替现有的“自由软件”。
但Richard Stallman并不支持这一新名字。他说:“在1998年,教会新用户了解自由的理念变得困难了许多。因为社区中的一部分人停止使用“自由软件”这一称谓,并改说“开源软件”了。”
Stallman继续说,“有些人喜欢这一说法是为了避免“free”一词与“免费的”意思挂钩。但是还有一些人抛弃了自由的灵魂--这一推动了自由软件运动,GNU计划发展的源动力,取而代之想吸引执行官们和商业用户的眼球。而那些人的意识形态里,利润是在自由,社区,原则之上的。因而, “开源软件” 只是一个花言巧语,它关注的是生产高质量,功能强大的软件的潜力,而抛开了自由,社区,原则的理念。”
但也不是每一个人都赞同针对开源社区的这一评价。有人指出:“开源软件”与“自由软件”的区别并不在于技术,它的代码与许可证是一样的;也不在于社会,它是由同一批开发人员开发的。严格地讲,它只是一种态度--“自由软件”关注道德层面并改变着人们的思考,而“开源软件”重视结果,并改变着人们的行为。
最近由Eric Raymond公布的一些研究表明:在软件开发人员和技术交易出版社间,“开源软件”一词的使用频率已经远超“自由软件”。
自由软件作为“free as in freedom”理想的标志,已经死去,或者正在死去了吗?现在的开源软件可否作为新的标志去代表这一理念呢?对我而言,我可以很开心给出这两个问题的答案:是的!
我知道有些人会强烈抗议,但我认为是时候停止社区内部的标志之争了。我们并不需要为同样的东西起两个不同的名字。我们中的大部分人都强烈认同 Stallman关于自由的目标--并且相信开源软件正在实现它--要有信心:即使标志改变了,目标仍不会被遗忘!(文参考:Kevin Bedell, LinuxWorld)