打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
被遗忘的巨人,乔布斯也不过站在他的肩膀上而已

iPhone X的发布会被首次安排在乔布斯剧院,开场前预热视频也是乔布斯的声音,此举意为向乔布斯致敬。



“十年前,乔布斯发布了第一代iPhone,完全革新了手机;十年之后,在这样一个场合、这样一个时间点,苹果同样需要发布一款革新产业的产品。”


出场后仅仅说了两句话,库克就停下来清了清嗓子,用右手擦掉眼角的泪水。


当史上最贵的iPhone发布,人们致敬缅怀乔帮主之时,不禁再次想到了另一个被人们遗忘的巨人。


丹尼斯·里奇(Dennis Ritchie),一个很少有人知道的傻傻的老头,也是在2011年10月逝世,和乔布斯离开的时间只相差了几天。




不同的是,一个被媒体捧上神坛,一个是被遗忘的巨人。


丹尼斯·里奇,C语言之父,Unix和C语言的发明人,图灵奖获得者,今天几乎所有的IT产品都是基于丹尼斯先生的成就诞生的。


“他的名字根本不是一个家喻户晓的名字,但是如果你有一台显微镜,可以看电脑,你会看到他的工作到处都是。“


——Paul E. Ceruzzi,计算机史学家


苹果,微软,Windows,Android,iOS,JavaScript,C …今天我们熟悉的IT技术和软件不过都是站在里奇这个巨人的肩膀上而已。




贝尔实验室走出的C语言之父


里奇出生于1941年9月9日,他的父亲Alistair Ritchie曾是贝尔实验室的交换系统工程师。里奇高中毕业后,1963年获哈佛大学物理与应用数学学士学位,1968年获哈佛大学数学博士学位。


1967年里奇进入贝尔实验室,就职于贝尔实验室计算科学研究中心——-当时世界上最著名的数字创新中心之一,晶体管的发源地。


在贝尔实验室,里奇参与了贝尔实验室Multics操作系统开发。在这里,里奇遇见了肯·汤普森,后来他成为里奇的主要合作者之一。


后来贝尔实验室放弃了Multics计划,但里奇和肯·汤普森并未放弃合作,他们找到了一台PDP-7机器,从头开始开发应用程序和操作系统,并于1969年成功开发出UNIX操作系统。


上世纪70年代,计算机硬件并没有统一的标准,花样百出,软件开发者们不得不花很多精力和时间为每一个新平台创建新的软件。


原始的UNIX内核是用汇编语言编写的,但是里奇和汤普森觉得需要一个更高级别的语言,以便更好地控制跨操作系统的所有数据。


他们采用了BCPL(Basic Combined Programming Language)语言,并继续对BCPL进行了修改,还为它起了一个有趣的名字“B语言”。意思是将CPL语言煮干,提炼出它的精华。


他们用B语言写了第一个UNIX操作系统。


不过,1973年,这个B语言又被给“煮”了。里奇在B语言的基础上最终设计出了一种新的语言,并BCPL的第二个字母作为这种语言的名字,这就是C语言。


C语言通过添加新的数据类型和句法升级了B语言。不同的是,B语言是一种编译型语言,需要由中间代码执行才能运行于CPU,而C语言可直接在CPU上执行。


C语言能够轻松、快速地在不同的硬件之间移动,用C语言编写的软件运行于任何可运行C语言的设备时,几乎不做任何修改。


C语言极具模块化和结构化特点,且由于C语言可以轻松的运行于不同的电脑,程序员可以将整个代码复制到自己的软件中,无需从头开始,从而实现起来更加方便快捷。


里奇和肯·汤普森重新用C语言编写了UNIX操作系统。



▲里奇和肯·汤普森解释UNIX操作系统


直到今天,C语言成为广泛使用的编程语言,从90年代如日中天的Sun MicroSystems,到今天苹果帝国的所有产品操作系统,都是源于UNIX和C语言。如果你用的不是苹果,安卓系统也是。



UNIX本质上是一个简单的操作系统,但你必须是一个了解简单的天才。


—丹尼斯·里奇


了解简单的天才


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语言依然是世界上最重要的编程语言之一,'保持简单'原则显示了强大的生命力。


Keep it simple stupid


尽管功成名就,但是就像他的工程设计思想,丹尼斯·里奇在个人生活上也尽量'保持简单'。他依然住在新泽西,低调地生活,不太在媒体上曝光,终身没有结婚。


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


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


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


1999年4月,克林顿总统为里奇颁发美国国家科技奖,以表彰他发明UNIX操作系统和C编程语言。


提供肩膀的巨人


罗伯是里奇的同事,二人在贝尔实验室共事20年。罗伯说:


当乔布斯去世时,享受到了声势浩大的追思。相形之下,里奇先生对当代科技进程做出了更大的贡献,可公众甚至不知道他是谁,这十分不公平。


网络已经成为当代生活不可或缺的一部分。然而,缺少了里奇所创造的 C 语言和 UNIX ,网络和任何网络产品都不可能存在。比如,浏览器是用 C 语言写的,网络服务器是C语言写的,很多人反驳说他们所使用的是 JAVA 或者 C ,但它们也是 C 语言的衍生物。包括网页架构时的 Python 和 Ruby 两种程序语言,也是基于 C 语言的。除此而外,所有的网络硬件产品都是 C 语言所编写的,而 UNIX 是整个因特网所运行的基础。由此可见,我们怎样评价里奇先生的丰功伟绩,都不足为过。甚至Windows 也曾经用C 语言写过,苹果公司用于个人电脑、iPad和iPhone上的操作系统,都是基于UNIX的。


麻省理工大学计算机系的马丁教授评价说:


如果说,乔布斯是可视化产品中的国王,那么里奇就是不可见王国中的君主。乔布斯的贡献在于,他如此了解用户的需求和渴求,以至于创造出了让当代人乐不思蜀的科技产品。然而,却是里奇先生为这些产品提供了最核心的部件,人们看不到这些部件,却每天都在使用着。


里奇是一个非常低调地科研工作者。和乔布斯力图形成垄断的个人主义截然不同,里奇一直希望自己的工作能够为更多的科研工作者所用,能够为他人日后的科研工作和科技进展提供便利。


克尼汉评价道:


牛顿说他是站在巨人的肩膀上,如今,我们都站在里奇的肩膀上。


这句话,应该是对丹尼斯·里奇先生的一生最有力也是最中肯的评价。


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
丹尼斯·里奇,那个给乔布斯提供肩膀的巨
为了玩游戏,Dennis Ritchie创造了UNIX
互联网和软件的缔造者逝世四周年,比乔布斯更伟大,却没有鲜花和掌声
互联网发展史人物篇:肯•汤普森(Ken Thompson)——UNIX之父
C语言之父丹尼斯
丹尼斯·里奇
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服