开源运动中的黑客文化思潮_黑客论文

开源运动中的黑客文化思潮_黑客论文

开放源码运动中的黑客文化思潮,本文主要内容关键词为:思潮论文,源码论文,黑客论文,文化论文,此文献不代表本站观点,内容供学术参考,文章仅供参考阅读下载。

从1985年自由软件基金会的创立到1991年Linux在网上的公开发布,以Linux为代表的开放源代码软件现已成为挑战软件巨头微软公司的一支重要力量。在Linux蓬勃发展的后面,有一个庞大的黑客群体在支撑。(注:“黑客”一词来源于英语动词hack,意为“劈、砍”,被进一步引申为“干了一件非常漂亮的工作”。另一种说法是,hack在20世纪早期麻省理工学院的校园俚语中有“恶作剧”之意,带有反既有体制的色彩。早期的黑客主要活动于20世纪60~70年代的麻省理工学院和斯坦福大学,其文化背景是当时风起云涌的嬉皮士运动所提倡的自治主义与民主观念,这批人奠定了现代个人计算机革命的基石。像微软的盖茨和艾伦,苹果的乔布斯都曾是些有名的黑客。只不过在后来,这个名词被错用来形容那些专门入侵私有系统的电脑大盗们。这些人其实是cracker(骇客),他们不像黑客们创造新东西,而是破坏东西。) 理查德·斯托曼(Richard Stallman)、埃里克·雷蒙德(Eric Raymond)和李纳斯·托沃兹(Linus Torvalds)作为其中的三个领袖人物,在推进开源软件发展的历史过程中秉持不同的主张,起着不同的作用。

斯托曼:软件自由的启蒙主义

斯托曼是推动开源软件发展的第一代黑客。青年时期(20世纪70年代),他就在哈佛大学物理系和麻省理工学院人工智能实验室学习和工作。在他工作的实验室里,软件被自由地分享,提供源代码给那些需要它的人,程序员可以根据自己的需要去修改或者纠正程序的错误,斯托曼喜欢这种共享和开放的文化。但这段美好的时光在20世纪80年代初结束了。1981年,从实验室分离出去的一个名为" Symbolic" 的公司几乎雇走了人工智能实验室所有的黑客,实验室共享、自由的黑客文化遭受了很大的伤害。

斯托曼面临着个人选择:第一种出路是继续留在人工智能实验室做一名系统程序员,但这意味着自己必须在专有软件的框架内工作,签署不公开协议。尽管能由此而发财,但却与斯托曼的人生原则根本抵触。斯托曼认为专有软件社会系统的观念是反社会、不道德和完全错误的。另一种出路是直截了当地离开计算机领域,尽管技能不会被专有软件公司滥用,但自己的计算机才能却会被浪费。斯托曼试图在这两种选择之外去寻求解决之道。最后,斯托曼做出了一个天才程序员才敢下的决定,他要写一个自由的操作系统,因为操作系统是电脑最基本的软件。这个操作系统名为GNU。(注:GNU原意为“角马”,是一种非洲的动物。在这GNU是GNU' s Not Unix中每个单词首字母大写的递归,意为GNU与Unix操作系统兼容,但却不是专有的Unix。递归是数学上的基本概念之一,用递归来为工程命名是黑客文化的传统之一。)

1985年,斯托曼发起成立了自由软件基金会(Free Software Foundation,简称FSF),发动了一场名为“自由软件”(free software)的运动。对于自由软件,斯托曼一直强调" free software" 中的" free" 指的是“自由”,而不是“免费”,为了更好地理解这一概念,斯托曼建议大家多想想“自由言论”(free speech),而不是“免费啤酒”(free beer)。

在《为何软件不应有主》一文中,斯托曼对软件的产权制度进行了深入的剖析。他认为版权体制的发展起源于印刷术——一种大规模的复制生产技术。因为限制对象主要针对具有大批量生产能力的印刷出版者,版权制度便显得非常有用。但它并不剥夺读者的自由,如果你是一个普通的读者,那么你可以靠手抄合法得到一本书,不会因此而被起诉。但信息技术的发展却使得这一体制面临着诸多问题。数字技术使得信息的复制和修改来得更为容易,一旦信息数字化之后,人们就很容易对它传播。通过信息技术,读者也可成为印刷厂的老板,进行大批量的复制,这击中了版权制度的要害。斯托曼还驳斥了人们一个根深蒂固的错觉,即绝大多数人认为版权应该是作者们的一种自然权利。对此,斯托曼认为一个软件程序与一碗意大利面条不同,面条如果被一个人吃掉了,那么别的人就没法再吃,它不可能与人共享;“但无论你是运行或修改我写的程序,对你自己的影响是直接的,对我仅是间接的。无论你给朋友一份软件的复制品,那么对你和你的朋友影响是直接的,而对我是间接的。我无权禁止你去这样做,任何人也没有这样的权利。”人们对版权的这种错觉之所以产生,是因为软件商业界向社会潜移默化地灌输。斯托曼援引美国宪法就版权条款制定的历史指出,版权是作者的基本权利的观点在一提出后就被立法者所否认。之所以设立版权制度,并非是为了对作者给予奖赏,而是出于促进市场进步的目的。某种程度上,版权制度确实给了作者和出版商以一定的物质回报,但它真正的意义却在于为规范市场提供了一种有效的途径。

斯托曼在辩述完软件不应有主之后,又写作了《为什么软件应该自由》,用成本—利润的分析方法,从社会整体的角度来考察软件有主的有害性,从而得出软件应该自由的结论——“程序员们有责任鼓励其他人分享、再分发、研究并改善我们写的软件:也就是说,写自由软件。”

在斯托曼那里,他从道德层面出发反对现行的软件保护(通过运用版权或者其他法律规则,赋予作者对其他人的排除权)。斯托曼把建立在版权激励基础之上软件作者的排除权看作是天性不和,并且是反社会的。他把自由软件基金会的工作看作是抛弃这种模式的第一步。传统的软件保护模式是版权专有(copyright)+专有软件许可证(proprietary software license),而斯托曼则把这种模式变为了版权开放(copyleft)+通用公共许可证(General Public License),从而保持了软件自由的属性。对于这一软件保护的新型模式,斯托曼是这样认为的:

“GNU的目的是给用户以自由,而不仅是为了争取大量用户。因此我们必须使用某种发行条件,以避免将GNU软件变成专有软件。我们使用的方法称为' Copyleft' (版权所无)(注:Copyleft的中文译法有“版权所无”、“非版权”、“左版”等,我的译法是“版权开放”。参见徐剑.版权开放:Copyleft的法学释义[J].上海交通大学学报(哲社版),2003,(3):45—50.)。

Copyleft利用了版权法,但反其道而行之,以达到与通常相反的目的:将一种将软件私有化的手段转变成了保持软件自由的手段。

Copyleft的中心思想,是我们给予任何人运行、拷贝、修改以及发行改变后程序的许可,但不准许附加他们自己的限制。从而保障了每个人都有获得‘自由软件’的软件拷贝的自由,它们成为了不可异化的权力。”

由于身具嬉皮士反传统的文化背景,斯托曼在反对现行软件版权保护体制的同时,赋予了自由软件浓厚的道德色彩以及无政府主义的基调。在社会公众眼里,斯托曼被认为是一个传播技术福音的圣徒;在商业界,斯托曼则被认为是一个不通世情的极端主义者。斯托曼一方面大力传播他的自由软件理念,启蒙下一代黑客;另一方面,他也亲自参与了许多自由软件的开发工作,实践他的软件自由理念。许多人评价他道:“如果斯托曼不存在的话,那么就有必要创造一个像他这样的人。”

雷蒙德:开放源码的实用主义

斯托曼是个启蒙主义者,尽管他因对专有软件阵营强烈的战斗精神而受到大家的崇敬,但在黑客社区里则有些成员认为斯托曼的主张过于激进而显得不切实际。一个典型的例子就是GNU工程的主要目标就是写一个自由的操作系统,但这个操作系统的关键部分——内核HURD却迟迟不能投入正式使用。幸运的是,Linux内核于1991年诞生了,在第二年,Linux内核与其他的GNU系统软件融合成为了一个完整的自由操作系统Linux。黑客们发现,并不是Linux的首创人李纳斯独具天才,重要的是他采用了一种新型的软件开发模式:开放软件源代码。这一模式和斯托曼强调软件自由的理念有所不同,它更强调合作,甚至不排除商业软件公司的参与。新一代的黑客们由此发展了一种更为实际的观点:由强调软件自由转向推广软件开放源代码。这一批黑客后来成立了开放源码促进会(Open Source Institute,简称OSI),推广开放源码运动。埃里克·雷蒙德(Eric Raymond)便是该组织的思想领袖。

雷蒙德早期追随斯托曼致力于自由软件的开发,但随着自由软件事业由于开发不出操作系统的内核而陷入根本的困顿,他意识到是斯托曼反商业的偏激态度出了问题。Linux的成功引起了他新的思考,雷蒙德从自己对黑客文化研究的角度出发,认为在意识形态色彩极其浓厚的“软件自由”之外,还有更好的选择——那就是早在自由软件基金会创立之前,就存在于一群工程师当中的开放源码传统。雷蒙德认为,Linux的成功不是因为它是自由软件,而是开放了软件程序的源代码。

与传统的专有软件相比,开源软件有哪些优点?雷蒙德写了《大教堂和集市》一文,通过对开放源码实际案例的深入解读,发掘出了一种软件开发的新型模式——开放的集市模式,并且得出结论,以Linux为代表的开放源码的集市开发模式优于源代码封闭的版权专有软件。前者他称为软件开发的集市观,后者他称为软件开发的大教堂观。

“在建造教堂模式的编程人员看来,错误和开发问题是狡猾的、阴险的、隐蔽的现象。即使花费几个月来仔细检查,也不能给你确保把它们都挑出来的信心。因此在很长的发布周期、很长的等待之后,却不能得到完美的版本来发布,由此而引起的失望是不可避免的。以集市模式的观点看,与前相反,则假定错误是浅显的现象;或者至少当它们随新版本测试而暴露给上千个热心的协作开发人员时,它们很快就变得浅显了。所以你可以经常发布新的测试版,来获得更多的更正。如果你偶尔做了一个笨拙的修改,作为一个有益的副作用,你也不会损失太多。”

雷蒙德认为以上所论正是大教堂和集市开发模式的核心区别。对于传统的软件开发模式(大教堂模式)而言,因为其源代码是封闭的,所以软件工程是由少数高级专家主导,有如建造教堂般精雕细琢,时机未到绝不轻易放出测试版本,使用者和开发者之间泾渭分明。测试和除错由此也成为了开发过程中最耗时、最费心的一段。所以对很多复杂的软件工程来说,都很难逃脱布鲁克丝定律:“为进度落后的软件工程增加人力,结果只会更慢。换句话说,增加N个程序设计员,实际效益如果是N的话,那么因协调工作而造成的复杂度和沟通的成本就是N平方。”

但以Linux为代表的集市开发模式的开放源码软件则摆脱了此一规律。雷蒙德据此归纳了一个“Linus定律”——“如果有足够多的眼睛,所有的错误都是浅显的。”因为源代码是开放的,软件的使用者也是软件的开发者,所以在Linux软件的开发过程中,使用的是“早发布、常发布”的测试策略,借着互联网的便利,软件用户可以对自己感兴趣的工程部分进行测试和修改,并通过互联网随时反馈到主要开发者手中。这种开发模式免去了大量的协调和管理成本,利用快速的传播机制来反馈修订,从而使重复劳动达到最小化。

雷蒙德由此得出结论,之所以选择开源软件,不是因为开源软件在道德上是正确的,传统的商业软件“囤积居奇”在道德上是错误的;而是因为开源代表着一种更有效的软件开发模式,即把更大更好的开发资源放在解决问题上。在这一点上,雷蒙德鲜明地表达了他和斯托曼的不同,斯托曼认为自由软件之所以会胜利是因为它道德上正确,而雷蒙德则认为在自由软件背后真正的革命精神不在自由上,而在开放源码这一新型的软件开发模式上。对于一个开发模式而言,它在道德上是中立的,既可为商业所用,也可反商业。

对雷蒙德而言,他更关心的是开发模式的商业化。继《大教堂和集市》之后,雷蒙德又从经济学的角度入手,归纳了开放源码9种开发模型——2种使用价值集资模型(价值分享和风险均摊)和7种间接销售价值模型(失败的领导者/市场定位者、糖霜策略、奉送食谱开办饭店、附加产品、未来免费出售现在、软件免费销售品牌以及软件免费销售内容。雷蒙德认为开源社区的经济基础“不是建立在传统的金钱交换模式基础之上,而是建立在人类学家称为‘礼物经济’(Gift Economy)之上。在这种形态中,社区成员在互相赠与礼物上进行竞争。”雷蒙德认为,开源工程中黑客的回报不是传统软件开发模式中的物质回报,它是一种名誉的回报。黑客们通过赠送礼物,最大化了他们技能的声誉。为什么黑客乐意进行开放源码工作,雷蒙德得出了一个这样的判断:是礼物经济,是名望诱动。

雷蒙德的论述赋予了开放源码以理性色彩,他认为开放源码和封闭源码虽然驱动力不同,前者是礼物赠与经济,后者是物质交换经济,但两者都是可被归纳的,可以模式化的。雷蒙德的实用主义论调很为商业社会所欢迎。在《大教堂和集市》一文的影响下,网景公司于1998年在Mozilla.org网站上释放了其网络浏览器技术的源代码。继网景公司之后,IBM、SUN等大型公司也纷纷加入了开放源码阵营。

李纳斯:技术进步的快乐主义

一派是以斯托曼为代表的自由软件基金会(FSF),另一派则是以雷蒙德为代表的开放源码促进会(OSI),两位黑客领袖的不同观点造成了黑客社区的分化。对论辩双方而言,都会举出Linux这一操作系统来阐述自己的思想。但别有意味的是,作为Linux系统发明人的李纳斯·托沃兹对双方的观点都不尽赞同,他走的是“第三条道路”——快乐主义。

1991年,其时还在芬兰赫尔辛基大学读书的李纳斯自己动手写了个电脑操作系统,取名为Linux(注:起初李纳斯并没有以Linux为操作系统命名,因为他觉得那太自我中心,初始的名字用的是Freax(Freak有异想天开之意)。在他朋友阿里·莱姆克的帮助下,李纳斯把操作系统上传到了莱姆克所在的赫尔辛基工学院的FTP上。莱姆克极不喜欢Freax这个名字,倒喜欢当时也在用的另外一个名字Linux,并把李纳斯的邮件路径命名为pub OS/Linux。Linux一名由此而得以推广。),并在互联网上公布了源代码。他的初衷是开发任何人都可以使用的操作系统,愿意接受别人在免费公开的前提下提供的修改、补充和增强。在互联网的帮助下,成千上万的黑客通过网络加入到Linux的内核开发。经过十余年的发展,这个起源于大学生卧室的程序,现在已成为世界历史上最大的合作项目,在商业领域也得到了广泛的市场认同,在服务器操作系统市场上与Windows、UNIX分庭抗礼,被认为是微软垄断地位强有力的挑战者。Linux众多的代理服务商如Red hat、VA Linux纷纷上市,受到了资本市场的追捧。而以IBM、Sun、Oracle等为代表的传统软件巨头也纷纷宣布斥数百亿巨资投入到Linux的开发,加入到开放源码的阵营。

Linux的成功很大程度上和其设计者李纳斯的软件开发思想有关。一方面,李纳斯重视协作开放,采用自由软件基金会最推崇的GPL作为Linux的发行许可证。但另一方面他却不认同斯托曼绝对的理想主义:“我从未感到自己身处理想主义阵营。的确,我总是将开放源代码视作一种使世界更美好的途径。但仅有这一点还远远不够,除此之外我还将它视作带来快乐的途径。这可就不怎么称得上理想主义了。”李纳斯认为斯托曼把GPL看作促进资源开放的唯一方式,舍此之外,别无他途;而自己开放Linux却不是出于斯托曼那么高尚的目的,而是希望得到回报。这种回报是什么呢?那就是李纳斯一直以来孜孜以求的最好的技术。在李纳斯看来,GPL发行许可和开放源码模式为最好技术的产生创造了条件,它们可以防止技术封锁,保证任何对研究和技术感兴趣的爱好者都不会被排斥于开发研究之外。但是不是所有的发明创新都应纳入GPL呢?李纳斯认为这种想法是完全不可能实现的,而应由开发者个人自行决定是在GPL里注册还是利用其他更便于保护版权的方法。

在不认可斯托曼道德理想主义的同时,李纳斯对同处于开放源码阵营雷蒙德的商业色彩较浓的实用主义论调也不尽赞同。在雷蒙德那里,有个重要的概念,即礼物经济。雷蒙德认为,在开放源码运动中程序员受名声驱动而努力工作。但李纳斯却不认同这种说法,他举自己为例:

“最初的Linux只是我手头做的一件事,主要是出于‘看我做了什么——它难道不灵巧吗?’的想法,我把它变得可以用了。我希望它对一些人有用,当然在这也有些炫耀的动机。‘名望和声誉’来得比较晚,并且也从来不是主要的动机,尽管它的确在某种程度上使我继续工作,并且不为由于该工作而忽视学业感到心虚。在那些日子,最大的动机仅仅是有人开始使用它,并且觉得它干得不错,其他人满意这种使用的乐趣。”“乐趣”(fun)是李纳斯开发Linux的动机所在,该词后来也用做了李纳斯于2000年出版的自传的书名——JUST FOR FUN(中文译名为“乐者为王”)。

为什么要开放源代码?和斯托曼的重道德、雷蒙德的重文化侧重点不同的是,李纳斯把自己开放源码的理论基础放在了技术进步:

“公开源代码的理论基础就是:简单化。在操作系统这一情形里,源代码——即那些构成系统的程序指令——是自由的,任何人都可以改进它、改变它和利用它。但这些改进、改变和利用后的源代码也必须是可以自由获得的。项目不属于任何个人,而是属于每一个人。通过将其开放,会产生迅速和连续的改进。比之于封闭起来开发,由志趣相投的人们组成的队伍在各处平行地同时进行开发,其结果会出得更快、更成功。”

开放一切事物,就会产生各种可能性。作为一个技术天才,李纳斯更关心的是这样一个技术现实:那就是公开源代码是开发和提高最佳质量技术的最好方法。那么,软件工程师又为什么而工作?对于这个问题,20年前,比尔·盖茨在《致业余玩家的一封公开信》中宣称,电脑硬件收费,软件也应该收费。作为一个软件业的经典文献,该文宣布了软件业进入了收费期。但20年后,随着互联网的迅速发展,近百万的优秀程序员却在毫无报酬的情况下投入到Linux的开发与改进中。如何解释这一现象呢?李纳斯认为,如果用一个词来概括这种动机的话,那就是“目标”。“在一个生存或多或少已经有保障的社会里,钱财并不是最大的激励因素。众所周知,当人们是由爱好和热情所驱使着的时候,往往能够将工作做得最好。对于剧作家、雕塑家和企业家是如此,对于软件工程师也是如此。公开源代码模式给人们提供了依靠兴趣与热情而生活的机会。享有乐趣以及与世界上最好的程序员一起工作,而不是与那些恰巧为他们的公司所雇佣的少数几个程序员在一起工作,是一种无与伦比的享受。公开源代码开发者努力工作着以赢得他们同行的尊敬,那当然是一种高度有效的激励。”

开放源码之所以会被选择,是因为它比封闭源码的开发模式在技术上更为先进,在社会成本上更低。尽管如此,李纳斯依然对封闭源码的开发模式予以尊重,因为这涉及个体选择的自由权。由技术的进化,李纳斯又推出了他的社会进化主义,他认为人类被三种事物所驱使,它们的次序依次是:生存、社会交往、寻找乐趣,这也是进化的次序。而这些都可通过从事Linux类型的项目来实现。如李纳斯在其自传书中所言:“把生存视为既定的前提,Linux实际上既能给人带来通过智力挑战实现的乐趣,又能实现人们共同参与创造它时感受到的社会激励。”

斯托曼十年横跨美国两个最著名的高等学府的院校背景,以及他早年深受嬉皮士反主流文化熏陶的经历,使得他的主张带有鲜明的自由、开放、理想的院校启蒙主义色彩。斯托曼对软件应该自由的哲学思考为软件业的进一步发展奠定了基础。他关注的不仅是计算机科学的进步,更重要的是他在推广一种知识自由、共享的科学精神。他为了自己的理想而进行实践,并取得了很大的成功,但由于他把自由附上道德标签,使得他的一些做法在物质财富还不是极大丰富、专有软件还会有很长一段时间的现实面前显得不切实际,从而带有个人英雄主义的味道。

与斯托曼的启蒙主义相比,雷蒙德把自由软件的精神用开放源码的策略引入到了商业界,这种做法比较实际。雷蒙德自小就是黑客社区的一员,从未受过正规的高等教育,这使得他在某种角度上更能反映普通黑客的主张。作为一个圈内人,他用文化学、社会学的眼光来打量自己所处的黑客世界。雷蒙德认为,黑客世界尽管无为而治,但在深层次有一套自己的社区规范:在激励机制上,是依靠名望驱动;在开放模式上,是众人拾柴火焰高的集市模式,而不是金字塔式的大教堂模式;在经营模式上,主要是服务经济。雷蒙德认为,这些结构分析表明开放源代码无关道德判断。用另外一句话说,开放源码也可赚钱。雷蒙德的实用主义把开放源码运动引入了更广阔的经济领域。

与斯托曼、雷蒙德不同的是,北欧国家出身的李纳斯并没有什么复杂的身世、文化背景。他长于个人电脑突飞猛进的年代,接受中规中矩的学校教育,擅长运用互联网这一新技术,以及自发性地对编程事业的喜爱,这些和一个普通的程序员并没有什么不同。但正因如此,李纳斯的主张更具有网络民主的代表性,更能体现出由黑客精神衍生出来的普通程序员的想法——“编程的乐趣”。李纳斯更关心的是技术的进步,他在自由软件和开放源码中走的是但为所用、不加价值判断的中庸之道。

标签:;  ;  ;  ;  ;  ;  ;  ;  ;  

开源运动中的黑客文化思潮_黑客论文
下载Doc文档

猜你喜欢