C语言之父Dennis Ritchie访谈:当年错失互联网大机遇
近日,“日本奖”基金会在美国举行了2011年度“日本奖”的颁奖仪式。Unix之父Dennis Ritchie荣获“信息与通讯奖“。IEEE Spectrum资深新闻编辑Samuel K. Moore为此专访了Dennis Ritchie,下面是对本次采访内容的编译。
Unix之父Dennis Ritchie
“日本奖”基金会于今年1月宣布了2011年度“日本奖”获奖名单,Dennis Ritchie和Ken Thompson因在Unix操作系统开发中所作出的贡献,而荣获“信息与通讯奖”;Tadamitsu Kishimoto和Toshio Hirano则因为发现白细胞介素6(interleukin-6)而获得“生物科学与医药科学奖”。
该颁奖仪式往年通常在日本举行,但由于今年日本发生地震和海啸,3月17日,该基金会宣布该颁奖仪式改在美国举行。5月19日,该颁奖仪式在位于新泽西州Murray Hill区的贝尔实验室总部举行。Ritchie和Thompson曾在这个实验室工作并开发了Unix操作系统,现在该实验室是法国通信公司Alcatel-Lucent的一部分。Thompson现任谷歌高级工程师,Ritchie仍在贝尔实验室工作,是“退休研究员中的显要成员”。除了开发了Unix,Ritchie还发明了C编程语言。
IEEE Spectrum资深新闻编辑Samuel K. Moore参加了本次颁奖仪式,并专访了Ritchie。
IEEE Spectrum:你同时发明了Unix和C,你更喜欢哪一个呢?
Dennis Ritchie:很显然,C语言带来了丰厚的利润,由我和Brian Kernighan合著的《The C Programming Language》一书仍在出版和销售。Unix正在不断壮大,同时C语言至今仍在使用。从某种意义上,C语言更多出自我手,它由Ken发明的B语言发展而来,但却经历了很大的进化。虽然我曾和很多人谈过此语言,但C语言所有的变化都归根于我。但对于Unix的进化,很多人都做出了贡献。
IEEE Spectrum:用你的话来说,“C语言既古怪又有缺陷,却取得了巨大成功”,如果你有机会重新设计的话,它将会有什么不同?
Dennis Ritchie:需要改很多小地方,但我不想逐一列出了。其中一些在标准化过程中已经改正。但是原设计中也有很多内在的一致性(注:指不太好改),比如,内部类型系统的运作方式。并不总是那么易用。例如,Null结尾数组也就是字符串,是一个以Null结尾的字符数组。人们常常抱怨这种设计容易使人犯各种各样的错误,要是改成字符串是个计数然后放字符之类的设计就好了。可事实上,语言的内部基本机制决定了字符串就是数组,没有地方放计数,即使很容易犯错。
IEEE Spectrum:Unix不仅延续了下来,还占领了计算机世界。对于Unix的现代化身Linux,你如何看待?
Dennis Ritchie:我认为它很成功。我不再评论它细微的变化。虽然它并没有通过相同的方法获得批准,也没有遵循相同的标准,但我认为从本质来说,Linux是Unix新的实现形式。所以从这个意见上说,它做得很好,并将做得更好,为此我很高兴。
IEEE Spectrum:你的网站上有一篇1976年写的很难懂的备忘录:“提议对Unix进行可移植性实验”。它代表了把Unix当作一个更普遍的计算机平台的新思考方式,或许甚至考虑把它当作操作系统,对你来说,它的意义很重要吧?
Dennis Ritchie:当时我们正在移值Unix,我不得不很艰辛地寻找其他任何系统在移值中的参考资料。我发现了一些,但他们却没起到任何作用。所以我和Steve Johnson在实现Unix的移植性上做出了特殊的贡献。Ken对内核做了大量的修改,从而使实现移植性成为可能,但他当时正打算离开,去澳大利亚公休,所以实际的移植性实现工作都是我和Steve做的。
IEEE Spectrum:到1970年代后期,AT&T已经拥有使互联网诞生的一切要素。Unix及其所有工具和服务,比如电子邮件,都已经有了,运行CP/M的个人电脑也比较常见。AT&T还有ISDN技术——我们本来可以跳过调制解调器/窄带网络时代的,应该在1985年而不是1985年就出现万维网(Web)了。你是否觉得错失了一个大机遇?贝尔实验室当时有人预见到世界的这一图景吗?
Dennis Ritchie: AT&T的思维定势基本上是以连接为中心的。长时间连接,就像电话那样。分组交换对他们没意义。AT&T在早期互联网时代有太多机会被视而不见了。
IEEE Spectrum:Unix的最初目的是想作为一个电话交换机的平台,是吗?
Dennis Ritchie:Ken最初的想法是计划写一个操作系统。他开始后,我也很早便加入了。除了做了一些新的、很酷的东西后,真正引导我们的是我们的“自私”——去开发一些可以使我们的生活变得更轻松的工具:“我喜欢用相应工具去做相应的事。对于一件很困难的事,我常思考我可以开发什么样的工具,让它实现起来更简单呢?”
IEEE Spectrum:后来你都开发了哪些诸如此类的工具呢?
Dennis Ritchie:有很多。比如Brian Kernighan开发的一种小语言。我们都喜欢排版和文档——这是一种突发奇想,你可以写一种语言去描述图片、线条,然后用它来绘制图表及有机分子图。Unix使这一切都很简单。
IEEE Spectrum:Unix实际应用里你最喜欢哪个?
Dennis Ritchie:Kindle基于Linux,真酷啊。智能手机之类的也是。真让人惊喜。
Unix之父Dennis Ritchie
“日本奖”基金会于今年1月宣布了2011年度“日本奖”获奖名单,Dennis Ritchie和Ken Thompson因在Unix操作系统开发中所作出的贡献,而荣获“信息与通讯奖”;Tadamitsu Kishimoto和Toshio Hirano则因为发现白细胞介素6(interleukin-6)而获得“生物科学与医药科学奖”。
该颁奖仪式往年通常在日本举行,但由于今年日本发生地震和海啸,3月17日,该基金会宣布该颁奖仪式改在美国举行。5月19日,该颁奖仪式在位于新泽西州Murray Hill区的贝尔实验室总部举行。Ritchie和Thompson曾在这个实验室工作并开发了Unix操作系统,现在该实验室是法国通信公司Alcatel-Lucent的一部分。Thompson现任谷歌高级工程师,Ritchie仍在贝尔实验室工作,是“退休研究员中的显要成员”。除了开发了Unix,Ritchie还发明了C编程语言。
IEEE Spectrum资深新闻编辑Samuel K. Moore参加了本次颁奖仪式,并专访了Ritchie。
IEEE Spectrum:你同时发明了Unix和C,你更喜欢哪一个呢?
Dennis Ritchie:很显然,C语言带来了丰厚的利润,由我和Brian Kernighan合著的《The C Programming Language》一书仍在出版和销售。Unix正在不断壮大,同时C语言至今仍在使用。从某种意义上,C语言更多出自我手,它由Ken发明的B语言发展而来,但却经历了很大的进化。虽然我曾和很多人谈过此语言,但C语言所有的变化都归根于我。但对于Unix的进化,很多人都做出了贡献。
IEEE Spectrum:用你的话来说,“C语言既古怪又有缺陷,却取得了巨大成功”,如果你有机会重新设计的话,它将会有什么不同?
Dennis Ritchie:需要改很多小地方,但我不想逐一列出了。其中一些在标准化过程中已经改正。但是原设计中也有很多内在的一致性(注:指不太好改),比如,内部类型系统的运作方式。并不总是那么易用。例如,Null结尾数组也就是字符串,是一个以Null结尾的字符数组。人们常常抱怨这种设计容易使人犯各种各样的错误,要是改成字符串是个计数然后放字符之类的设计就好了。可事实上,语言的内部基本机制决定了字符串就是数组,没有地方放计数,即使很容易犯错。
IEEE Spectrum:Unix不仅延续了下来,还占领了计算机世界。对于Unix的现代化身Linux,你如何看待?
Dennis Ritchie:我认为它很成功。我不再评论它细微的变化。虽然它并没有通过相同的方法获得批准,也没有遵循相同的标准,但我认为从本质来说,Linux是Unix新的实现形式。所以从这个意见上说,它做得很好,并将做得更好,为此我很高兴。
IEEE Spectrum:你的网站上有一篇1976年写的很难懂的备忘录:“提议对Unix进行可移植性实验”。它代表了把Unix当作一个更普遍的计算机平台的新思考方式,或许甚至考虑把它当作操作系统,对你来说,它的意义很重要吧?
Dennis Ritchie:当时我们正在移值Unix,我不得不很艰辛地寻找其他任何系统在移值中的参考资料。我发现了一些,但他们却没起到任何作用。所以我和Steve Johnson在实现Unix的移植性上做出了特殊的贡献。Ken对内核做了大量的修改,从而使实现移植性成为可能,但他当时正打算离开,去澳大利亚公休,所以实际的移植性实现工作都是我和Steve做的。
IEEE Spectrum:到1970年代后期,AT&T已经拥有使互联网诞生的一切要素。Unix及其所有工具和服务,比如电子邮件,都已经有了,运行CP/M的个人电脑也比较常见。AT&T还有ISDN技术——我们本来可以跳过调制解调器/窄带网络时代的,应该在1985年而不是1985年就出现万维网(Web)了。你是否觉得错失了一个大机遇?贝尔实验室当时有人预见到世界的这一图景吗?
Dennis Ritchie: AT&T的思维定势基本上是以连接为中心的。长时间连接,就像电话那样。分组交换对他们没意义。AT&T在早期互联网时代有太多机会被视而不见了。
IEEE Spectrum:Unix的最初目的是想作为一个电话交换机的平台,是吗?
Dennis Ritchie:Ken最初的想法是计划写一个操作系统。他开始后,我也很早便加入了。除了做了一些新的、很酷的东西后,真正引导我们的是我们的“自私”——去开发一些可以使我们的生活变得更轻松的工具:“我喜欢用相应工具去做相应的事。对于一件很困难的事,我常思考我可以开发什么样的工具,让它实现起来更简单呢?”
IEEE Spectrum:后来你都开发了哪些诸如此类的工具呢?
Dennis Ritchie:有很多。比如Brian Kernighan开发的一种小语言。我们都喜欢排版和文档——这是一种突发奇想,你可以写一种语言去描述图片、线条,然后用它来绘制图表及有机分子图。Unix使这一切都很简单。
IEEE Spectrum:Unix实际应用里你最喜欢哪个?
Dennis Ritchie:Kindle基于Linux,真酷啊。智能手机之类的也是。真让人惊喜。