无论你对于个人电脑、互联网和社交媒体有怎样的评价,有一个话题总归是绕不开的:它们都大大地增强了我们与对方争论的能力。在过去的三十年间,论战变得习以为常,有些论战(比如Mac与Windows的口水仗)在最初的区别不再变得重要之后,已渐渐成为大众文化的一部分。
不过,计算机行业没有哪一个社区比自由和开源软件(FOSS)以及Linux社区更容易引发论战了。这个社区的智慧和多元化利益使得意见分歧在所难免,更不用说与IT界其余领域相比很迅猛的发展步伐;大家普遍敢说敢言更是保证了许多分歧会变得不可收场,最终变成论战。
想统计出任何一个时间段的论战有多少是不可能的。不过,下面是当下在FOSS领域争得最激烈的九大论战:
一、Ubuntu VS每个人
Ubuntu即便不是最流行、最有影响力的发行版,至少也是一种很流行、很有影响力的发行版,自然很容易遭受批评——有些批评有道理,有些不太有道理。
Ubuntu过去一向被批评在吃白食(根据2010年的Linux内核代码贡献数统计,Ubuntu在各大厂商中是贡献最少的),吃Debian、Linux内核或整个自由软件的白食,拿Windows或苹果的形象来翻新Linux。开发和发行方面哪怕小小的决定也遭到了猛烈抨击,比如要不要把GNU图像处理程序(GIMP)加入到默认的安装版,或者确定标题栏按钮的位置。有时候不论Ubuntu做什么,似乎都会遭到炮轰。
虽然Ubuntu常常在日常事务中充当社区发行版的角色,但作出重大决策的常常是其创办人马克·沙特尔沃思(Mark Shuttleworth)或者他在Canonical公司的一套顾问班子;这样一来,Ubuntu遭到的抨击就更为猛烈了。Ubuntu的领导人又经常迟迟不对公众意见作出回应。
但是无论批评的声音来自何处或者有没有道理,针对Ubuntu的批评从侧面表明了它在FOSS领域所具有的影响力。可能与其说批评是别人出于嫉妒,还不如说是表明Ununtu所做的一切举足轻重。
二、KDE VS GNOME
作为两个最流行的Linux桌面环境,GNOME和KDE天生就是对手。它们都有各自的一套生产力应用程序和实用程序,各自的窗口组件工具包,以及各自规定应用程序的外观和运行应该怎样的一套指导准则。
不过,这场论战的一方面似乎可以追溯至自由软件的早期阶段,当时KDE的使用免费许可证的Qt工具包还没有出现,GNOME项目是以替代者的角色而开始问世的。
对立态势主要出现在用户当中。开发人员有时会流露出这种对立情绪,不过眼下,这两个项目在竭力保持采用共同的桌面标准,希望增强互操作性,甚至还在同一个场地召开大会。等GNOME 3.0发布后,对立态势可能会升级,而用户可以自由选择这两种设计全然不同的桌面环境。
三、Mono的赞成派VS反对派
Mono是FOSS实施微软.NET框架的产物。虽然Mono本身就是FOSS,但它依赖微软没有向公众发布的资源;许多人担心,Mono可能会成为专利侵权案的导火索。支持者反驳说,Mono是一款一流的开发平台,并表示.NET资源使用的现有许可证足以保证Mono可以安全地使用。
这种技术圈子的论战通常根本不会引起公众的关注。但是这场论战来得尤其激烈,那是由于FOSS社区普遍不信任微软。而使事情进一步复杂化的是,Mono的创始人兼首席民意代表Miguel de Icaza就算按FOSS的标准来看也是敢说敢言;针对Mono的批评有许多到头来变成了针对他个人的抨击。
目前,论战还算比较平静。不过,如果你搜索一下博客,就会发现这个争论从来没有完全消停,肯定会再次爆发。它总是这样。
四、云应用软件VS本地应用软件
不管你使用什么操作系统,云计算都会带来隐私和可访问性方面的问题。然而如果拿FOSS作比较,云应用软件就变得不那么讨人喜欢了。
首先,两者都是免费的、随时可用的。可是大部分云应用软件是专有软件,要求用户信任负责运行服务器的那些人的技能和诚信。
诚然,的确存在适用于云应用软件的Affero GNU通用公共许可证。但是这种许可证没有得到广泛使用,这就是为什么自由软件基金会的创始人兼总裁理查德·斯托曼(Richard Stallman)继续经常提醒离这种许可证远点,他因这个立场而经常受到抨击。(Stallman的观点也可以在他最近的访谈中看出。Stallman一直坚持云计算是剥夺用户自由的,自由的技术应该可以让用户在自己的服务器上搭建,或者基于P2P。)
#p#副标题#e#
五、用户VS开发人员
十二年前,用户和开发人员在FOSS领域几乎完全可以划等号。现在,随着FOSS桌面环境得到更广泛的应用,许多用户与开发一点也没有关系。许多用户甚至不提交软件缺陷报告。
在过去的三年,这种情形已开始导致用户起来反抗。KDE 4.0发布后,最先出现了这种反抗;随着GNOME 3.0和Ubuntu的Unity桌面环境即将发布,似乎也会出现用户反抗的一幕。
用户有这样的反应,一方面是由于保守的态度,害怕新事物。不过用户们也抱怨:界面明明已经让他们觉得满意,还要进行一番改动;而且,开发人员没有听自己的心声。至于开发人员,他们经常抱怨:用户作出草率的判断,没有给予新特性日趋完善的时间。
许多FOSS开发人员并不习惯于听用户的心声,结果这个问题变得尤为严重。这也让希望吸引新开发人员的项目面临的问题复杂化,因为添加新的特性通常比针对现有应用程序进行小幅改动要令人满意得多。
六、完整桌面VS快捷桌面
像KDE和GNOME这些最流行的Linux桌面环境一直试图为用户提供一套全面的应用程序。这个目标有时导致批评人士抨击它们“很臃肿”,这个词语通常用来指Windows或微软Office,不过KDE和GNOME要求的内存或硬盘空间比Windows都要低得多。
不过,开源领域存在一股比较小但很明显的动向:重运行速度,轻完整功能。当然,有些用户总是更喜欢风格简洁的窗口管理器,作为图形界面。不过越来越常见的是,现在像LXDE这些更小巧、运行更快捷的开源桌面环境也加入到了ICEWM和Fluxbox等窗口管理器的队伍。
Xfce等其他桌面环境试图在完整功能和运行速度之间求得平衡,不过批评人士日益指出,Xfce不如它声称的那样是个轻量级系统。
应用程序当中存在同样的这种区别。比如说,许多人更喜欢像AbiWord这样的轻量级文字处理程序,而不是像LibreOffice或OpenOffice.org的Writer这样功能齐全的文字处理程序。
七、命令行VS桌面
在过去,Linux等类似UNIX的系统是通过命令行来运行的。但是随着像Ubuntu这样的发行版越来越流行,人们的重心迅速转向桌面。现在,命令行用户公开谴责桌面过于简单,而桌面用户对命令行不屑一顾,觉得对于面向任务的用户来说过于晦涩难懂。
实际情况比较复杂。命令行学用起来比较费时间,但又是唯一提供一整套选项的界面。相比之下,桌面谁都可以几乎马上会用,但由于其设计理念,只提供一些最常用的选项。这些差异意味着,对于高级用户来说,命令行更高效;但是对于初学者来说,桌面更高效。倒不是说命令行或桌面的优点一般是相对的,而是完全是绝对的。
八、技术圈女权主义的兴起
开源领域一向男人的天下,很少见到女人的身影——这个现象在开源领域可能比在整个计算机行业还要来得明显。虽说这些年来已成立了多家组织,改变男女明显失衡的这个局面,但这个问题只是在最近几年才得到了广泛报道。
证明男女不平等问题的证据遭到了普遍的否定。有的反应比较温和,比如声称不愿承认开源社区不如大多数成员喜欢认为的那样来得开明没什么大不了。不过,极端的反应是公然反对,包括宣扬男权至上、威胁恐吓以及攻击性邮件。
使事情复杂化的是,被批评大搞性别歧视的那些人还包括常常备受尊敬的开源社区领导人,包括理查德·斯托曼和马克·沙特尔沃思。
随着Ada Intiative在上周的成立——这家非营利性组织致力于鼓励女性参与FOSS,这个争论也许上升到了一个新的高度。
九、自由软件VS开源软件
自由软件与开源软件之争是一场从来不曾完全消停的论战,这场论战经常把开源社区从中间一分为二。
十三年前最初造出“开源”这个词时,目的是为了推广比“自由软件”更有利于商业运作的一个术语。然而今天分成了两大派,一派强调自由许可证在理念和政治方面的影响(自由软件),另一派则强调采用自由许可证的更高的软件质量(开源软件)。
当然,这个区别并不总是那么明显。考虑比较周到的开源倡导者认为,高质量的应用软件是实现自由软件所强调的个人自由的一个途径。此外,自由软件支持者的阵营很广泛,有的是从来不会使用专有软件的人,有的是替代软件出现之后很不情愿使用专有软件的人。
不过有时候——比如在GNU通用公共许可证的第三个版本备受争论之际,这两种观点会变得截然不同,以至于双方的支持者似乎忘了它们其实是盟友,彼此在观点上比其他任何人更相近。
开源领域的其他论战
上面这些不是我本来可以提到的唯一几大论战,也不是按任何标准来划分的。
如果我想要侧重于操作系统,本来可以提到Linux与Windows之争,或者翻出老账,谈论Linux与Minux之争(又叫Tannebaum与Torvalds之争,或者微内核与宏内核之争)。
如果从更注重技术层面的角度出发,我可能会谈论代码的缩进风格,或者是Vi与Emacs编辑器之争,不过现在这基本上成为了一个笑柄。
我本可以提到流行的发行版之争(比如Fedora与Ubuntu)、浏览器之争(比如Mozilla与Chrome),或者许可证之争(比如GNU通用公共许可证与BSD风格的许可证)。选择之广几乎与论点本身一样无穷无尽,而且在将来只会有增无减。
比如说,鉴于Debian发布时随带一个自由内核,其他发行版可能会发现自己面临越来越大的压力,也要随带自由内核。
大剧作家萧伯纳曾经形容英国和美国是“由一种共同语言分开来的两个国家”。你几乎可以用同样的话来形容FOSS社区——有时候,就像是成百上千的用户和开发人员由一批共同的软件分开来的。