dmr去年仙逝,老友Rob Pike去他家,发现已经去世不知道多久了。终身未婚,死前身患前列腺癌和心脏病。Rob Pike在google+上发了条消息,说dmr死了。当时正在疯狂悼念Steve Jobs的世界才分了一丝注意力给了这位伟大的科学家和工程师。
原文:http://herbsutter.com/2011/10/12/dennis-ritchie/悲伤的一周。
Rob Pike发帖说Dennis Ritchie也去了。Ritchie是计算机科学的一位先驱,也是当之无愧的图灵奖获得者。他的贡献甚巨,尤以C语言的创造而知名于世。C语言是史上最有影响力的编程语言,至今仍在茁壮成长。
标注:说起“茁壮成长”,这也是ISO标准C语言里程碑式的一周。就在几天前,新的C语言标准进入最后一轮投票[*],所以现在我们有了新的ISO C11标准。C11包括了同C++类似的一系列新功能,主要是内存模型和同C++11相一致的线程、锁、原子并发库等。ISO很快会发布新的C标准。
[*]ISO规定:如果在倒数第二轮投票中全票通过,就跳过最终投票程序而直接发布。
Bjarne Stroustrup就Ritchie对计算机科学界的重要贡献说了意味深长的话:“他们说这是不可能的,而他做到了。”
Bjarne的意思是:
在C发明之前,硬件的差异要远超今天。计算机引以为傲的不仅仅是各种漂亮的外观和奇特的指令系统,而是几乎一切都截然不同。甚至非常基本的字符位长度(你不喜欢每个字节8位吗?那9位怎么样?还是7位?再或者有时6位有时12位?)和内存地址(不喜欢16位指针?18位呢?哦!或者指针不指向字节,指向字如何?)。
从来没出现过一个通用性的语言,既能在不同的硬件间拷贝移植,又能和那些专为某个硬件而写的代码比拼效率。Frotran在面向数组的数字运算上干的不错,但没人能用它做通用的代码,比如让你在一个东西上面创造一切,一个操作系统。
然后这个傲慢自负的年轻人站出来,决定尝试创造一种语言让人们能写出这样的程序:(a)高级的,有结构和函数的;(b)在任何硬件上都能运行的;(c)和那些在千奇百怪手工搭建的硬件上编写的特异汇编代码同样高效。一个高级的、可移植的、高效的系统级编程语言。
真是个笨蛋!所有人都知道这是不可能实现的。
C是一面旗帜。它让那些认为一件事不可能做到而且不停嚷嚷着的家伙闭上了嘴巴。(而且让那些人使用上了由同一个除了懒惰和总在征服新问题外什么都不懂的发明人用他创造的世界上第一个可移植和高效的编程语言缔造了世界上第一个可移植的操作系统,他们原本以为这也是不可能办到的。)
谢谢你,Dennis!
后记:
能力不够,翻的不好,尤其最后一段,感觉Herb Sutter对Ritchie的崇敬之情非常之深。没有C和Unix就没有一切。没有Dennis Ritchie就没有C和Unix。