保持简单----纪念丹尼斯•里奇(Dennis Ritchie)

作者: 阮一峰

日期: 2011年10月25日

大师去世以后,财新网约我写一篇纪念文章。

现在文章已经发表了,我可以把原稿贴出来了。

丹尼斯•里奇对人类的贡献,被大大低估。此时此刻,全世界几十亿人正在使用的几百亿件电子产品,里面的软件最终都可以追溯到他的智力贡献。

==========================================

保持简单(Keep it simple)----纪念丹尼斯•里奇(Dennis Ritchie)

作者:阮一峰

1954年,电气工程师阿利斯泰尔•里奇(Alistair E. Ritchie),决定举家从纽约州的布朗克斯维尔(Bronxville),搬到几十公里以外的新泽西。这样可以离他的工作单位"贝尔实验室"更近一些。

13岁的丹尼斯•里奇(Dennis Ritchie),就这样随着父亲一起来到新泽西。那时,谁也没有想到,这个文静的少年将在这里待上一辈子,并且创造出改变世界的发明。

中学毕业后,丹尼斯•里奇听从父亲的建议,进入哈佛大学学习应用数学,直到拿到博士学位。他的第一份工作,是为军方研制核武器,这并不符合他的志趣。1967年,通过父亲介绍,26岁的他进入贝尔实验室,从事刚刚兴起的计算机研究。从此,他在新泽西老家一住就是44年,直到去世。

他在贝尔实验室的第一个任务,是参与大项目Multics,即开发一个前所未有的、可以多人使用的、同时运行多个程序的操作系统。该项目由贝尔实验室、麻省理工学院和通用电气公司三方联合研制,但是由于设计过于复杂,迟迟拿不出成果,1969年贝尔实验室宣布退出。

第一个任务这样无果而终,丹尼斯•里奇很不甘,但也无能为力。谁知过完了夏天,比他小两岁的同事肯•汤普森(Ken Thompson)找上门,说借鉴Multics的设计思路,做了一个个人项目Unix,问他有没有兴趣一起参与。丹尼斯•里奇立刻表示同意,于是两人一起投入Unix的开发。肯•汤普森的专业是电子工程,丹尼斯•里奇专业是应用数学,正好互补。经过日以继夜的工作,1969年圣诞节前,Unix已经可以初步运行了。

吸取了Multics设计复杂而导致失败的教训,丹尼斯•里奇将Unix的设计原则定为"保持简单和直接"(Keep it simple stupid),也就是后来著名的KISS原则。为了做到这一点,Unix由许多小程序组成,每个小程序只能完成一个功能,任何复杂的操作都必须分解成一些基本步骤,由这些小程序逐一完成,再组合起来得到最终结果。

表面上看,这样的设计很低效:为了取得结果,你必须运行一连串小程序,那么为什么不用一个大程序一次运行就得到结果呢?但是事实证明,由于小程序之间可以像积木一样自由组合,所以非常灵活,能够轻易完成大量意想不到的任务。而且,计算机硬件的升级速度非常快,所以性能也不是一个问题。另一方面,开发单一目的的小程序,要比开发大型程序容易得多,所以Unix才有可能在短短几个月内问世。

Unix迅速在程序员中流传,到了80年代,已经成为主流操作系统,演变成整个软件工业的基础,当代最主要的操作系统----Windows、MacOS和Linux----都与Unix有关。由此可见,丹尼斯•里奇的"保持简单"原则,对计算机时代的影响有多大。

丹尼斯•里奇对世界的贡献还不止于此。Unix最早是用不通用的机器语言编写的,如果换一个型号的计算机,就必须重新编写一遍。为了提高通用性和开发效率,丹尼斯•里奇决定发明一种新的计算机语言----C语言。

C语言也贯彻了"保持简单"的原则,语法非常简洁,对使用者的限制很少。丹尼斯•里奇编写的教材《C编程语言》总共只有100多页,薄得难以置信。很多人都被它的简洁性吸引,学习并使用C语言。直到今天,C语言依然是世界上最重要的编程语言之一,"保持简单"原则显示了强大的生命力。

发明Unix和C语言,给丹尼斯•里奇带来巨大的荣誉,他得到了1983年的图灵奖、1990年的汉明奖、1999年的美国国家技术奖章。尽管功成名就,但是就像他的工程设计思想,丹尼斯•里奇在个人生活上也尽量"保持简单"。他依然住在新泽西,低调地生活,不太在媒体上曝光,终身没有结婚。

他也始终没有跳槽,一直在贝尔实验室工作,尽管后者多次分拆,到了最后已经名存实亡。2001年,接手贝尔实验室的朗讯公司,决定关闭大多数实验室,许多研究人员纷纷离开,包括Unix发明者之一的肯•汤普森都去了Google,但是丹尼斯•里奇哪里也没去,还是留了下来。2006年12月1日,贝尔实验室被整体卖给了法国阿尔卡特公司,第二年他就选择退休了。

退休以后,他过上了隐居生活,外界几乎忘了他的存在。2011年10月12日,共事20年的同事Rob Pike从加州到新泽西去拜访他,才发现他已经去世了。由于是独居,无法知道准确的死亡时间。据他的兄弟透露,这几年丹尼斯•里奇的健康状况一直不好,他患有前列腺癌和心脏病。

Rob Pike在Google Plus发了一条简短的消息,"据我所知,Unix和C语言发明人丹尼斯•里奇已经去世",外界才知道这件事,引发了纪念浪潮。虽然这个过程有点令人伤感,但是必须说,这很符合他的"保持简单"的原则。

(完)

珠峰培训

简寻

留言(62条)

麦卡锡也去世了,真是可惜,上个世纪计算机界的大人物逐渐到了寿命的尽头了

读完这段文字,感觉到特别的伤感

有点道家的精神,简单,朴实,高效。人生,工作都是保持一样的KISS原则。远非那些只追逐商业利益最大化,赶进度不求质量的企业和工程师所可比。几十年过去,曾经辉煌一时的软件都末落了,UNIX,C却依然有着生命力

十月想不到会是这么悲伤的季节,麦卡锡也去了,你应该需要再写一篇吧,犹记得你以前的一篇介绍LISP的文章。

a great man.

考,最喜爱得两个语言得作者相继逝世,人生真悲剧。

历史会铭记他们对人类进步所做的贡献。

大牛相继离去,小牛犊还没有生下来,我们这真空的一代该怎么办?期待文艺复兴

grabit 用了但他速度不动 不知道是不是要设置点什么东西? 请教

KISS原则是否可译成“简单、愚笨”,因电脑只会切实执行指令,不作他想。正因为这样,电脑却又能变成最聪明的东西。这又是否如中国哲学所说的那样——大智若愚?

很想收藏这篇文章。它证明了另外一种生活的价值,与平常人不同的生活。每一个人,每一天都会面临选择,Ritche也是。
另外:本来很想为这篇文章付费,但是怎么变成“9.9”了。这句话“。(2011年9月,由于支付宝改变收费规则,每笔担保交易收费1元,所以我不得不将购买价格提高到9.9元人民币或2.99元美元,算是一次购买10篇。)”很令人费解。我猜价格改变后您的收入应该减少了。

不懂Unix。
但是“保持简单”的理念符合我的审美(当然包含对IT产品的审美)观。

这样了不起的人物,纪念。

真的很低调。伤感!
;

慢慢的一点一点的看完文字,很伤感,简单就好,真的。

Yet people are showering their words on the apple man. What a shame!

我感觉他很可怜,独居,什么时候死了都没人知道。

如今的IT界太多浮躁的牛犊,太多急功近利的coder,天天宣扬着“创新”的口号,天天却在翻新、盗版中打口水战。我是研二计算机专业的学生,我承认我并没那么热爱技术,但这是一个基础吧,我是想工作时转向产品,不愿在技术中挣扎了。

很感伤;
虽然现在基本不用C了,但C语言带给我的思想将陪伴我一身;
谢谢;
大牛;

C是接触的第一门语言。也是我受影响最深的一门语言。。

看到文章结尾不由自主想哭,忍住了,但现在在键盘上打这段话的时候,眼泪还是留下来了。

KISS原则,keep it simple, silly

作为一个热爱C语言并一直在使用它的小程序员,我想说keep it simple stupid原则我会一直遵循的 C语言就和Dennis Ritchie一样 代表的是一种精神!虽然现在的人大都不知道这种精神的真谛!

真正的大师

The acronym was first coined by Kelly Johnson, lead engineer at the Lockheed Skunk Works (creators of the Lockheed U-2 and SR-71 Blackbird spy planes, among many others).
http://en.wikipedia.org/wiki/KISS_principle

KISS原则最先不是由Kelly Johnson提出的吗?

您好 在您的博客里面我学到了很多的东西! 非常非常感谢。我很想回报您带给我的收获,不知道有何方法。

大牛相距逝去,新的世界格局正在重建......

其实成功的可以流传下来的都是简单的东西!羡慕他的低调。。。

真正的大师

想不到离世的时候也是如此简单。KISS。

如果乔布斯是商业天才,那里奇就是一名真正的大师。

悄悄的来,静静的走。。。。

必须承认,看到提价后,支付有些犹豫,但我想,这样会让我更加珍惜我获得的知识,并认真思考这条知识的价值,想办法实现这条知识对我的增值。

不过,我想,这样会减少付费人数,有违微付费的原则,是否可以公布你的支付宝账号,自行转账呢?

值得尊敬的大师,一路走好

引用半瓶墨水的发言:

我感觉他很可怜,独居,什么时候死了都没人知道。

你错了.独居就是希望死了也不想让人知道

嗯,现在的c++已经把一切搞得太复杂了。
什么std,什么模板库,还是c简单。

回想一下,我所写的,一直在用的程序,都少于30~50行。

而那些上千行的程序,我现在都不知道丢到哪里去了。

看着大神。才懂得什么叫做一些人的低调是另一些人装逼的资本。

突然觉得“成功需要忍受孤独”这句话很适合他~

纪念大师

引用路路的发言:

突然觉得“成功需要忍受孤独”这句话很适合他~

个人感觉他不是在忍受,他已经是在享受了。。 真正的大师

我是从这本书开始学计算机语言的;Dennis Ritchie是一个里程碑式的人物;向Dennis Ritchie敬礼!

大师会永远留在我们心中!

我想我落后了,很久没关注IT界里的事情,也很久没使用过C了
Dennis Ritchie的去世也显得那么的KISS,和传奇人物Jobs感觉有个鲜名的对比
但不管怎么样,作为一个里程碑式的人物,我同样向Dennis Ritchie敬礼

非常珍贵的东西,感谢你让我感受到,让我们一起纪念他,祝他在天堂永远快乐。

传奇啊!虽然当天就在twitter上得知DMR离世消息,但却不知他也是终身未婚,且最终隐居去了,还一直以为他也在google呢。。。

向大师致敬!

致敬

哭了

致敬

感动, 谢谢你让我记起他, 祝福伟大的Dennis Ritchie

引用lost的发言:

KISS原则是否可译成“简单、愚笨”,因电脑只会切实执行指令,不作他想。正因为这样,电脑却又能变成最聪明的东西。这又是否如中国哲学所说的那样——大智若愚?

x86指令系统与ARM指令系统也有类似的特点,后者简单,前者复杂。

Dennis Ritchie 对世界所做的贡献无法估量,现在的绝大多数计算机语言都是由 C 写成,也就是说几乎所有的应用程序都是直接或间接由 C 开发。向您致敬!您对简单的坚持也在普世中继承了下去,并会永远流传!

God be with you for ever,Ritchie

#include
int main(void) {
printf("Goodbye Dennis Ritchie");
}

引用Libre Liu的发言:

#include
int main(void) {
printf("Goodbye Dennis Ritchie");
}

包含下基础IO库。。。返回一个值吧

虽然我学的是JAVA但是看完仍然忍不住想流泪,向大师致敬!

当年看到这个消息,相继走了好几个牛人,感觉像是一个时代的辉煌过去了:(

引用Silverbolt的发言:


你错了.独居就是希望死了也不想让人知道


本来很难受 看到你的评论 我竟然又笑了 哈哈 感谢

缅怀大师。

黑客与画家,我买了一本,很不错,很受益。感谢阮兄的翻译和推荐。支持。。

printf("bye world.\n");

这表明了一个典型程序员的一生。单身一人,孤独终老,早死,前列腺有问题(手枪过多)

unix初期不至于用机器语言写的吧,记得资料上写的是汇编

我要发表看法

«-必填

«-必填,不公开

«-我信任你,不会填写广告链接