它为什么成功

从CTSS到Multics再到PDP-11/20上面的Unix,我们看到了一个很长的故事,一个跨越30年时间的故事。但是我相信大多数(如果不是全部)计算机产业公司都没有看到其中的教训。

可能这其中最重要是在贝尔实验室盛行的态度。Dennis Ritchie在第1章里关于乐趣和实用的言论是这种态度的典型代表。Brian Redman向我评论他在惠帕尼所做的工作“充满了乐趣”。Plauger评论说“太奇妙了,如果你很有乐趣并且热爱你所做的东西,这就是AT&T和商业有关的东西”。Brian Kernighan说当他被雇佣时他问Doug Mcllroy他该去做什么,他得到的答案是做任何你想做的事情。所以人们得到了eqn,ratfor,pic这类软件工具。

Kernighan告诉Peter Collinson关于awk:

到目前为止它是我参与过的最大的软件项目。我们有三个人参与其中,原本这是根本不可能完成的。然而,和两个人配合工作远比和三个人配合更容易...因为事情很难分割开。有太多的意见分歧,有时这是好事因为这以为这考虑了更多的事情,但是有时这也意味着可能没有那么团结。

人员太多了?如果你注意看新闻,你回发现微软有超过600位程序员在开发Windows NT。但在霍姆德尔有3个人正在创建32V(London,Reiser,和Swanson)。3个人在写HoneyDanBer,Hall,Sventek以及Scherrer写VOS,Lorinda Cherry和Bob Morris写bc和dc。伯克利的CSRG偶尔会有不少的全职人员:Haley和Joy。Haley,Joy和Kridle。Kridle和Leffler。McKusick的业余时间和他得到博士学位前的夏天。McKusick,Jolitz以及Karels。McKusick,Karels以及Bostic。Larry Wall自己写了一些补丁per,rn。看看这些离职的人们:Ken Thompson,George Coulouris,几个澳大利亚人,Jan Simon Pendy。再看看其他的贡献者:Mike Muuss,Doug Kingston,Jim Curry,Rick Adams,James Cosling,Rob Pike,Armando Stettner,Bill Shannon等等。

Steve Johnson告诉我:

如果你在大学里,我会认为你要么是个做软件的,哟啊么就是一个做理论的。将会有大把的金钱支付我的薪水。如果我是一个软件工程师,并且和理论家交谈,付我薪水的人将会认为收到了欺骗。相反的,如果我是一个理论家,并且试着去做一些有用的事情...我总是可以成为一个通才。我总是在不同的训导间操作,我发现了大量多产的地方。因此我将写一个程序,这将会发现一些我可以验证的命题将原理放回到程序中。这发生在我完成yacc和pcc以及其他一些东西之后。它只是不能很好的适应一个结构划分。

还有另外一个观点:避免区分研究和开发。

Eric Allman对我说:

我觉得一个软件设计的通用规则是你应该去写你想用的程序。Ken和Dennis想用Unix。他们为了去用它而去开发它。我们想用sendmail,它不是那种我们说的“好,让我们写一个邮件程序,然后把它发给...”。Bill Joy没有跑来对我说“Eric,我们需要的就是这个”,实际上,我是在他的催促下将它发布出去的。我们有一个问题需要解决。Ken有一系列的问题:他没有一个足够的系统可以让他去玩太空游戏,所以他就写了一个。与此相比的X.400,我被说服人们从来不像在纸上写一样去用电子邮件。其他公司的软件没成功是因为你指派人们去做那些工作。

当我和Armando Stettner聊天时,他对我评论说:

你知道,关于Unix和今天的Plan 9最美妙的事情是这些是大量优秀的想法随着时间通过一种非常有趣而高效的方式融合在一起...贝尔实验室集合了好主意并将它们实现出来。伯克利Unix将许多好想法做成了一个程序员接口——高质量的多种实现。集合了来自全世界人们的代码形成这个系统。并且裁决者有着很好的品位:Bill Joy和Sam Leffler是正真的艺人,Kirk McKusick,Mike Karels因为缺乏一个好的头衔,我们可以称他们为架构师。但是他们真的拥有良好的品位。他们讲人们的工作集合起来,他们确保事情清晰合适。

综合来说就是创造性。但是关于Unix的演变最有意思的观点就是它大部分都发生在它的“拥有者”AT&T和西部电气。Greg Rose向我指出:

在Unix如此多的演变阶段中,AT&T采取的扼杀行动实际上引起了相反的效果。

Brian Kernighan说:

你知道,个人计算机的商业环境需要持续不断的改变来保持占有市场。你不得不一直有些新的东西,或者你的竞争对手有了新的东西然后你被从市场中赶了出来。其他事情是个人计算机商业环境本质上是同类的,它们全都运行在相同他的处理器芯片上。因为环境没什么差异并且PC市场要比Unix市场大很多,因此你可以分期偿还你的花费。它是一个非常大的市场,如果一些人有了一个好主意他们会参与到PC市场而不是去Unix市场。我觉得市场将会发生改变,Unix的好处在长期过程中会超过DOS:可移植和通用的好处。

Unix影响了90年代计算机的每一个方面。甚至Kernighan声称“PC市场”带有Unix的印记。另外,微软的Windows NT很明显是一个类似Unix的系统,而且他们的产品宣称是“遵从POSIX”(虽然我不清楚比尔盖茨如何理解这一点)。

1984年Dennis Ritchie退出后曾被问到,贝尔实验室导致Unix出现的氛围是否可以重现。他的答案出现在1984年的CACM,几乎正好是发表《Unix分时系统》之后的第10年。在文章里Ritchie写道:

一些人感觉最初的Unix工作是一种非法项目,一个“臭鼬工作”。事实上并不是这样。研究工作者们被希望发现或者发明一些新的东西...我们总是管理激励...我们的意图是为我们自己创建一个舒适的计算环境,并且人们也都喜欢我们所希望的..

今天对于计算机科学研究最危险的事情是过度关联...另一个危险是商业压力会将决策者的注意力从真正的创新转向利用当前人们的爱好,从探索转向开采。

如果我们对创新保持足够的宽容,对通讯有着足够的自由,对成功有着足够的耐心,我们就有可能让未来的Ken Thompson发现一台CRAY/1计算机并且创作一个系统,继而产生影响,就像Unix。

Thompson和Ritchie想去创建一些自己喜欢使用的东西,他们成功了,其他人也想要分享这些令人愉悦的东西。Sunil Was写道“没有Ken Thompson的愿景,Unix就不会成为现实。没有Dennis的眼光,它就不会成为一个优美的存在。没有Michael Lesk的想象以及Brian Kernighan的推广,它就不会取得如此多人的广泛钟爱”。这份钟爱激发了伦敦的Coulouris,细腻的Lion,伯克利的Joy以及本书中提到的无数其他人。

David Tilbrook总结说:“关于Unix已经明确的是它不是计算机历史上一次伟大的进步,如果一定要评价的话,它是一次杰出的简化,它将用户带入了之前无法想象的领域”。

results matching ""

    No results matching ""