整理 | 王启隆 王晓曼
出品 | 程序人生 (ID:coder _life)
Dennis Ritchie (丹尼斯·里奇)于 1941 年 9 月 9 日出生在美国纽约的布朗克斯维尔,2011 年 10 月 12 日逝世(享年 70 岁)。他于 1969 年和 Ken Thompson 一起创建了 B 语言;1972 年与 Brian Kernighan 一起创建了 C 编程语言;随后帮助开发 Multics 操作系统和 UNIX 操作系统。这些成就让丹尼斯获得了 1983 年的图灵奖,可以说,所有网络产品都是站在他的肩膀上诞生的。
图源:维基百科
在贝尔实验室工作期间,Dennis Ritchie 参与了 Multics 操作系统的开发,这是一个前所未有的多用户操作系统,可以同时运行多个程序。这个项目是贝尔实验室、麻省理工学院和通用电气的合资项目,但贝尔实验室在 1969 年退出了,因为设计流程太复杂了。
随后,他与 Ken Thompson 合作开发了 Unix 操作系统,并从 Multics 复杂设计的失败中吸取了教训。Dennis Ritchie 提出了 Unix 设计原则“保持简单,愚蠢”,这后来被称为 KISS 原则:Unix 由许多小程序组成,每个小程序只能执行一个功能。Unix 迅速在程序员中传播开来,到 20 世纪 80 年代,它已经成为主流操作系统,成为整个软件行业的基础。
我们这个时代最重要的操作系统——Windows、MacOS、iOS 和 Linux——都与 Unix 相关。
Unix 一开始是使用不通用的机器语言编写的,如果更换一台计算机,就必须重新编写。为了提高通用性和开发效率,丹尼斯·里奇发明了一种新的计算机语言,就是现在的 C 语言。C 语言本身是为 Unix 而构建的,这两者最初是不可分割的,直到 C 语言被更广泛地使用并成为今天主流编程语言的基础。
C 语言和 Unix 是黑客文化的基础,黑客文化是互联网的基础。换句话说,没有 Dennis Ritchie 就没有 C/Unix,没有 C/Unix 就没有今天的互联网。Unix 的付费版本并没有在 2021 的今天流行起来,但是 Unix 的免费版本(比如 Linux),则为今天除 Windows 之外的几乎所有操作系统(iOS、Android、WebOS、Bada 等)奠定了基础。
图源:维基百科
C 语言是丹尼斯·里奇在 1969 - 1973 年间开发的,它被认为是第一个真正意义上可移植的现代编程语言。自它诞生差不多近 50 年以来,它已经被移植到几乎每一个出现过的系统架构和操作系统上。因为它是一种命令的、编译的和程序化的编程语言,它允许语法变量作用域和递归,允许内存的底层访问,还有复杂的 I/O 和字符串操作功能,这种语言变得相当通用。
里奇和布莱恩·克尼汉(Brian Kernighan)对它进行了一定程度的优化,最终于 1989 年被美国国家标准协会的 X3J11 委员会进一步细化为 ANSI C 程序设计语言。1978 年,克尼汉和里奇合著出版了《C 程序设计语言》这本书。该书被很多人简称为“K&R C”,是计算机科学的杰作,它也是解释现代程序设计概念的一个关键参考,甚至到今天,它还是计算机科学课程里学习程序设计的经典教材。
直到今天,ANSI C 作为一种编程语言还被大量地使用,后来它还发展出很多的衍生语言,这些语言又都有很多的追随者——比如 Objective-C。Objective-C 很大程度上被认为是一个鲜为人知的 C 语言衍生品,直到它在八十年代末和九十年代初被广泛用于 NeXT 计算机系统公司的 NeXTStep 和 OpenStep 操作系统上,也就是乔布斯所开发的 NeXT。2001 年,苹果发布了 Mac OS X,其中沿用了 Objective-C 的框架,以及 NeXTStep 和 OpenStep 所引入的面向对象技术。
图源:CSDN 下载自东方 IC
C 语言只能诠释丹尼斯·里奇生涯的一半。里奇还是 UNIX 操作系统的共同发明人,UNIX 的原型是用汇编语言编写,到七十年代早期就完全用C重写了。早在 1969 年,在一台 DEC PDP-7上引导了第一个版本的“Unics”,从那开始UNIX已经演变出很多类似的操作系统,并运行在各种各样的系统架构上。每一个主要的计算机供应商都曾经实现过自己的 UNIX。甚至连微软也曾经拥有一个叫做 XENIX 的产品,后来卖给了 SCO。
这些成就让丹尼斯获得了 1983 年的图灵奖,可以说,几乎所有网络产品都是站在他的肩膀上诞生的。Android 智能手机、流媒体设备,Mac 和 iPad、Windows 11和 Surface Book、云计算……
Dennis Ritchie 退休后,一直过着隐居的生活,几乎被外界遗忘。2011 年 10 月 12 日,与他共事 20 年的同事罗布·派克(Rob Pike)从加州来到新泽西看望他,却发现他已经去世了。由于 Dennis Ritchie 独自生活,确切的死亡时间不得而知;据他哥哥说,丹尼斯里奇多年来一直健康状况不佳,患有前列腺癌和心脏病。
罗布·派克当时只在社交平台上发了个极其简短的讣告:“据我所知,Unix 和 C 语言发明人丹尼斯·里奇已经去世。”,Dennis Ritchie 的“保持简单”的原则,不仅体现在他的 C 语言和 Unix 系统,还贯彻了他的一生。