分享

我对 C 语言之父的一次邮件采访

 昵称29273511 2015-12-15


2003 年我在运营了一个 Unix 的网站。某天我突发奇想:干嘛不采访一下 Dennis Ritchie 呢?于是我就发了封邮件给 dmr@plan9.bell-labs.com,结果居然很快就收到了他的回复:“直接发问题过来吧,看看会怎么样”。于是我就按他说的做了,他果然很随和地回答了我问的各种问题。现在回想起来,我当时真的应该问些更有意义的问题才对。不过也不能苛求什么,因为当时我才17岁而已。总之,我认为这段经历是值得我去深挖的。



丹尼斯·里奇(站立者)与肯·汤姆森 于1972年于一台PDP-12前合影 (照片来源:贝尔实验室提供)


您第一次接触电脑是什么时候?


应该是我在大学念本科的某个时段(大约是在1960年左右),我当时参加了一些非正式课程的讲座,就是关于计算机的,我发现自己被计算机迷住了。于是我就申请了时长为一学期的计算机导论必修课程。这个课程的第一部分是讲模拟电路计算机的,接下来就是对纸带打卡设备的介绍,接下来才接触到真正的数字计算机——也就是我们在上面准备做编程的Univac I机型。我当时是物理系的本科生,不过我发现我同时对计算理论和计算应用都很感兴趣。所以,在硕士阶段我的研究基本都是关于理论(递归函数的结构)的,但我也开始在计算实践方面投入精力。我还在我当年参加的那门计算机导论课程当了三年的助教,不过后来这门课程采用的机器已经换到IBM 7094上了。


您认为自己在计算领域的最高成就是什么呢?


如果只能说一件事情的话,那就是让Unix具有可移植性,这基本上是来自于我的主意。当时C语言已经在多种不同的机型和操作系统上得以实现,Unix也已经部署到了PDP-11机型上,但是要让Unix整个系统具有移植性,还是个新概念。


那您目前有什么成果吗?最近在忙什么项目呢?


最近我自己没有什么值得称道项目——我正在把我的兴趣重心移到历史上!过去几年,我扮演更多的是管理者的角色。我有所接触的项目,就是来自于开发小组的Plan 9系统和Inferno,但是我必须要说明,这不是我主导开发的项目,而是我的同事们在主导开发。我更多的时候只是负责发工资,还有给应聘者做做报告。


您现在花在编程上的时间有多少呢?


很少了。我现在主要是修修补补,调一调HTML,写写脚本什么的


您能描述一下在贝尔实验室的工作是怎样的么?你们平时都用什么软件呢?


我一般来得比较晚,除非早上有会议。不过我每天要花大量时间处理电子邮件,和同事进行沟通。我现在的工作环境(在我的个人电脑上)是Windows NT,但是我是用Windows系统作为一个图形终端,去连接Plan 9服务器,这就和你通过X Window客户端连接服务器是一个道理。我可以在家通过Modem进行远程连接(今年夏天升级到了ISDN),在办公室的话我就用局域网了。所有的文字编辑,软件开发相关工作,邮件收发都是通过这种连接方式到Plan 9上进行的。如果要编辑Excel,Word,或者上网看网页,我则会切回Windows NT进行。


您对 C 语言的未来有什么预测吗?


C语言在和C++的比较中渐渐显出劣势,当然也许和Java的比较,或者和其他高级别的脚本语言的比较也是如此。但是C语言在基础系统开发领域仍然是非常强劲的。


您对微内核和大型系统两者的看法是什么?


其实从用户的角度来讲,你是感觉不到这两者有什么太大区别的。“微”内核在现如今也可能会很庞大,“大型”系统搭载了很多可装卸的驱动程序,这也利用了“微内核”的优点。


您同意 Rob Pike 关于系统研究的(无)相关性的说法吗?


当然同意,尽管Rob把这个话题弄得很容易引起争端。现在的情况和我们开始研发Unix的时候相比,确实是如此。现如今的软件生态系统已经非常拥挤了,新思想很难产生,也很难传播。


您对Linux和BSD这些Unix衍生系统的开发有什么看法?您认为这些系统是不是最终会取代Unix系统的地位?


(这些系统)已经成为了现象级的事物,我认为他们很好,不过这些系统长期以来一直受到了所有权的困扰,并且现在还在受到这种困扰。Sun,SGI,IBM,Digital都有(或者曾经有)同一种系统的各自版本——重复地实现Linux和BSD。这些版本的所有权各自动机不同,当然,每个版本都有各自的吸引力。这就是品牌差异,也是这些系统在移植性方面存在困难的原因。


您对GNU项目有什么看法?您第一次听说GNU是什么时候呢?


我不记得第一次听说GNU是什么时候了。真正的GNU哲学其实比我认为的要极端得多,但是它还是为目前的局面奠定了基础,而且它也确实提供了真正的软件。很有意思的一件事情是:自由软件的思想已经开始对目前主要的商业公司产生了影响。同时,他们中的一些人又开始对我们已经做好的东西重新造轮子;这应该算是一种知识的衍生了吧。难道就真的没有新思想产生了啊?不过,看到他们在我们曾经工作成果的基础上再造,还是蛮好的。


您最尊崇的人有哪些呢(是计算机领域内的还是之外的呢?)


我从小就不是一个有英雄情结的人。显然,对我的职业生涯影响最大的人就是Ken Thompson.Unix基本上就是他的作品,还有C语言的前任语言(B语言——译者注),以及Plan 9系统(尽管Plan 9的实际开发工作是由Rob Pike完成的)。同时Ken还创造了首个计算机国际象棋大师程序(Belle——译者注),然后还重写了关于象棋残局的书籍。他真是一个不得了的人。


除了工作,您还有什么其他爱好吗?


我的爱好很多。大多数都和计算机相关(比如万维网和相关的一切东西)。除此之外,可能就是读书吧(是指真正的读纸质书籍)。我去过很多地方旅行,这我也很喜欢,但是每次旅行的时间都不会太长。我是比较宅的类型,所以旅行很容易让我感觉到疲乏,不过当我回想起旅行的经历的时候,我又希望自己能在外面待得更久一点,尤其是那些有异域奇景的地方 。


您对音乐,文学或者电影有哪些推荐呢?


我听的大多都是古典音乐,不过多数都是从收音机里听的。我不是一个高保真音响发烧友。书籍阅读方面,我不太读科幻类的书,而是喜欢读一些游记,还有优秀的科普书籍:比如 Stephen Jay Gould(著名的古生物学家、进化生物学家和科学史工作者——译者注)或是Kip Thorne(美国理论物理学家和科普作者,著有《黑洞与时间弯曲——爱因斯坦的幽灵》——译者注)写的书。我还看一些幽默表演,我是 S. J. Perelman 的粉丝。目前我正在读John McPheede 写的《The Founding Fish》。


扩展花絮


2002年,我在Unix.se上发起了向Unix / 开源人士搜集电脑桌面截屏的活动,搜集的目标是随机的。自然,Dennis Ritchie就是其中之一。这是他发给我的他的电脑截屏,时间是2002年6月9日。


下面这个截图,就是 Dennis Ritchie 当时在阅读我发的邮件。(点击查看大图)



屏幕的背景显示的是WIN NT 4操作系统,我想你可能从桌面左下角的图标已经猜出来了。几乎所有的屏幕空间都被一个窗口占满了,这是一个叫drawterm的程序,一个(类似于)X server的程序,用来连接到Plan 9 CPU 服务器(通过ISDN);这个服务器是位于贝尔实验室的总部的,而我自己则是在家里。)


我还得到了 Brian Kernighan 的电脑桌面截屏:



我的桌面非常无聊,因为它就是由几个xterm窗口组成,窗口里运行的是我正在使用的Unix系统。这台机器本身很可能是在在运行X Window Server,而不是Windows,因为这么多年来,我只用x terminal。


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多