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

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

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

转载地址: http://news.cnblogs.com/n/119472/

保持简单----纪念丹尼斯·里奇(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. C语言发明人丹尼斯-里奇去世

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

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

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

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

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

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

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

  8. Dennis Ritchie(纪念)

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

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

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

最新文章

  1. 检查mysql当前状态
  2. Vasya and Robot
  3. 云南公务员计算机类岗竞争大吗,2020云南省考难吗?楚雄州历年竞争比、进面分数告诉你...
  4. linux-shell——02
  5. 同时大量连接导致的DDOS攻击,导致收发器宕机,用户大面积超时掉线
  6. 光耦驱动单向可控硅_双向晶闸管的触发用的光耦驱动mos桥,光耦
  7. 液晶电视测试软件u盘,突破封锁!用U盘给电视安装APP居然这么简单
  8. JavaFX的webview下载文件的一种实现思路
  9. 彻底卸载Xubuntu Kubuntu
  10. drain open 线与_Open-Drain与Push-Pull
  11. 在炼数成金报名的课程!加油!
  12. iOS 11 NSPhotoLibraryAddUsageDescription 错误的解决办法
  13. 千古奇才---埃舍尔
  14. PHP下处理HTTP--json--xml信息
  15. 常见的行业认证和资质清单介绍
  16. 读取xlsx的sheet
  17. ubuntu22.04图文安装流程
  18. 记录道编程题,估计是python的,用java再写。排序
  19. 解决web网页中的字符乱码问题
  20. Solidity之事件

热门文章

  1. 使用omp技术实现wordcount算法
  2. Object类型转Double类型
  3. 卷积神经网络图片放大,神经网络输入图片大小
  4. 【已解决】在react+ts中 atnd 用 upload 组件报错Failed to execute ‘readAsArrayBuffer,param 1 is notof type Blob
  5. ameya:什么是连接器 连接器采购平台有哪些
  6. 老子云SDK免费使用,实现3D开发自由
  7. stm32上电不能复位
  8. Android Animation动画原理分析
  9. base64的图片处理技术
  10. 设计模式之禅——策略模式(Strategy Pattern)