抛弃“free software”,采用“open source”

来源:百度文库 编辑:神马文学网 时间:2024/04/27 14:47:39
抛弃“free software”,采用“open source”
摘要
Raymond是一个颇有影响力的自由软件精神的倡导者----其要旨是产生高质量软件的最好办法是将其源代码向整个世界完全开放。Raymond的论文“大教堂与集市”极具说服力地阐明了这一理论,指出软件开发当有一群相互独立工作的黑客在一种全开放的氛围中协作进行时,就能做的最好。(2002-07-05 08:22:18)ByWing, 出处:蓝森林
当我第一次通过Email和“新黑客词典”的作者Eric Raymond联系,请他澄清我正在做的一个项目研究的论点时,他着实把我气的够戗。
“看上去你做的这点东西太缺乏技术深度了”他在回信中说道“任何真正的黑客不假思索都知道你的问题的答案。去找个专家帮帮你吧,否则你将出版一本废话连篇的书”
噢。我马上被刺痛了,并毫不犹豫展开反击,我们在谈正事前一连几天都在通过Email相互抨击。后来他告诉我,我刚好够资格被他的“白痴过滤器”给滤掉----一种他用来排除闲杂人等对他的无谓干扰的技术。Eric Raymond的白痴过滤器的标准设的可真不算低。
我第二次遇到Raymond是在97年秋天,当时我正做一个关于Apache Web服务器项目和自由软件运动的报告。Raymond是一个颇有影响力的自由软件精神的倡导者----其要旨是产生高质量软件的最好办法是将其源代码向整个世界完全开放。Raymond的论文“大教堂与集市”极具说服力地阐明了这一理论,指出软件开发当有一群相互独立工作的黑客在一种全开放的氛围中协作进行时,就能做的最好。这次,我们的谈话进行得相当客气----因为我在问他最热爱、最信奉的东西。再没必要发火了。2:55
最后,当我和他面对面直接交谈时,发现他是一个精力旺盛、信心十足的人。就在4月1号(注:98年),Netscape宣布开放Navigator 5.0的全部源码----公司的官员们说,这一决定是受了Raymond“大教堂与集市”一文的影响才作出的。 为庆祝这一事件,Raymond来到硅谷----既是为了出席发布会,也是为了参加一个“自由软件峰会”,这次会议将包括几乎所有自由软件相关的重要角色。
我借机驱车前往,请他出去共进午餐。当我在他的临时办公室里找到他时,我说此刻对他一定是个激动的时刻。不加一丝嘲弄,这个40岁的老黑客回答道,:“噢,yes--对我们的文化和我们的人民来说,这个时刻我们已经等了将近20年。”
我们的文化和我们的人民。这词语太夸张了,但却并非毫无根据。Raymond不是摩西---自由软件运动没有一个领袖---但是Netscape的声明事实上已经让那个世界的怪客(geek)们一瞥未来的美好前景。而Eric Raymond是最好地定义了怪客(geek)这些词语的人。(注:指他编篡了“新黑客词典”)
Raymond自称是一个新异教徒自由主义者,喜爱半自动轻型武器射击。他完美地符合古典黑客的定义。黑客们通常自视高人一筹;而自由软件的自由主义主义黑客更自视为最高的高人。Raymond一次骄傲地对我说:“我是一个傲慢的狗杂种(I‘m an arrogant son of a bitch.)”(译注:尽管我能理解Raymond说此话的心态,但还是觉得他用词过分 :) )
黑客的世界充满了类似的傲慢的狗杂种,这千真万确,但是对Raymond而言,计算机更是一个让他充分表现自我的场所。有一次玩笑中谈到他的“拿破仑情结”,Raymond告诉我他小时曾得过先天性肌肉乏力症。这种经历鼓励他把计算机看作一个他能够控制的王国,不象外部的物理世界那样排斥他。
注:下面是作者同Eric的对话记录
--------------------------------------------------------------------------------
----你是怎样发现Netscape采用了你论文中的主意的?
1998年1月23号,我正坐在机器前面愉快地编着程序,有个人给我发了个Email,说:“嗨,Eric,快去看看这个网页。我想有人读了你的论文。”我就打开浏览器,看到了Netscape公布Navigator 5.0源码的消息。我一边看一边想,真是有趣!
不仅是因为我突然看见了我们的文化等了20多年的突破---而且因为我看到了很多很熟悉的词语,那感觉很奇怪,象是谁拿了我的论文过去在市场的绞肉机上绞了一通。一个小时后,Netscape的人力资源部经理打电话给我,一直说了20多分钟,说你影响了这个决定,公司的高层都读了你的论文(“大教堂与集市”),他们都很喜欢它,现在Jim Barksdale(Netscape最高执行长官)正在告诉新闻界你的名字。
----你的感受如何?
well,我挂了电话,开始有些发懵,然后坐下来开始思考整个事情。有几件事情一下子变得异常清晰:1 这是一个巨大的机会。20年了,多么一段漫长的日子,自从我开始从事Unix和GNU这些东西以来,再往前些,从Internet只是一部分技术专家的玩具时,世界上其他人不知道也不关心我们到底在做些什么---可是我们知道,在设计软件和操作系统以及在相互共享工作成果方面,我们有更好的方法。但是没有人愿意听我们的。
Netscape这样做为我们打开了一个机会的窗口,能让外界听到我们的声音。
但这也有另一方面的问题,如果Netscape这么作了,或许下一个十年没有人再来听我们的了。
----在某些方面,Netscape的举动似乎预示着Internet上的古老的“给予经济”理想的复苏---如果每个人都各尽所能,不计回报,Internet将发展得最好。“给予经济”对你自己想在自由软件运动中扮演什么角色有影响吗?
这是我一直想做的事情。原因很简单。象大多数黑客一样,我并不十分在乎金钱。我干我自己想干的,主要是出于艺术上的满足感,以及我想让其他人认为它是个很好的艺术。我的意思是,如果我把它当成是一种艺术,很好,因为基本上我能够判断自己所做的是漂亮还是丑陋。但是通常你很难知道你是在一个正确的方向上,除非其他人使你确信这一点。因此,跟其他黑客一样,我的最大的动力来源之一就是我希望其他黑客也能认为我做的是一个很好的艺术。并且我希望他们能够相信我是一个高效、多产、优秀的设计师。
关于市场和交换文化我没有特别的反感,只是我确实不想生活于其中。从1977年以来可以清楚看到,在Internet上一直存在一个繁荣的、不断增长的“给予文化”在软件方面做着一些有趣的事情,我一直希望成为其中的一部分。那才是我想要生活的地方。
----我注意到你不再使用“自由软件”一词,而是使用“开放源码”,能解释一下为什么吗?
当然可以。在和Netscape会谈之后,我召集了一些从事自由软件的黑客,开了一个我们的战略研讨会,讨论了如何利用这次Netscape的突破事件。 我们制定了一些战略和战术。第一:“自由软件(free software)”这一词必须放弃。因为没有人知道这里的"free"是什么意思,而且按照他们的想当然的看法,这一词带有浓厚的意识形态味道,并和波士顿的那个疯狂的家伙--Richard Stallman--密切相关。
----这可有点招事儿的意思。(Richard Stallman是Stephen Levy在“黑客:计算机革命的英雄”一书中描写的真正黑客的典范,是最广为人知的自由软件的代表GNU的创始人)
我非常热爱Richard,从70年代以来我们就是好朋友,他为我们的社群作出了巨大的贡献。 但是,在我们现在正在进行的这场战役中,意识形态只会让事情更糟。我们需要在经济、开放过程和期望回报率方面的有力论据。我们不想以卵击石。那样做必输无疑。因此,我们需要一个新的标签,想来想去,最后终于确定采用“开放源码(open source)”这个词。
----为什么源代码开放如此重要?
软件工程的核心问题是稳定性。软件的稳定性通常是非常糟糕的。在其他的工程领域中,你是怎么得到稳定性的?答案是大量的、独立的同行检验(peer review)。你不会相信一篇未经过同行检验的科学论文的正确性,你也不会相信一个为经过独立的同行检验的建筑工程的可靠性,对软件也是如此。但是,除非你把源代码公开,否则你就不会得到这个。使得Internet能够正常运转的四个最基础的东西---Bind, Perl, sendmail and Apache ---都是开放源码的,都非常稳定。如果他们不是这样的稳定,Internet就无法正常工作。它们之所以如此稳定,就是因为在它们的整个发展历史中有很多人不停地改善源代码,发现bug并加以修改。
---然而如何保护知识产权哪?
这同有关知识产权的意识形态毫无关系。我也不在乎这点。我不再对这个观点感兴趣。如果你的源码是公开的,你就能得到同行检验,否则,你就得不到同行检验,你也就得不到稳定性,仅次而已。
---在开放源码的网页上,你列出了为什么在一个自由软件的世界中程序员不会被饿死的理由。但真的是那样吗?象Netscape或Microsoft,他们不在乎他们的程序员会不会被饿死吗?Netscape会从开放源码中得到什么?
我已经注意到了开放源码的几个商业模型。Netscape现在使用的叫做市场定位(market position)或失败领袖(loss leader)。这里你将原代码公开,以获得封闭源码的市场分额。因为我不是极端狂热主义者,我对此很满意。
---这么说存在一个适合封闭源码方式的模型喽?
我不是极端狂热主义者。我不是 Richard Stallman. 我并非完全反对封闭源码方式。我只是认为多数情况下那是低劣的、笨拙的方法。但是我已经仔细考虑过什么情况“下开放源码”对“封闭源码”说的通。 并且我已经识别出来了两种软件开发的极端情景。
一方面是具有很大研究理论密度的软件。如现在大家都在谈论的---微生物的虹膜扫描软件。它是需要很高深理论的技术,依赖一些鲜为人知的算法。 它只在很小的系统范围内用到,可靠性的问题并不很大。 在另一方面,是那些被我成为实施类型的软件。例如一个办公室的mail list。所有运行一个mail list的技术都是公开已知的。没有什么特别的知识,也不需要特殊的算法----可靠性,健壮性和规模度是最大的问题。这就是最适合采用开放源码的情况。因为此时你想得到的是大量的同行检验以获得可靠性。
最有趣的是个人软件开发技术总是从一端移到另一端。一个极好的例子是实时三维动画。5年前,当"DOOM"游戏出来时,那是个理论密集的技术。很少人知道如何去做,保持秘密会给你带来商业价值---这时,封闭源码是有意义的。但是到了1998年,这已经不再是什么秘密了。外面有很多可用的软件包,一些还是可以免费得到的。系统开始越做越大,规模度、可靠性和健壮性成为主要关心的问题,而不再是如何才能得到正确的动画了。
好,这就意味着在过去5年内存在那么一个报酬曲线相交的平衡点,从那点起,得到同行检验的报酬开始大于保守商业秘密带来的报酬。 一个有趣的问题就是:那个交点到底在哪里?如何识别出它?我的看法是每个软件技术都要经过相同的演化过程。我开始认为这可能是21世纪软件开发管理所要回答的一个重要问题:即,这个交叉点在哪里?我喜欢把这些说给那些生意人听,因为这正是属于那类能抓住他们注意力的优化问题。而且,如果我们能使他们开始思考这些问题,我们就赢得了胜利。
---关于传统的软件市场中的生意人,你确实说了一些刺耳的话
当我坐下来仔细思考这些事情时我发现,根本没人想过软件开发的经济学。没有人拿它当回事。
----即使微软的人也没有?
对,即使他们也没有. 任何研究软件工程的人都知道程序员并经常不在创造新软件上花太多时间。他们把大量时间都花在服务更新和维护上。没人去想这意味着什么:即软件工业实际上是一个服务行业,但却被以为是一个制造工业。软件生产者们在一个制造和成本的模型下运做,你通过制造产品再把它卖出去来赚钱。因为他们把自己当成一个制造工业来看待,就让所有的聪明人都去生产,而留一些笨蛋们在前台做技术支持。这就是为什么抱怨在打技术支持热线时,总要经过三个笨蛋的中转,才能找到真正能解决问题的人。
只要软件工业这么继续自欺欺人地认为自己是一个制造工业,而非服务行业,稳定性问题就不会得到根本解决。但如果不公开源码,这一点就无法达到。这就是开放源码和封闭源码的不同之处。
在封闭源码的世界中,你的短期利益动机是将你所做的当成商业机密加以保护,并从这个机密中去掉最初的开发成本,获取最大的绝对利润。
你的最大的经济动机在于投入最少的钱, 做出你支持的软件功能。对吧?现在作为一个消费者,你是想生活在那样的世界里,还是愿意生活在一个源码基本都是开放的、充满相互竞争而为你服务的商家的世界? 这就是为什么我认为最终封闭软件模型和整个微软模式注定要终结的原因。 因为最后用户会觉醒并意识到他们被过度压榨---软件工业的成本/价格模型基本上并不适合经济的形势和消费者的需求。
---在Netscape 发布源码的集会上,Marc Andreessen谈到了把Sun和Oracle也拉入到开放源码的运动中来。这是不是硅谷的人要联合起来对付微软的又一场战争?
噢,是的。我同那些公司所讲的其中之一就是:“嗨,尊敬的总裁先生,现在你还有什么比如何对付微软把你们挤扁或是拥有你们灵魂更大的战略问题吗?没有?你没有?好,那就仔细听我说。在Bill gates自己定下规矩的游戏中跟他斗你没有机会赢的。要想发展,甚至生存,你必须修改游戏规则。我来告诉你该如何去做”
来源:蓝森林
oso
作 者: ANDREW LEONARD
翻译: waterbird[AKA]
校对: waterbird [AKA]