1998 年的那场改变世界的 Open Source Summit ———— 十月共读预热文

大概是谁也没有想到过开源成为了现代软件的一个必选项,无论是公司企业,还是个人的职业,从技术、组织方式、工程学等诸多角度考量,开源都是大家绕不过去的独木桥,然而,它却被忽视到无以复加的地步,开源之道,致力于开源项目思想、知识和价值的挖掘,不妨寻找一下最初的涵义,以及发展到现在轨迹,从而为思考者们对未来的决策提供一个参考。

引言

开源之道所发起和组织的开源之道共读,在十月份要共读的书就是特别鼎力推荐的《Open Sources: Voices from the Open Source Revolution》,而说起这本书,我们不得不回忆一下20多年前的那场改变世界的聚会:Open Source Summit,由知名媒体人Tim O’Reilly发起,当时的会议聚集了顶尖的开源倡导者们,就开源的形式进行的沟通和交流,20多年后再返回来看他们的远见卓识,虽然有点事后拍彩虹马屁的嫌疑,但是却也从证明了这些创造者和践行者的成绩。我们就以当时留下的一张照片来述说一下他们对这个世界所做的贡献:

他们有:

等等。

下文是对Python的创始人根据当时写的一篇随笔的编译。以让大家能够将想象力适当的扩展一下边界:

开源峰会旅行报告

时间:1998年4月10日,星期五

就在上个周二,刚刚举办过了 O’Reilly Freeware 开源峰会及招待会,我答应大家要写一篇关于此次峰会的报告的,并会发布到Python新闻组,并在这里郑重警告:本文可能带有作者的主管色彩,或许会在事实加上自己的意见———— 请自担风险,另外本文也比预料中的要长了很多,请原谅,因为会议的内容实在是太过于丰富了。

背景介绍

Tim O’Reilly 认为,对于大多数人来说,免费提供的软件对于互联网而言尤其重要,在绝大多数人的眼里,以为互联网是构建在专有软件之上的,如 Solaris,Netscape和Microsoft产品。在这一点上,绝大多数人犯了长久以来人类一直犯的错误,事实上,互联网上很多关键的软件并非是商业的专有产品,如:

  • sendmail 承担着所有电子邮件的80%的运载
  • BIND 是主要的网络名称和IP地址的转换服务
  • Apache 是web 服务的头号软件
  • 绝大多数的加密软件是PGP
  • 最流行的脚本语言分别是perlTclPython
  • 等等

以上所有这些卓越的软件的源代码都是可以自由获取!这究竟是为什么?当然,我们自己是非常清楚自己在干什么的,———— 这是一种伟大的软件开发模式!但是美国的这些公司对于这点的认识速度没有跟上,Netscape 发布 Mozilla源代码或许是一个不错的开始,———— 当这个消息不胫而走的时候,O’Reilly 就收到了来自各界的就freeware的询问,于是 O’Reilly 以其对于前沿的敏感度,迅速把握这一机会,这是一个推广开源软件的绝佳时机!大众应该得知这一切。

这次会议分为两个部分:第一部分,主要是留给那些开源软件的开发人员,均是邀请过来的,他们会讨论开源软件的优缺点、以及各自的计划等等,第二部分,则是在会议结束时,大家聚在一起讨论接受各界的提问和采访。接下来分别进行阐述:

关于峰会

这场峰会的举办,不得不归功于Tim O’Reilly天才般的组织能力,你很难想象把这么多“怪咖”开发者聚集起来,用短短的8个小时(早上9点到晚上5点)给讨论完。来参会的人大多来自湾区,像我这样从华盛顿远道而来的人不多,不过也有像John Ousterhout 这样的热情人士,虽然他住在湾区,但举办会议的时候,他正在夏威夷度假,为了参加会议,他竟然放弃了假期而跑回来参加。

我们是从一轮的问答开始的,每个人都被问及动力所在以及最积极的经验:为何要将源码供所有人可以获得?是什么使其良好的进行运转?对整体的流程有什么看法? 在最后我们就开放式开放方法达成了共识:主要有下面的两个原因,即使有其它情况大多数其他原因都可以简化为这两种情况的特殊情况。

  1. 从开发者的角度来看,主要得益于 大规模同行评审 的优势,(也有人称之为:“并行式的调试”)没有任何的软件开发方法能够产生与开源软件一样可靠和强大的软件。
  2. 从用户的角度而言,开放源代码的灵活性是其最大的优势,Linus Torvalds 讲了一个例子来强调这点:他对Netscape浏览器的做法表示满意,但是他个人有一个小小需求,那就是禁用几乎专门用于广告的GIF动画,Linus 称,如果不是源代码开发,他这个需求恐怕是无法被得到满足的。来自Netscape 的Jamie Zawinski 则称之为:”自己的需求自己搞”。(即我们经常所说的”scratching itches.“)

当然,还提及了一些其它的关于开放源代码软件开发方法的优势:低成本的技术迁移、使用参考实现来帮助制定标准。

至于说为何要将源码供所有人可以获得的最初动机,(这是颇让我惊奇的),绝大多数开发者都认为最初的动机是处于道德或伦理:提供源码是“做正确的事”。

在会议的第二轮,我们则讨论了有关负面的经验 ———— 是什么阻碍了我们?大家所遭遇的最大问题是什么?等等诸如此类的,除了像“我们最大的问题是愚蠢的人”这样的笑话外,还有两个常见的问题:

  1. 随着软件包的广泛传播,开发者在帮助用户方面所花的时间要远远大于在其开发本身所花费的时间,尽管开发者有蛮多理由不去理会用户的,但是这样会带来另外一个问题,因为没有什么组织,开发者本身就是最后一道防线,这样的情形可以总结为一句话:“开发者要为自己的成功而烦扰”。
  2. 让人们以更有意义的方式参与到社区中来往往是一个大问题,John Ousterhout 对于此有着非常清晰的描述,他声称,与从头开始编写补丁相比,来自互联网的补丁只能为他节省50%的开发时间。其中有些人蛮同意John的看法的,但是还有一些人(包括我自己)是持反对意见的,认为这是一个相对的话题 ———— 是的,对于软件的核心来说,这可能是正确的 ———— 但在许多外围项目中,可以按原样接受很多贡献的代码 ———— 即使这些代码有很大的问题,———— 因为有大规模的评审和并行调试,一定可以保证在最终的版本中得到修复。Linus有一个极端但清晰的观点:** *接口*需要由主要开发者精心设计;实现可以是容忍错误的。** 这实际上是提高贡献质量的有效方法。 举个实际的例子,Linus 根本不介意有一些错误的设备驱动程序进入内核,理由是它只影响少数人,而且会得到这些人的帮助和反馈,并进行修复,如果是糟糕的设计的话,可以想象那些灾难性的后果。(这一点是符合我的经验的,不过Linus描述的更为清晰。)

这终究是关于控制的问题,需要注意的是,几乎所有代表的系统都具有一个由主要开发人员(相对)严格控制的核心,以及定义广泛,灵活的扩展机制,供大多数贡献者使用,而这部分是不需要什么控制的。

另外还有一些问题,如当前的知识产权法,以及莫名其妙的法律的执行方式,甚至达到滥用法律制度的地步,竞争对手试图兜售专有解决方案,并且对开源软件进行不公平的“恶行”。当然了,分发模式(收入模式)均不够理想,即使在帕洛阿尔托,也无法在当地的软件超市买到绝大多数的Freeware包。(不过,可以在那里买到 Red Hat Linux!)还提到了 Code bloat(但是Netscape男孩指出这不是开源软件的唯一问题:-)。

午饭之后,我们接着讨论所提及的问题。

关于控制方面的问题,我们没有讨论太久,有一点比较有意思,那就是管理开源软件贡献者这样的分布式团队像放野猫一样,这是我第一次听到“刺耳的猫”的话语,我发现这有点奇怪————不过不止我一人这么听到,蒂姆或其他奥莱利人在黑板上做了类似的笔记。:-) (对我个人而言)收获最大的来自Eric Raymond 和 Cygnus 的 John Gilmore,他们均是可以为贡献者提供帮助的人(例如,在风格指南、代码标准方面),这些均是提高贡献者本身的极佳的方式,一种解决方法是在开发的时候简单地保存“内部文档”的片段,比如,那些回答来自其他开发人员的邮件,放在若干年后,定是内部手册!

至于剩下的时间(当然也散布于其它的各种间歇中),我们讨论了很多关于开源的可持续性问题,如各式各样的商业模式,而不仅仅是业务爱好者的个人喜好。

事实证明,几乎所有在场的人都参与了将其软件商业化的尝试 ———— 而且每个人都希望能够这么做,而不是源码被专有化。当然,每个人的情况都有些不同,有的是其软件本身的特殊的用户群体、有的是因为竞争、有的是处于法律的原因、也有的仅仅是处于最初的动机。

举例来说,John Gilmore 和我们讲了有关Cygnus 成功的销售将GCC移植到嵌入式设备,这是一个较小的利基市场,在Cygnus出现之前,它被少数编译器公司所垄断,这些公司收费相当昂贵,即使是花很少的代价移植到不同的芯片上,他们也会收取上百美元。

来自 C2Net 的 Sameer Parekh 给我们讲了另外一个故事,C2Net 售卖的是加强过的、企业级的、安全的Apache,由于加密软件的专利问题,没有免费的加密代码可用于商业目的,因此,需要具有加密功能的Web服务器的公司必须向*某些*供应商付款。请注意,C2Net为客户提供其Apache版本的源,但仅提供其加密库的二进制文件。

Paul Vixie 则给我们带来的是另外一个精彩故事,他本人来自互联网软件联盟(ISC),这家就是维护BIND项目的非营利组织,一些大型计算机供应商向ISC支付了很多钱,让Paul进一步开发了BIND,并且不介意只要工作完成,Paul就会免费向其他人免费提供这些资源。

对于很多人来说,宣布成功(或失败)还为时过早:Larry Wall 和 Linus Torvalds 就并没有直接从销售Perl和Linux副本中赚钱。当然,其周边就情况有些不同,O’Reilly就通过售卖有关Perl的书籍而赚到了钱,这点和其它的出版商没啥区别,Linus本人在Transmeta 上班,从事和Linux没有关系的工作,而且没有对Linux有任何商业化的打算,Larry 本人在 O’Reilly上班,倒是有一些商业化的计划,如将Perl移植到Windows(由外部公司根据O’Reilly的某种许可协议完成)。

John Ousterhout 则开了一家叫做Scriptics的公司,打算基于tcl/tk做一些商业化的事情,大概是 Sun取消了关于将Tcl/tk产品化的规划,John 打算将开源软件和商业软件混合起来:Tcl 和 TK 将永远保持开源,但是Scriptics计划利用调试器和源分析器等专有工具来赚取利润。保持Tcl/Tk 开源的原因之一是要确保没有人有动力“fork”不兼容的版本。

Senmail 公司的 Eric Allman 也讲述了类似的故事,起先他想创立一个保护组织,但是没有找到任何的门路,为了Sendmail的发展,他辞去了现有的工作,联合Greg Olson 创建了Sendmail公司,他同样对Sendmail提供免费的版本,但是针对一些大型的公司则需收取费用。

每一位现场的参与人员都有不同的故事,但是大家都有一个共同的目的:每一个人都在探索一种“可持续的”业务模型,在保持开源开发的优势的前提下,能够获得足够的利润,让开发者和组织者们能够体面的生活。 一如 Netscape 公布了 Mozilla 源代码一样,开源的方式即使是在传统的商业专有软件领域也引起了不小的震动。

Freeware ?Open Source? 还是 Soureware?

我们花了一些时间来讨论对于术语的选择(即如何概括我们所谈及的所有事),Tim 先做了一轮投票活动,FreeSoftwareFreeware几乎没有什么人投,甚至freed software还遭至了几张反对的票,生出的名词有:”Open Source Software”(Eric Raymond所推崇),和 Sourceware(Cygnus所采用)。

尽管我本人对于“Open Source”是持保留意见的,但是相比于可爱的”Sourceware”,还是“open source” 更好点,当然,我个人也同意“freeware”声誉不好,确实有很多的”freeware”的源代码并不开放,这次峰会的主流意见是关于源代码是否可见。

Eric Raymond 为属于“Open Source”注册了商标,并在他的网站上对什么是开放源代码有一个确切的定义。有时我担心这会成为限制:如果我在获得他的同意后将我的软件称为“开源”,后来又更改了条款和条件,该怎么办,又或者是Eric改变了他的定义—— 有人说我必须遵守开放源代码规则,可能会起诉我。Eric 认为这样的情况不会发生,除此之外,Eric 还说每个人都可以自由使用“开源”(小写),而不必遵循他的定义。我们将继续观察,至少现在我倾向于这个概念,但是还没有在Python的网站上贴上“open source”(当然也不会写“freeware”)。

接下来做什么?

我们简要讨论了如何进行记者招待会以及可能的后续会议。总体上的结论,当下的时机对于将信息传递给那些已经在开源软件的开发产品的公司的管理人员,契合点不错,那些CIO们根本不知道他们的开发人员正在是否perlpython,他们只关心同行的CIO的看法、华尔街日报、以及那些尚未听说过开源软件的收费昂贵的咨询和市场分析公司。那么我们接下来应该去做点什么了呢?显而易见,向媒体发出我们的信息是明智的做法,O’Reilly 也将跟进新闻界。Eric Raymond 在非常积极地与企业人士进行沟通。来自 Scriptics 的 Sarah Daniels 对于联合广告系列有一些大创意(我们将会看到…)。

我个人又从中学习到了什么了呢?非常之多,一言难尽啊 ———— 对于开源软件为何能够如此的出色有了更加清晰的认识,并将它做的更好,以及让人进行尝试的动力,甚至是寻找收入的渠道。

关于峰会后的招待会

招待会在5:30左右开始,一直持续到7:30或8:00 PM。所有的开发者都落座于两面,面前摆放着自己的名字,而Tim O’Reilly则坐在中间位置主持,大约有20-30名记者;在头一个小时,大家还是有非常高的拍照热情的,(大概是想争相报道这一改变历史的时刻),开始时,Tim O’Reilly 作了简短的介绍(见后面的链接),然后任由记者们进行提问,他们大多选择了比较知名的名字,所以我没说太多(当然,Netscape的两个家伙引起了很多关注)。

问题大多还在人们的意料之中,诸如“如何与微软对抗”,“这显然行不通”等等之类的话题,你可以对一些记者进行说明,并给出清晰的答案,但是他们大多的表情告诉我们,茫然而不知,然后将同样的问题再问一遍,不同的只是几个措辞罢了,其实他们中的绝大多数是在试图理解和消化这些,招待会的正式部分结束后,每个人都逗留在现场,进行了许多一对一或二对二的采访。

总而言之,这是一个非常有意义,而且也非常有意思的会议,看看这些媒体的报道就知道了,当然,作为一名开发者,我们自身关注的更多的是,这是否能够改变开源软件开发模式的观念,这才是真正应该关心的问题。

参考材料

以下材料均早于此次峰会:

原文链接:Open Source Summit Trip Report