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

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

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

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

保持简单(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语言发明人丹尼斯•里奇已经去世",外界才知道这件事,引发了纪念浪潮。虽然这个过程有点令人伤感,但是必须说,这很符合他的"保持简单"的原则。

(完)

保持简单----纪念丹尼斯•里奇(Dennis Ritchie相关推荐

  1. 记:丹尼斯·里奇(Dennis Ritchie)

    文章转载来源:http://www.dotcpp.com/wp/77.html 丹尼斯·里奇被誉为 " C语言之父 ",他在生前与贝尔实验室的合作伙伴肯·汤普森 ( Ken Tho ...

  2. 缅怀C语言发明人丹尼斯·里奇(Dennis Ritchie )

    缅怀C语言发明人丹尼斯·里奇(Dennis Ritchie ) 2011年的10月,对世界的IT业来说,是一个灰色的10月.两位IT巨星离我们而去,一位是大家耳熟能详的苹果公司CEO乔布斯,而另一位则 ...

  3. 缅怀伟大程序员----丹尼斯·里奇(Dennis Ritchie)

    2011年的10月,世界IT业的灰色10月.两位IT巨星离开人间.一位是改变IT应用的苹果公司CEO史蒂夫·乔布斯(Steve Jobs):一位是改变系统和编程语言的丹尼斯·里奇(Dennis Rit ...

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

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

  5. C语言发明人丹尼斯-里奇去世

    美国著名计算机专家.C语言发明人之一丹尼斯·里奇 北京时间10月13日上午消息,维基百科资料显示,美国著名计算机专家.C语言发明人之一丹尼斯·里奇(Dennis Ritchie )已于10月9日去世, ...

  6. 丹尼斯·里奇-c语言之父,Unix之父

    丹尼斯·里奇,全名丹尼斯·麦卡利斯泰尔·里奇.C语言之父,UNIX之父.曾担任朗讯科技公司贝尔实验室下属的计算机科学研究中心系统软件研究部的主任一职.1978年与布莱恩·科尔尼干(Brian W. K ...

  7. 计算机传奇人物之丹尼斯·里奇

    尼斯·里奇,C语言之父,UNIX之父.曾担任朗讯科技公司贝尔实验室 下属的计算机科学研究中心系统软件研究部的主任一职.1978年与布莱恩·科尔尼干(Brian W. Kernighan)一起出版了名著 ...

  8. 反思:乔布斯和丹尼斯·里奇的去世 C语言之父Dennis Ritchie辞世

    C语言发明人之一 Dennis Ritchie 北京时间10月13日上午消息,据国外媒体报道,美国著名计算机专家.C语言发明人之一Dennis Ritchie已于10月9日去世,享年70岁. Denn ...

  9. Dennis Ritchie(纪念)

    Ritchie简介:          丹尼斯·麦卡利斯泰尔·里奇(Dennis MacAlistair Ritchie,1941年9月9日-2011年10月12日),出生于美国纽约.著名的美国计算机 ...

  10. C语言之父,UNIX之父丹尼斯·里奇去世 享年70岁

    [caption id="attachment_84" align="alignleft" width="278" caption=&quo ...

最新文章

  1. R语言使用unzip函数解压压缩文件(Extract or List Zip Archives)
  2. golang中的panic和recover
  3. CTF-RSA-tool 安装全过程
  4. finalize方法作用
  5. WinPcap编程3——获取网络适配器列表
  6. React 组件的生命周期详解
  7. php pdo效率,php使用mysqli和pdo扩展,测试对比mysql数据库的执行效率完整示例
  8. 10种经典机器学习算法——Python版
  9. paip.c3p0 nullpointexcept 配置文件根路径读取bug 解决
  10. windows10 2004补丁包直接升级20H2
  11. centos yum 安装php8 php8.0 使用remi源
  12. 网络抓包工具Wireshark下载安装使用详细教程
  13. x390拆机图解_Thinkpadx390详细拆机图解
  14. 【Tools系列】在Win7系统上利用Simics安装Solaris 8 SPARC操作系统
  15. 安卓_神坑的scrollbarSize
  16. SF1006-ASEMI超快恢复二极管SF1006
  17. Java合并流实现简单的文件合并示例
  18. 2020-04 前端技术汇总
  19. 新手必备AutoCAD练习图纸,分分钟提高你的绘图效率!
  20. 视频教程-区块链算法—共识算法-区块链

热门文章

  1. 软件设计师中级下午题
  2. matlab设计理想高斯巴特沃斯低通滤波器_完整二阶有源带通滤波器设计!(下载:教程+原理图+视频+代码)...
  3. 电感电容串联起什么作用
  4. 若依源码学习7:Excel 导入导出
  5. PLC梯形图设计全自动洗衣机S7-1200博途以及PLC仿真实现之 1. 创建新工程
  6. 虚拟机scala安装
  7. 开源 cocos2dx 五彩连珠.
  8. python毕业设计作品基于django框架 教室图书馆座位预约系统毕设成品(6)开题答辩PPT
  9. coco2017数据集百度网盘链接
  10. 高颜值的第三方网易云播放器YesPlayMusic