1983 Dennis M. Ritchie

Dennis M. Ritchie


Citation
For their development of generic operating systems theory and specifically for the implementation of the UNIX operating system

Dennis M. Ritchie, 既然Ken Thompson是我的偶像,新闻组上人称DMR的Dennis M. Ritchie自然也是,毕竟两人共同缔造了UNIX,而Dennis几乎独力把C搞大(当然,C的前身是B,而B是Ken Thompson一手做出来的)。J 两人1983年分享图灵奖,是有史以来少数几个因工程项目得奖的工程师(本来是唯一的一对儿,但Alan Kay才因为SmallTalk得奖,所以就成了唯二的乐) 。一个人一生能做出一个卓越的系统已经不易,DMR的C和UNIX长盛不衰近30年,至今生机勃勃,DMR此生可以无憾的说。

D爷爷也算有家学渊源:他老爸在AT&T贝尔实验室工作了一辈子,并在电路设计方面卓有成就,还出了本颇有影响的书The Design of Switching Circuits,据说在交换理论和逻辑设计方面有独到的论述。当然,D爷爷和他老爸是不同时代的人:他老爸的研究成形于晶体管发明之前,而D爷爷的工作离了晶体管就玩儿不转乐。:-D

不要看D爷爷搞出了C,其实他最爱的编程语言是Alef,在Plan9上运行,支持并行编程。Alef的语法和C相似,但数据类型和执行方式都和C大大不同。说到语言,D爷爷对后来人有非常中肯的建议:抱着学习的目的来开发你自己的语言,不要冀望于它被众人接受。这个建议不光对语言开发有用,也适用于其它大型系统的开发。别的不说,DMR后来领导自己的团队在1995年和1996分别推出了Plan9和Inferno操作系统,又用多少人知道呢?其实,D爷爷当初也没想过C会风行世界。他开发C的初衷和Eric S. Raymond在Cathedral and Bazaar里阐述的一样,就是要消除自己对现有工具的不爽之处。谁知D爷爷无心插柳,C竟然受到众多程序员的狂热拥戴,连D爷爷自己都大惑不解。在一次采访中D爷爷说大概那是因为C的抽象程度碰巧既满足了程序员的要求, 又容易实现。当然C一度是Unix上的通用语言也是原因。但不管怎么说,D爷爷对编程语言出色的审美意识奠定了C广为流传的基础。

最后八卦一下。D爷爷的业余爱好和NBA大牛Karl Malone一样:开卡车。不过D爷爷更喜欢开NASCAR,而KM独爱巨无霸。J D爷爷自称心中不供偶像,如果一定要说一个,那就是Ken Thompson了。现在Ken爷爷退休当飞机教练去了,而D爷爷当了贝尔实验室系统开发部的头,整日忙于开支票。他俩合作20年,屡屡创造历史。这段令人神往的佳话,也就长留你我心中乐。

P.S., 很多人都以为Brian W. Kernighan是C的作者。其实BWK只是写了那本经典K&R C。据D爷爷说,他,Ken, 和Kernighan三人中,Kernighan最能写文章,他次之,而Ken写得最少;但说到编程,Ken爷爷才是当之无愧的老大。

采访Dennis M. Ritchie (丹尼斯?里奇) -- By Manuel Benet

(翻译:江雄, 译着玩的,有错请指正。:)

有的人因为改变历史而出名,也有的人是因为创造历史。Dennis Ritchie就属于这种人。当我们中大多数人还在学走路的时候,他开发出使用最为广泛的C语言。这个对人类的贡献勿需多言。

这还远不够。Dennis Ritchie和Ken Thompson开发了Unix操作系统,真正意义上的“操作系统”。没错,他创造了Unix。

他在计算机和操作系统上的工作没有停止。他领导的研究人员开发出了Plan 9和Inferno系统。

他的工作得到了无数计算机组织的承认:1974年因系统和语言方面的杰出论文获得ACM奖章;IEEE Emmanuel Piore奖章(1982),Bell实验室高级成员(1983);ACM图灵奖(1983);NEC C&C基金奖(1989); IEEE Hamming奖章(1990)等等。

现在,Dennis M. Ritchie是新泽西州Murray Hill的贝尔实验室/朗讯科技的计算机科学研究中心、系统软件研究部主任。

LF(采访者): 象孩子们希望成为超人一样,你是全世界许多C程序员和Unix爱好者的偶像。被成千上万Unix和C程序员崇拜是什么感觉?如果没有Unix或者C的话,完全无法想象现在我们的世界会是什么样子。当你创造C语言并开始Unix工作的时候,你想到过它会成为计算机科学的“未来”吗? ]

Dennis: 这两个问题差不多,也是人们常常问到的。当然我和同事们受到的奖励和评价是令人愉快的,我们的确感觉到我们协助创造了一些真正有意义的东西。但我们真的没有料到它成其为“未来”,甚至没有意识到我们工作的最后影响。它源于“让我们做点有用的事”同时帮帮其它参与者这样的思想。

记住这点很重要:虽然整个Unix和C或者C++很重要,计算机科技和真正产品的天地更加广阔。无论在编程语言的学术研究方向上还是富有的软件领域都是如此。

LF: 如果说Unix是过去和现在的操作系统,C当之无愧地可以称为过去和现在的编程语言,尽管也出现了很多面向对象的语言。对C++、Java以及C和C++程序员之间常常出现的激烈争论你怎么看?

Dennis: C++从C中获得很多东西,因为在C++之前C就被相当广泛接受,C++可以把C作为构造新语言的基础及其编译器的工具。C(令人羡慕而又招人怨恨地)表现为一种可移植的汇编语言,C++试图将它提升到面向对象的层次,成为更抽象的编程方法。(根据最近出现的标准)这两者都显得过于装饰性,堆积了不少小玩意儿。它们体现出一种实用主义,试图理解确实需要的东西。Java则明显是C++的后代,立即除去了C中和指针有关的东西,加进机器无关的目标码的想法(并非很新颖,但很合理)。现在它陷入Sun和Microsoft之间的较量中,(当然仍然存在装饰性强的问题),很难说它会怎么发展。

LF: 提个假设性的问题:以现在的眼光来看,有了这么多年C编程的经验,如果你不得不重新设计C,你会有什么不同的考虑吗?

Dennis: 设法(如果时间允许的话)坚持在ANSI/ISO标准中存在的一些东西:函数形参类型的完整说明,即1989年C标准中称作函数原型的东西。还有很多小细节显得过于零乱。例如,static关键字因被用于好几种目的而意思含混。对于语言声明部份的文法我还不很明确。在语言声明中使用的文法模仿了变量声明的做法。这引起了很多批评,但这样做还是有一定道理的。

LF: 当C语言建立和完善地定义出来时,操作系统还在不断演化之中。更高速和更便宜的硬件也带来一些新的想法。在操作系统基础设计中的关键因素是什么?特别地,你对微内核和一体化设计方法持什么看法?

Dennis: 我认为这方面并非一个很有意义的问题。我确实很倾向于在Unix(包括Linux)、Plan 9、Inferno中为应用程序提供的结构化、公用的名字空间和资源访问机制。在我看来,微内核的想法在实际中并不重要,至少对通用目的的操作系统基础是这样。实际上,微内核常常是为在其之上的宏观系统服务的。它可以是系统内部结构中有用的工具,但它本身并不能独立存在。当然(事情复杂起来了),也有些情形简单操作系统会用于小的工具设备,而不是一般性的用途,无论是桌面系统或者大型机。

LF: UNIX现在已经是有很长历史的操作系统。它很多年前就出现了,打那时起,网络、硬件、服务和应用程序的能力和要求都起了巨大变化。面对当前和以后近期的用户需求,Unix眼下的局限性或弱点是什么?

Dennis: 从基本系统API(系统调用)上看,没有本质的、技术上的局限性。当然在商业/政治问题上有很大的问题,表现为不同Unix商业卖主之间和几种“免费”的Unix(包括Linux和BSD)之间的明争暗斗。

LF: 最近人们对千年虫问题和由此产生的Internet崩溃的可能非常关心。你觉得一些专家的这样的天命预言有根据吗?

Dennis: 对此没什么好的见解,真的。在1999年12月31日23:59我不会在坐飞机,但因为我任何新年的时候附近都没有飞机,这实际上和千年虫没有关系。
LF: 我们无法不提到Inferno,你现在工作中的操作系统。开发这样一个全新的操作系统,以及它自身的Limbo语言主要是出于什么样的原因?并且为什么有了JavaVM/Java,还要Inferno/Limbo?换句话说,Inferno要提供Java所缺少的什么东西?

Dennis: Inferno是Phil Winterbottom和Rob Pike的创造物,它正好在Java出现之前开始。Java也有它的前身(内部名称叫Oak),但酝酿Inferno的时候还没有理由相信会出现Java热,并且尽管我们也知道Java,但它毕竟还未成型。我想这是一个奇怪的汇聚,一个古老的技术上的想法(一种用可移植虚拟机实现的语言)同时被Sun和我们复活了。也就是说,Inferno的想法源于操作系统技术中更有趣的一些东西(一种可以在原始、廉价、最低限度的硬件上工作的语言和系统能同样在Windows或Unix或Linux上作为应用程序运行)。同时Sun由于和巨大膨胀的WWW/浏览器市场挂钩更加紧密,也应该获得尊敬。

LF: 在我们看来,Limbo作为一种编程语言的未来和Inferno的扩充和广泛化密不可分。把Limbo移植到其它操作系统有没有意义呢?会不会它的设计和目标太依赖于Inferno了呢?
{ 枫下论坛 rolia.net/forum }
Dennis: 技术上,Limbo并不特别地依赖Inferno。现实中,它的确是依赖的,很简单,因为一个新的语言总是依赖于使用它的环境的。

LF: 从你在贝尔实验室的经历看来,你似乎每时每刻都是在为你所喜爱的项目工作。我假定对Inferno也是如此。那么难道我认为你非常喜欢Unix和C设计会不对了吗?

Dennis: 我确实喜欢我在贝尔实验室的工作(现在和以后)。

LF: 我不可避免的要把你和所有为非盈利项目工作的人作个比较,因为他们也喜欢如此----虽然我相信如果有人为他们的免费工作支付薪水他们也不会拒绝。如果你不是在贝尔实验室,你会加入Linux或者类似的项目中吗?根据你多年的、在创新性的研究室的经验你对这些人怎么看?由于我们的杂志主要面向Linux用户,我不会忘了问个Linux的问题。首先,你对Linux的发展动力、以及很多公司开始为它开发软件的决定(例如贝尔实验室,Inferno也移植到了Linux上)持什么样的观点?

Dennis: 让我一起来回答这些问题。我认为Linux现象是可喜的,因为它从Unix提供的基础中吸收了这么多东西。尽管有种种BSD系统和工作站、大型机厂商的正式产品,Linux可说是Unix直接派生出来的最健康的一种。当然,我不得不注意到,“免费源码”的Unix派生世界看来和商业领域里发生的和正在发生的一样,受着分裂和冲突的折磨。

LF: 关于Linux的重大问题:你曾用过Linux吗?如果用过,你对它意见如何?

Dennis: 恐怕我得承认,我实际上没有真正用过它----即依靠它来做我每天的工作。我自己的计算环境是Plan 9、Windows和Inferno的奇怪混合体。我非常钦佩Linux的发展和活力。偶尔人们也问我几乎同样的问题,但是出于一种希望得到这样的回答的姿态,希望我对Linux和其它传统公司的Unix的竞争表现出嫉妒或愤怒。一点也不。这两者我看都是Ken和我以及其它很多人很多年前产生的想法的继续。

LF: 还有微软...你对该公司现在在桌面计算机上的垄断地位怎么看?过去科幻电影描绘了一幅人类生活被巨型机器所控制的图画,现实则是完全不同的另一种画面。计算机,在很多方面都被看作是一种简单设备。你为程序员着想开发了一个操作系统,在科幻电影的场景中生活过,想象到过计算机的实际情形,你怎么预见未来的计算机时代呢?你认为Inferno和Linux在其中处于什么样的位置?

Dennis: 这是两个问题。微软的确对桌面系统有一定的垄断,但那不是世上计算机的唯一应用领域。提供软件的其它途径(如Linux),以及那些没有产生象Windows或浏览器大战那样火爆的新闻的计算机领域(如高性能计算、高可靠性计算、极小型计算)都会有一席之地。我相信Linux和Inferno都会兴旺的。

posted on 2005-03-24 10:45  NetToad  阅读(570)  评论(0编辑  收藏  举报