说明: 本文的作者eric raymond是open source software领域的领袖,这方面许多 新的思想正是从他那儿产生的,同时他也是unix上最流行的email软件fetchmail 的作者. 下面这篇文章有点儿长,然而它是值得你去耐心把它读完的.文章以fetchmail 为例,讨论了internet上集市风格的开发方式. 我们应该感谢hansb,是他把这篇长文章翻译成了中文. eric的主页地址在:http://www.tuxedo.org/~esr/ ------------------------------------------------------------------------- 一. 大教堂与市集 linux的影响是非常巨大的.甚至在5年以前,有谁能够想象一个世界级的操 作系统能够仅仅用细细的internet连接起来的散布在全球的几千个开发人员有以业 余时间来创造呢? 我当然不会这么想.在1993年早期我开始注意linux时,我已经参与unix 与自由软件开发达十年之久了.我是八十年代中期gnu最早的几个参与者之一.我 已经在网上发布了大量的自由软件,开发与协助开发了几个至今仍在广泛使用的 程序(nethack,emacs vc与gnd模式,xlife等等).我想我知道该怎样做. linux推翻了许多我认为自己明白的事情.我已经宣扬小工具.快速原型与演 进式开发的unix福音多年了.但是我也相信某些重要的复杂的事情需要更集中化的, 严密的方法.我相信多数重要的软件(操作系统与象emacs一样的真正大型的工具) 需要向建造大教堂一样来开发,需要一群于世隔绝的奇才的细心工作,在成功之前 没有beta版的发布. linus torvalds的开发风格(尽早尽多的发布,委托所有可以委托的事,对所 有的改动与融合开放)令人惊奇的降临了.这里没有安静的.虔诚的大教堂的建造 工作——相反,linux团体看起来像一个巨大的有各种不同议程与方法的乱哄哄的 集市(linux归档站点接受任何人的建议与作品,并聪明的加以管理),一个一致 而稳定的系统就象奇迹一般从这个集市中产生了. 这种设计风格确实能工作,并且工作得很好,这个事实确实是一个冲击.在我 的研究过程中,我不仅在单个工程中努力工作,而且试图理解为什么linux世界不 仅没有在一片混乱中分崩离析,反而以大教堂建造者们不可想象的速度变得越来越 强大. 到了1996年中,我想我开始理解了.我有一个极好的测试我的理论的机会, 以一个自由软件计划的形式,我有意识的是用了市集风格.我这样做了,并取得了 很大的成功. 在本文的余下部分,我将讲述这个计划的故事,我用它来明确一些自由软件高 效开发的格言.并不是所有这些都是从linux世界中学到的,但我们将看到linux世 界给予了它们一个什么样的位置.如果我是正确的,它们将使你理解是什么使linux 团体成为好软件的源泉,帮助你变得更加高效. 二. 邮件必须得通过 1993年以前我在一个小的免费访问的名为chester county interlink的isp 的做技术工作,它位于pennsylvania的west chester.(我协助建立了ccil,并写了 我们独特的多用户bbs系统——你可以telnet到locke.ccil.org来检测一下.今天它 在十九条线上支持三千的用户).这个工作使我可以一天二十四小时通过ccil的56k 专线连在网上,实际上,它要求我这么做! 所以,我对internet email很熟悉.因为复杂的原因,很难在我家里的机器 (snark.thyrsus.com)与ccil之间用slip工作.最后我终于成功了,但我发现不 得不时常telnet到locke来检查我的邮件,这真是太烦了.我所需要的是我的邮件 发送到snark,这样biff(1)会在它到达时通知我. 简单地sendmail的转送功能是不够的,因为snark并不是总在网上而且没有一 个静态地址.我需要一个程序通过我的slip连接把我的本地发送的邮件拉过来. 我知道这种东西是存在的,它们大多使用一个简单的协议pop(post office protocol).而且,locke的bsd/os操作系统已经自带了一个pop3服务器. 我需要一个pop3客户.所以我到网上去找到了一个.实际上,我发现了三. 四个.我用了一会pop-perl,但它却少一个明显的特征:抽取收到的邮件的地址 以便正确回复. 问题是这样的:假设locke上一个叫“joe”的人向我发了一封邮件.如果我 把它取到snark上准备回复时,我的邮件程序会很高兴地把它发送给一个不存在的 snark上的“joe”.手工的在地址上加上“@ccil.org”变成了一个严酷的痛苦.... 下一页