丹尼斯·里奇被誉为“C语言之父”,“UNIX操作系统之父”。曾担任朗讯科技公司贝尔实验室下属的计算机科学研究中心系统软件研究部的主任一职。1978年与布莱恩·科尔尼干(Brian W. Kernighan)一起出版了名著《C程序设计语言(The C Programming Language)》,现在此书已翻译成多种语言,成为C语言方面最权威的教材之一。

“在互联网上,几乎所有东西都会使用C语言和Unix操作系统。”派克在接受《连线》杂志采访时说道。“浏览器是用C语言写成的;Unix内核是用C语言写成的;网络服务器是用C语言写成的,否则就是用衍生自C语言的Java或C++语言写成的,要么就是Python或Ruby语言,而这两种语言都是在C语言中执行的。此外,我几乎可以担保,所有运行这些程序的网络硬件也都是用C语言写成的。”

“现代信息经济在极大程度上是在里奇生前所做工作的基础上建立起来的,对此无论用多么夸张的言辞来形容都不为过。”派克说道。

他还补充道,就连微软Windows操作系统也曾是用C语言来编程的;而且,Unix还为苹果的桌面操作系统Mac OS X和移动操作系统iOS提供了支持。“乔布斯可以说是‘有形之王’,而里奇则基本上应该算是‘无形之王’。”麻省理工学院电子工程大学和计算机科学教授、计算机科学及人工智能实验室(Computer Science and Artificial Intelligence Laboratory)成员马丁·里纳德(Martin Rinard)说道。

“乔布斯的天才之处在于,他能造出这些令人们深深喜爱的产品,这是因为他很有品味,能作出让人们叹服不已的东西。而里奇造出的东西能让那些技术人士用来构建核心的基础设施,这些基础设施在建成以后不一定会让人们再看得到,但却每天都用得到。”

正所谓“吃水不忘挖井人”,在互联网发展的今天,让我们一起来了解这位伟人:

Dennis Ritchie 丹尼斯·里奇

他在贝尔实验室的第一个任务,是参与大项目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)。

向C语言之父—丹尼斯·里致敬相关推荐

  1. 纪念C语言之父丹尼斯·里奇离世6周年

    不知不觉, 丹尼斯·里奇离开我们 6 年了.2011 年 10 月 12 日,和里奇共事 20 多年的同事 Rob Pike 从加州到新泽西去拜访他,才发现他已经去世了.由于是独居,当时无法知道准确的 ...

  2. 让乔布斯立足肩上的C语言之父

    2011年,人们对乔布斯的去世记忆深刻,但这一年还有另一位本应获得同样关注的人物也与世长辞,他就是C语言之父丹尼斯·里奇(Dennis Ritchie). 不过,并非所有人都没能正确认识到里奇所曾作出 ...

  3. 【历史上的今天】10 月 12 日:C 语言之父逝世;西门子诞生;乔布斯推出 NeXT 电脑

    整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来. 今天是 2021 年 10 月 12 日,历史上的这一天,哥伦布发现了"新大陆",在他发现的这片美洲上 ...

  4. 历史上的今天:C 语言之父逝世;西门子诞生;乔布斯推出 NeXT 电脑

    整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来. 今天是 2022 年 10 月 12 日,历史上的这一天,哥伦布发现了"新大陆",在他发现的这片美洲上 ...

  5. 不缅怀C语言之父的果粉都不是真果粉

    Unix和 C 语言的发明人,图灵奖获得者,丹尼斯·里奇先生,于2011年10月8日在位于美国新泽西州的家中病逝.可以说,几乎所有的网络产品和操作系统都是基于丹尼斯先生的成就诞生的,我们都站在他的肩膀 ...

  6. java c 语言之父_Java之父评价C语言之父:他是一位天才,c语言撑起了一切

    Java之父詹姆斯·高斯林(James Gosling)曾在C语言之父丹尼斯·里奇(Dennis Ritchie)去世时发布了关于他的讨论的简短博文,大致内容如下:丹尼斯·里奇辞世的新闻如五雷轰顶.过 ...

  7. 程序员必知的编程4大祖师爷,C语言之父堪称编程界的牛顿!

    编程语言哪家好,这是网友们一直争议和调侃的话题. 不过,并不是所有的程序员都知道编程语言的开山鼻祖. 不得不说,正是因为拜在祖师爷门下,才混有今天撸代码这口饭吃. 下面我们就来了解一下编程语言的祖师爷 ...

  8. c 之父 java is not_Java之父评价C语言之父:我用尽了形容词

    Java之父詹姆斯.高斯林(James Gosling)在上周发布了关于讨论C语言之父丹尼斯.里奇(Dennis Ritchie)的简短博文,伯乐在线编译如下:丹尼斯.里奇辞世的新闻如五雷轰顶.过往几 ...

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

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

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

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

最新文章

  1. 内存分配器memblock【转】
  2. 机器学习的前沿发展与应用分享
  3. UA MATH571B 试验设计 QE练习题 平衡非完全区组设计BIBD
  4. 「HDU6158」 The Designer(圆的反演)
  5. python猜数字循环_python-练习实现猜数字的循环
  6. InnoDB 事务/锁/多版本分析?你了解多少?
  7. CTF【解密】字符串flag被加密成已知新字符串,请解密出flag,可以使用Python解码出WriteUp
  8. redis 3.0的集群部署
  9. 第一周Linux微职位
  10. 软件专业大学生常用的刷题、找答案、找资源的网站
  11. 【DS3231 RTC实时时钟模块与Arduino接口构建数字时钟】
  12. dms虚拟服务器,dms服务器
  13. DAZ3D STUDIO的保存设置
  14. 树莓派(raspberry pi)学习12: 树莓派创意无限,无所不能
  15. 3d打印技术与计算机,讲述3D打印技术是如何实现打印的,与普通的打印有何不同...
  16. 文章阅读总结:GPT
  17. 在ThinkPad W500 A98上升级Windows 7以及安装硬件驱动和相关程序
  18. Word中如何连续使用格式刷
  19. 三极管的三个工作状态和作用
  20. 魔兽世界怀旧服哪个服务器金价稳定,魔兽世界:怀旧服金价重回“0.1时代”,稀有材料价格却不降反升...

热门文章

  1. KITTI数据集评估方法小结
  2. linux设计引物探针,恳请相助:Taq man引物和探针设计
  3. 小米路由插件二维码2020_入门级Mesh首选?华来小方Mesh路由深度解析
  4. ojdbc java_Java从入门到精通——数据库篇之OJDBC版本区别
  5. 阿里HR:你会使用selenium爬取工具? 某人:那不是随随便便吗,不止会用 还会爬取掘金小册呢!
  6. DSS与Schedulis的集成安装教程(单机)
  7. monkey命令常用参数与monkey事件百分比
  8. STM32F103实现LED呼吸灯程序
  9. 重磅!2022年JCR正式发布(附最新影响因子详单)
  10. scratch安装包|scratch最新版安装包|scratch3安装包|scratch3最新版安装包