AKA主页\相关文章\万圣节文件I:开放原码软件


{ 万圣节文件I -- 1.10}

原文: http://www.opensource.org/halloween.html .
翻译: Brian Lin, foxman@okstation.com

开放原始码软体

一个(新的?)开发方法学

{ 万圣节文件主文是微软内部策略备忘录, 关於如何对Linux/Open Source现象做反应.

(本文已改名为``万圣节文件I''; 还有个续集, ``万圣节文件II'', 是第二份备忘录, 明白得指名Linux.)

微软已经公开确认这份备忘录的真实性, 但狡赖仅为工程师的研究, 并非微软的政策.

不过, 在结尾的共同作者列中, 有好些是已知在微软内部的重要关键人物, 而且该文读起来犹如该研究有公司顶级管理人员的支援; 它可能甚至被运用为政策白皮书用以引起Bill Gate的注意 (作者似乎有预期Gates会读).

不管是那种状况, 它提供我们非常有价值的观点, 来看微软轻视开放原始码的心理 -- 也就是, 您会看到, 一个由狡滑及团体近视的奇异组合.

仅管有人推测这是份蓄意的□漏, 不过看起来不太可能. 这份文件太受诅咒; 部份内容甚至可在美国司法部门上, 被用来当成反竞争业务的证据. 此外, 第一次接触时, 作者"拒绝证实或否认", 因此可以考虑微软事前并没有蓄意搞这一套.

既然作者多方引用我对开放原始码团体动力的分析 (The Cathedral and the BazaarHomesteading the Noosphere), 那麽看来由我来代表这个团体的反应应该算是合理的. :-)

引用索引:

本文有些实在值得引用的, 因此直接连接到它们所在之处. 知道一下``OSS''是作者对``Open Source Software''的缩写会有点帮助. FUD, 是微软特色战略, 在此文有 说明 .

* OSS摆出一付姿态直接威胁微软短期的收入及平台, 特别是伺服器领域. 此外, 在OSS中, 其平起平坐的本质及自由理念的交换已经使其自身受益, 程度达到我们目前版权模式无法驭越的高点, 因此可以说是长期开发者心智分享的威胁.

* 最近的个案研究(网际网路)提供了非常引人注目的证据... 即商业品质可被OSS计划所达成/超越.

* ...要了解如何与OSS竞争, 我们必须专研一种运作方式, 而不是针对一家公司.

* OSS是长期可信的... FUD战略无法用於与之战斗.

* Linux及其它OSS支持者正使其累进更多的可信证明, 即OSS至少与商业替代品一样的强建 - 如果没有超过的话. 网际网路提供了一个理想, 高度可见的展示台给OSS界.

* Linux被用於重要任务上, 商业环境下, 而拥有极佳的大众口碑. ... Linux性能表现远超其它UNIXes ... Linux正在逐步地接管x86 UNIX市场 ...

* 只要服务/协定是有用的, Linux就能赢.

* OSS计划已经在许多伺服器应用上有稳固的基础, 因为拥有广泛地有用工具, 简单的协定. 利用污染这些协定, 及开发新而复杂的协定, 我们可以防堵OSS计划进入市场.

* OSS计划在集合与驾驭数千人团体IQ的处理能力实在惊人. 更可怕的, OSS福音在网际网路传播上的规模, 远远快过及大过我们的规模.

如何阅读本文件:

注解为绿色, 用括弧包起来的, 是我说的(Eric S. Raymond). 我将我认为在文中属於关键点的转成红色. 我在这些点上有加一些注解; 您可以透过以下这些标记略过这些注解.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28

我将全文留著不动(甚至没有改正错字), 因此您可以读到Bill Gates会读到的关於Open Source的所有相关. 本文很长, 但请坚持下去(译注: 译者英文版看了五个小时才看完, 因为还要思考内容). 然而反思一下, 这是很值得的 -- 有好几个令人惊讶的洞察力深藏在其中.

威胁评价:

我认为在备忘录中, 最过火最超过最危险的战略莫过於具体的阴险字眼 ``解效协定(de-commoditize protocols)''.

如果出版本文没有其它作用的话, 我希望它至少唤醒大众竞争封杀的问题, 消费者选择性的腐蚀问题, 更高的价格, 及这个战略所意含的垄断锁住消费者.

就如同微软尝试绑架Java, 及试图搞砸"写一次, 四处跑"的科技浅力, 如此禄人之心可知之.

我对此点有广泛讨论. 为如何制止这种战略有效, 我相信open-source支持者必须开始强调以下几点:

  1. 买主喜欢在廉价的市场中. 卖主不喜欢.
  2. 廉价服务及协定对消费者来说有利; 比较便宜, 更多的竞争, 更多的选择.
  3. "解效(De-commoditizing)"协定意谓减少选择, 价格升高, 及镇压竞争.
  4. 因此, 微软如果胜利, 消费者一定输.
  5. 开放原始码推动 -- 的确有赖於 -- 廉价服务及协定. 因此对消费的利益是相协调的.

历史: (译注: 此处仅为Eric S. Raymond的变动记录, 原可舍去, 留此保持完整性, 因此不翻译了)

The first (1.1) annotated version of the VinodV memorandum was prepared over the weekend of 31 Oct-1 Nov 1998. It is in recognition of the date, and my fond hope that publishing it will help realize Microsoft's worst nightmares, that I named it the ``Halloween Document"'.

The 1.2 version featured cleanup of non-ASCII characters.

The 1.3 version noted Microsoft's acknowledgement of authenticity.

The 1.4 version added a bit more analysis and the section on Threat Assessment.

The 1.5 version added some bits to the preamble.

The 1.6 version added more to one of the comments.

The 1.7 version added the reference to the Fuzz papers.

The 1.8 version added a link to the Halloween II document.

The 1.9 version adds a note about HTTP-DAV support.

The 1.10 version adds more on the ``who do you sue?'' question.

}

 

 

Vinod Valloppillil (VinodV)

Aug 11, 1998 -- v1.00

Microsoft Confidential

Table of Contents

Table of Contents *

主题摘要 *

开放原始码软体 *

什麽是开放原始码软体? *

软体版权分类 *

开放原始码软体对微软来说非常重要 *

历史 *

开放原始码处理过程 *

开放原始码开发团队 *

OSS开发整合 *

平行开发 *

平行除错 *

冲突解决 *

动机 *

程式码分歧 *

开放原始码强度 *

OSS成长特性 *

长期可信度 *

平行除错 *

平行发展 *

OSS = `完美' API福音/文件 *

新版速度 *

OSS弱点 *

管理价格 *

处理议题 *

组织可信度 *

OSS公司经营模式 *

第二线服务 *

没有领导者 -- 市场参赛权 *

廉价下游提供者 *

有力的鼓动家 -- 先动手再说, $$往後再谈 *

Linux *

什麽是Linux? *

Linux是真实可信的作业系统 + 发展过程 *

Linux在伺服器中是中短期的威胁 *

Linux不太可能是桌上系统的威胁 *

击败Linux *

Netscape *

组织 & 版权 *

强处 *

弱点 *

预测 *

Apache *

历史 *

组织 *

强处 *

弱点 *

IBM & Apache *

其它OSS计划 *

Microsoft的反应 *

产品弱点 *

撷取OSS好处 -- 开发者智慧分享 *

撷取OSS好处 -- 微软内部作业 *

延展OSS好处 -- 服务公共建设 *

减弱OSS攻击 *

其它相关链结 *

感谢 *

校订记录 *

 

开放原始码软体

一个(新的?)开发方法学

主题摘要

开放原始码软体(OSS) 是个开发过程, 呈现了快速开发, 新增功能及修正既有系统错误的方式. 近年来, 随著网际网路的成长, OSS计划已达成传统商业计划所能成就的深度及复杂, 如作业系统及重任伺服器.

因而, OSS摆出一付姿态直接威胁微软短期的收入及平台, 特别是伺服器领域. 此外, 在OSS中, 其平起平坐的本质及自由理念的交换已经使其自身受益, 程度达到我们目前版权模式无法驭越的高点, 因此可以说是长期开发者心智分享的威胁.

{ 好, 这说明了微软在这个要命关头可没有睡著. }

不过, 其它OSS处理的弱点, 提供微软一条途径, 来收取其关键特性的好处, 诸如架构改善(如storage+), 整合性(如schemas), 易用性, 及组织支援.

{ 这份摘要建议很有趣, 因为它与後面 解效协定(de-commoditizing protocols) 中不相一致. }

开放原始码软体

什麽是OSS?

开放原始码软体(OSS)是一套软体产品, 同时可获得并发行原始码及执行码, 通常免费. OSS通常与"shareware""freeware"混淆, 不过它们之间在版权模式及产品处理上有很大的不同.

软体版权分类

软体型态

             

Commerical Software

             

Trial Software

X

(Non-full featured)

X

Non-Commercial Use

X

(Usage dependent)

X

         

Shareware

X-(Unenforced licensing)

X

         

Royalty-free binaries ("Freeware")

X

X

X

       

Royalty-free libraries

X

X

X

X

     
Open Source (BSD-Style)

X

X

X

X

X

   
Open Source (Apache Style)

X

X

X

X

X

X

 
Open Source (Linux/GNU style)

X

X

X

X

X

X

X

License Feature Zero Price Avenue Redistributable Unlimited Usage Source Code Available Source Code Modifiable Public "Check-ins" to core codebase All derivatives must be free

 

版权目录表中包含:

商业软体是微软的奶油面包. 它一定要买, 不能够再发行, 而且使用者只能有可执行码.

试用软体通常是功能受限的商业软体版本, 可自由散播, 期望刺激购买欲. 一般是60天失效的产品.

共享软体是全部功能均可用, 可自由散播, 但版权要求最终个人用户及公司团体要购买. 许多网际网路工具("WinZip") 就利用共享软体做为发行管道.

非商业使用软体是可自由取得及散播, 非营利机构可免费使用. 公司团体等等必须购买. 例如Netscape Navigator.

免费可执行软体可免费使用及散播, 但仅以可执行档发行. Internet ExploderNetMeating可适用於此.

免费函数库是软体产品物件档及原始码均可自由使用并散播, 但终端用户不得修改为适用於自己使用. 典型例子是class libraries, header files.

一小群封闭的发展者发展BSD格调的开放原始码产品, 允许免费使用散播可执行档及原始码. 使用者被允许可修改程式码, 开发团队通常并不向外界取用资源.

ApacheBSD格调开放原始码模式, 并延展成为 允许外界团体加入自用的程式.

C 2000 opyLeftGPL(General Public License)软体 把开放原始码版权向前更推进重要的一步. BSDApache形式的软体允许使用者"分歧"程式及自行加上版权条文 (例如商业化), GPL版权要求所有延展出来的工作必须也是GPL版权. "您可以自由地修改程式, 只要您的延展的工作也是可自由修改的."

{ 很有趣的事, 可见到它们如何将最後三种分开来分类, 在open-source界一般视之为一同.

对我们来说, open-source版权及授权给使用者及支援厂商是最主要的, 特定的开发业务并不特别附在我们的版权形式中. 另一方面来说, 在微软的分类中, 其分类的基础是由谁来写出这些主核心程式.

这倒是反应出大部份现实中的中心观点, 并反应出备忘录作者缺乏想像及了解, 它并不完全了解分散式开发的传统, 这实在是一点都不惊讶... }

开放原始码软体对微软来说有很重要的意义

本文主要专注於OSS. OSS完全不同於其它形式的版权(特别是"共享软体"), 尤其是在两个非常重要的方面:

    1. 始终可以完全免费地取的核心程式码
    2. 不像是免费发行的可执行码, 开放原始码设定了一套程序鼓舞其它开发者加入功能.

许多理由微软需要关注OSS:

    1. OSS计划已达"商业品质"
    2. 一个关键界线, 在许多客户眼中, OSS曾经是缺乏品质的. OSS支持者则辩解, 好程式是要看一个OSS软体中的臭虫点阅单, 而这导致比商业软体更高品质的结论.

      最近的个案研究(网际网路)提供了引人注目的证据, 在消费者眼中, 商业软体品质可由OSS计划达成或超越. 在此, 没有强烈证据OSS程式品质超出消遣范围.

      { 这些句子放在一起非常地自我矛盾, 除非"最近的个案研究"都是"消遣". 既然这样, 又何必叫它们"非常引人注目的证据"?

      这好似有点自我保护, 并且将第二句话补满. 然而, 第一句可算是微软的大让步.

      任何状况下, "消遣"是失效的. 看看 Fuzz Revisited: A Re-examination of the Reliability of UNIX Utilities and Services .

      这里有几行很适切:

      "我们测试过商业版的UNIX工具失效率... 范围从15-43%." "免费发行的LinuxUNIX失效率次低, 9%", "在我们的研究中, 最低的是GNU工具, 7%."

      }

    3. OSS计划规模与复杂度越变越大
    4. 另一个重要界线, OSS界已经著手处理的是计画复杂度. OSS团队正在进行迄今为止只有商业, 具经济组织/有动机开发团队才能处理的 大规模及复杂度的计划. 例如Linux作业系统及Xfree86 GUI.

      OSS过程与网际网路息息相关, 网际网路提供了巨大的分散开发资源. 看看一些OSS计划的规模:

    Project

    Lines of Code

    Linux Kernel (x86 only)

    500,000

    Apache Web Server

    80,000

    SendMail

    57,000

    Xfree86 X-windows server

    1.5 Million

    "K" desktop environment

    90,000

    Full Linux distribution

    ~10 Million

  1. OSS有相当独特的开发过程及特有的强处及弱点

OSS过程是特有的, 特别是其参与者的动机及资源可把问题攻下来. 因此, OSS有些有趣, 不重覆的资产是必须要全面加以了解的.

历史

OSS在业馀玩家及科学团体扎下很深的根, 特别是以交换原始码做为象徵.

网际网路软体

OSS的最大规模个案研究是网际网路. 大部份网际网路程式, 在早期到目前为止依然是OSS, Tim O'Reilly 有相当的描述 ( http://www.techweb.com/internet/profile/toreilly/interview ):

TIM O'REILLY: 我们所收到的最明显的讯息是, "开发原始码软体有用." ... BIND绝对是一套统治整个网际网路的重要任务软体. Apache统治网站伺服器. SendMail大概占有80%的邮件伺服器, 而且触及每一份电子邮件.

译注: BINDDNS软体, UNIX上执行, Internet没有DNS会四处碰壁. Internet上是以BIND做为DNS软体公共建设, 占有率比SendMail还高.

自由软体基金会/格弩计划(Free Software Foundation/GNU Project)

第一个进行现代化有组织性的OSS是在MITRichard Stallman. 1983年後期, Stallman建立自由软体基金会(FSF) -- http://www.gnu.ai.mit.edu/fsf/fsf.html -- 以产生免费版本的UNIX作业系统做为终极目标. GNU绰号之名(绕口的名字, "Gns's Not Unix"), FSF释出一系列的原始码及执行码.

原始FSF/GNU创设动机在於生产完整的OSS Unix. 而他们做到了, 目前已经贡献了许多著名并广泛使用的应用软体及程式工具, 包含:

释放式版权(CopyLeft Licensing)

FSF/GNU软体引入了"copyleft"版权方案, 不但使得藏起原始码是非法的, 也使藏起由GNU软体原始码所延伸的工作也非法. 该文件即著名的General Public License(GPL).

Wired杂志对该方案及目标有以下的摘要 ( http://www.wired.com/wired/5.08/linux.html ):

一般大众版权,GPL,允许使用者贩卖, 复制, 并修改copyleft程式 - 也就是也可以变成copyright - 但相同的自由, 即修改或销售, 也转嫁到消费者身上. 您必须使得您的修改也可免费获得.

第二句 -- 开放原始码延伸工作 -- 是最具争议性的(不过, 可能也是最成功的)释放式版权观念.

开放原始码处理过程

商业软体开发通常是由组织因为经济目标所设立的. 不过, 既然钱不是OSS的主要动机, 了解该威胁的性质需要深一步了解 开放原始码团队的动机及其处理过程.

换句话说, 要了解如何与OSS界竞争, 我们必须瞄准一种过程而非一家公司.

{ 这是很重要的洞察力, 是我希望微软遗漏掉的. 真正的战场不在於NT对Linux, 或是微软对Red Hat/Caldera/S.u.S.E. - 它是一场封闭原始码对开放原始码的圣战, 教堂对市集(The cathedral versus the bazaar).

这在反方面来说是一样的, 也就是何以打击微软, 因为微软是敌方象徵 - 它们是表象, 而非病根. (译注: Raymond这句话非常的深, 起源於Homesteading the Noosphere, 需要深入解释一下, 原文为: This applies in reverse as well, which is why bashing Microsoft qua Microsoft misses the point - they're a symptom, not the disease itself. 有许多的误解都由此而来, 在Open Source界有几个主流: 传统Open source是保持理念者, 可以说比较能够走长路, 也是目前OSS的主力军. 有许多吃了微软的亏的人, 不见得是公司, 大多数是个人, 进入Open source, 使用Linux, 发现了另一片天空, 有部份的人则开始拿Linux当武器, 进攻微软, 从文斗笔攻到网路奇袭, 样样都来, 糟糕的事是太成功太有效, 微软的系统太不堪一击, 造成不少破坏, 於是造成Linux恶名, 使外界误解Linux是玩家骇客的栖身之地, 这样的行动在1993-1997年间相当盛行. 译者也是其中之一, 到目前还是死性不改. 纯粹Open source是理想主义者, 对一切非开放的系统都进行笔攻, 最有名的Open source内部问题就是KDE/GNOME之间的圣战, 这场文斗在Troll Tech 释出Qt版权後落幕, 也使译者松一口气, 可以安心翻译Qt文件. 这场笔战主要是纯粹Open source主义者与抱持其它理念者之间意见整合. 部份Open source主要是商业机构, 如Sun, IBM, SGI等等这些相关者, 以及一些个人, 有著其它的考量, 不能完全释出原始码者. 在这所有流派之间, 大家可以注意到, 没有任何一点与微软有重合之处. 其次, 不管是那一种Open source版权, 其内容都与微软完全颠倒; OSS要求开放自由, MS完全封锁独裁; OSS的开发方法是科学的, MS是商业的; OSS要求免费, MS样样要钱; OSS开发者大多负责任, 有问题会以最短时间修改完成, 使用者有问题都会主动回答, MS只问钱, 有问题修改慢慢来不说, 修补程式还要钱, 顾问支援也要钱; OSS不镇压竞争者, 重复性质的开发团队, 以技术一较上下, 采自然淘汰, 有许多的例子甚至可互助共荣, 例如多样化的X Window Manager; MS眼中则容不下一颗沙子, 挡我路者死, 采用各种阴险的技俩杀死对手, 例如著名的FUD, SS战略, 及黑函等等; OSS不做夸大广告, 而MS只怕是全世界最会说谎的一家公司; 於是OSS与MS之间, 全面背道而驰, 自然而成为天敌. 再从消费者的观点来看, 购买微软货物只有助长恶势, 而OSS是站在高处, 明白指出这个问题的团体, 并与之对抗. 因此, 为何说微软是表徵, 所指的是微软的运作模式, 对世界经济与科技的发展, 有极大的伤害. OSS对抗的并不是一家公司, 而是一种现像, 而这种现像, 由微软明白的呈献, 称为微软现像, 其影响之深入及各角落. 如果有其它的公司有类似的现像, OSS本质上, 就很容易会自然相互对抗, 不用主动找上, 该公司也会自然地与OSS对峙. 因此Raymond希望Anti-MS Linux Hacker要了解到Open source的真意, 而非一谓地针对微软. ) 我希望有更多Linux玩家了解这一点.

在实际的层面, 这样的洞察意谓著, 我们可以预期微软的宣传机器, 会直指开放原始码的文化与过程, 而非特定的竞争者. 记住这句话... (译注: Raymond这句话有所保留. 似乎有意保护一些Open source的发展商, 如Red Hat/FreeBSD/Caldera/S.u.S.E./Turbo Linux等等. 我的想法与Raymond不同, 我认为微软智曩团足够聪明, 一定会得到与我相同的结论, 因此我把Raymond没讲出来的话写出来, 希望知道的人要适时地警告. 在公司级的层面, 以Open source做为基础的公司, 如Red Hat/FreeBSD等等, 使用FUD战略依然是有效的, 本文作者是工程师, 并非在市场上打战的, 无法得到这样的结论. 其次, FUD固然会对OSS整体形像无损, 但运作到公司团体的方向, 依然非常有力. 因为, Open source基础的公司是以提供顾问及服务做为主力, 也就是人与人之间的相处, FUD释放谣言, 受服务的公司听信谣言或是 相信眼前的稳定是很难判定的. Open source服务公司是站在前线, 对OSS理念的拓展, 其次, 可以回馈到Open source界. 因此, 以FUD来进攻这些公司, 会间接造成OSS理念及发展的障碍. OSS脚步一慢下来, 微软便可利用时间布署Shifting Standards战略来攻击OSS. 虽然作者建议FUD无效, 但我相信微软依然会用FUD做为武器, 最有可能的第一个目标, 可能就是Red Hat Linux, 而RH目前的後台, 正是与MS撕破脸的Netscape, Intel, Sun, AOL. 因此, Open source界要特别注要到谣言, 澄清谣言的速度要快. 此外, 要特别注意到台面下的动作, 特别是微软蚕食Open source的服务对象.) }

开放原始码开发团队

以网际网路驱策OSS开发团队的一些关键特色:

OSS开发整合

通讯 -- 网际网路规模

整合一个OSS开发团队极端依赖以网际网路为基础型式的合作. 典型被采用的方式是全方位使用网际网路统合科技:

OSS计划到LinuxApache的规模, 只有靠大量有高等技巧的开发者 蓄集力量合力解决问题. 因此, OSS计划大小方面与网际网路的成长有直接的关系.

共同方向

除了通讯媒体以外, 另外有一些因素隐隐地协调著开发团队的方向.

共同目标

共同目标相当於可见的声明, 普及深入於整个开发团队分散式决策. 一个单一清悉的指令(例如, "重建UNIX")是极度有效的沟通, 并且由一个团队来执行, 而非许多个, 一个无形的团队. (例如, "制造一个好的作业系统").

共同前例

前例是潜在最重要的因素解释在像Linux作业系统, 这样重量级的OSS计划的快速而有凝聚力的成长. 因为整个Linux团体有著经年累月的经验, 在处理多样化的UNIX, 他们很容易就可以区分 -- 毫无质疑地 -- 什麽做法有效, 什麽失效.

他们不会争辩在文字编辑器中要用什麽命令格式 -- 大家都已经用"vi", 而发展者就是以这些做为基础, 再往上建构.

具有历史, 20:20的後见之明, 提供了强力潜在的结构 再往前仔细检视组织, 其结构具有强力而有梦想的领导力.

{ 第一眼看下去, 这读起来犹如红鼻子比尔的注解, 有似有人预期Gates会读这份备忘录 -- 您可以几乎看见作者跪在大哉勇领导者形像之前.

更一般地来看, 它具有一些严重而可能可利用的对开放原始码社团能力的低估, 以便使自己的领导者看来具有梦想. 我们并非从"20:20的事後聪明"中取得EmacsPerl或是全球资讯网 -- 而把相对保守的Linux核心设计, 看成是里 2000 L去消遣模式的开发模式, 也是不正确的.

所以, 这就是说微软对开放原始码的回应, 可能就是强调错方向在革新, 同时在我们的行动, 及我们对这个世界所表达的方式两个方面上. }

共同技巧

NatBro指出, OSS发展来说, 先决条件需要以共同接受的技巧做为基础. 这一点与先前所提及的共同前例现像相近. 从其Email:

一个关键的特色 ... OSS加入及增强的共同的UNIX/gnu/make技巧. 我想如果进入点门槛再高一点, 整个过程就会失效 ... 一个平庸技巧的UNIX程式设计师可在Linux及许多OSS产品中做出许多伟大的事. 换另一个方向来说 -- 对开发者来说, OSS领域不难达成他们的渴望, 因为大家做事的方式都相近, 除错方式也相近, 等等.

鉴於前例标示出最终目标, 共同技巧特质指出, 在整个过程中, 人数适切, 即可达成终极目标. .

教堂观与市集观

一篇由OSS支持者 -- Eric Raymond -- 非常具有影响力的文章, 首次在May 1997发表 ( http://www.redhat.com/redhat/cathedral-bazaar/ ). Raymond的文章被Netscape CTO Eric Hahn明白的指出, 是他们决定要释放浏览器原始码的主要动机.

Raymond对自己的OSS计划解析, 以求取规则元素, 期许能够在未来被其它OSS计划所利用. 一些Raymond的规则元素包含了:

所有伟大的软体都开始於开发者个人的渴望.

这总括了在OSS过程中, 开发者的核心动机 -- 由个体解决呈在眼前的急迫需求 -- 这使得OSS能够演化出复杂的需要, 而不需要由行销支援组织来固定回馈.

好的程式设计者知道如何写程式, 伟大的程式设计者知道如何重写(或再利用).

Raymond断定, 在严密的开放原始码过程比传统开发环境, 更容易再利用程式码, 因为他们总是保证整个原始码可获取.

大量可取得的开放原始码降低了找寻程式草稿所需的代价.

``Plan to throw one away; you will, anyhow.''

引自Fred Brooks, ``The Mythical Man-Month'', Chapter 11. 因为OSS开发团队通常都极度散居各地, 许多在Linux中的主要的次系统元件, 主要是由Linus来提供原型并做选择及精□.

要胁您的使用者变成共同作者, 是快速地改善程式及有效地除错的捷径.

Raymond主张精华的文件及重要的开发者支援运用到OSS计划, 以使好处最大.

程式文件是商业软体开发者典型忽略的一环, 而此通常在OSS中是致命的错误.

早点释出, 释出频繁, 然後听听您的使用者.

这是起源於微软手册的典型手法. OSS支持者会注意到他们的"释出-回馈"周期, 比商业软体速度高得多.

{ 这实在是个有趣的傲慢声明, 好似我是被微软那种binary-only的方式所鼓舞一样.

但这也可以看出一些东西出来 -- 虽然作者理智地掌握到原始码释放的重要性, 它却不了解真正释出原始码的手段的强大威力. 或者活在微软的傲慢中使得这一切变得不可能.

(译注: 作者不真正了解所谓, Release early, Release often的真正意义, 也许让他参与个OSS的计划才能真正体会吧.) }

弄一大票beta测试者及共同作者, 几乎所有问题都会被找出来, 并且由某人修正.

这可能是Raymond对整个OSS过程洞察的核心了. 它诠释这个法则为"平行除错". 更深入的分析如下.

{ , 它总算把这个搞对了. }

平行开发

一旦元件的架构建起来 (例如, 关键API及结构定义), OSS计划, Linux就会部署开许多个小团队来解决特定问题.

因为发展者通常都是做为嗜好, 因此弄出许多个竞争的状况, OSS过程中不常见的, 而大家则是捡拾最好的实作来放到产品上.

注意到, 这非常地依靠以下:

平行除错

Eric S. Raymond所提出的论点来看, 不像软体开发的其他方面, 程式除错效率是直接与参与计划的人数成正比的. 在除错方面, 可以说仅需小量/或没有管理及协调的代价.

Raymond引用了Linus TorvaldLinux除错过程的描述:

我原始描述是每个问题"对某些人来说是看不见的", Linus说能够了解并修正那个问题的人, 并非必要是, 甚至通常都不是找出那个问题的人. "有些人找到问题", "而有些人了解它", 而我要说, 找到问题的挑战性是比较大的. 但要点是, 两件事尽可能越早发生越好.

Put alternately:

``除错是可以平行的''. Jeff [Dutky <dutky@wam.umd.edu>] 可以观察到, 虽然除错需要除错者去跟某个程度的开发者沟通, 但并不需要除错者之间互相沟通. 这不会变成二次方的复杂度, 管理代价也不会把开发者搞头大.

另一个平行除错的好处, 是臭虫与修正发现/传播速度快过传统方式. 例如, TearDrop IP攻击第一次在网路上发现时, 不到二十四小时, 整个Linux团体就有修正版可供下载.

"Impulse Debugging"

一个平行除错的外加好处是, 我加入Raymond的假设, "推动除错". Linux系统的例子, 意指安装该作业系统的行为, 即为安装除错/开发的环境的行动. 所以, 非常可能某个使用者/开发者, 无意中发现一个其他人的元件的臭虫 -- 特别是那个臭虫是"小只的" -- 那个使用者可以很快的修改过, 并透过网际网路合作技术, 迅速传播该修正回到程式维护者.

换另一种方式说, 因为藉由GNU工具, 一般开发/除错的方法, OSS过程有一个非常低的门槛来进行除错过程.

冲突解决

大规模的开发过程都会糟遇冲突而需要解决. 通常解决方是都是个霸道的决定, 以便进行更进一步的发展. 在商业团队, 公司组织与效率检视结构解决这个问题 -- OSS团对如何解决?

Linux的例子中, Linus Torvalds是毫无疑问的计划"领导者". 他委托大量的元件(例如, 网路, 驱动程式, 等等)给他信任的"副官", 然後更进一步的再分派给各领域的"熟手"(例如, 区域网路驱动程式).

其它组织则由Eric Raymond所描写出来: (http://earthspace.net/~esr/writings/homesteading/homesteading-15.html):

有些完全不吃"仁慈的独裁者"模式. 一个方式是转共同作者成为委员会会员来投票(Apache). 另一个方式是"轮换独裁者", 即控制权由一群资深共同作者轮换 (Perl开发者组织即为此).

 

动机

这一节提供一个全观来看何以OSS开发者要献身於OSS计划.

解决手上的问题

这基本上是重述Raymond的第一定律 -- "所有伟大的软体都开始於开发者个人的渴望."

许多OSS计划 -- Apa 2000 che -- 起源於小规模开发者, 设定要解决手上的问题. 随後的程式码的改善通常起於个体改良程式到自己的处境 (例如, 发现某个网路卡没有驱动程式, 等等)

教育

Linux核心成长起於Helsinki大学的教育计划. 相同地, 许多Linux/GNU系统元件(X windows GUI, shell utilities, clustering, networking, 等等)都是由教育机构个体所延展的.

{ 同样一个作者稍後竟然说Linux暴民会很难吸收新点子. }

自我满足感

最飘飘然的, 而或许是最深奥的动机, OSS开发团体所表现出来的, 就是纯粹的自我满足感.

"教堂观与市集观", Eric S. Raymond:

这个被Linux玩家扩大"实用功能", 并非典型的经济, 而是无形的在玩家中的名声及自我满足感.

当然了, "您不是玩家, 除非别人给您这个封号."

开拓智域

Raymond所发表的第二篇文章 -- "开拓智域" (http://sagan.earthspace.net/~esr/writings/homesteading/), 讨论了经济动机交换(例如商业软体开发换钱)"礼物交换"(例如, OSS交换荣耀).

"开拓"("Homesteading")要求成为第一个"发现"者或是贡献最大者. "智域"("Noosphere")则较不明确地定义为"所有工作的空间". 因此, Raymond断定, OSS玩家动机是在於占有工作的大部份领域. 换句话说, 吃最大的一块饼(take credit for the biggest piece of the prize).

{ 这很敏锐但读错方向了. 它引入了一个领土"疆域", 是不在我的理论中的. 这可能是作者个人的错误, 但我怀疑它反应出微软的竞争导向文化. }

"开拓智域":

丰满使得以命令建立起的关系难以维系并交换关系, 命令变成一场无聊的游戏. 在礼物文化中, 社会关系不是由您所能控制的来决定, 而是由您送出去的礼物有多少及轻重来决定 .

...

以这种方式来检视, 很清楚地可以看出open-source玩家的社会实际上是礼物文化. 在其中, 并没有严重"求生必须品"短缺的问题 -- 磁碟空间, 网路频宽, 电脑能量. 软体是免费分享的. 这样的丰满, 产生了一个以获得别人的敬重, 来做为衡量的成功的竞争.

更简洁地 ( http://www.techweb.com/internet/profile/eraymond/interview ):

SIMS: 所以您所饥渴寻求的是注意及回报的饥渴?
RAYMOND:
完全没错.

利他主义

这是有争议的动机, 我倾向在有程度的相信, Raymond评议利他主义"变质"成自我满足心.

一小部份动机, 有些人是这样地, 起源於打击微软.

{ , 这是如何地坦白, 尤其是来自微软农奴口中! 当然了, 它并没有分析到为何会与微软有关联; 可能是会砸坏家具吧... }

程式分歧

在大型开发团队中的致命伤 -- 特别是会恶化混乱现像在网际网路规模的团队 -- 是程式分歧的风险.

程式分歧发生在开发计划拉拉扯扯时, 许多个不协调版本的程式码就演化出来了.

例如, 在商业的世界, 一个单一强大的Windows NT程式管理, 相比於这些在商业UNIX中分歧的程式, 是绝大的优点. (SCO, Solaris, IRIX, HP-UX, etc.).

OSS中的分歧 -- BSD Unix

OSS领域, BSD Unix是分歧程式码的最佳范例. 原有的