我对C语言之父的一次邮件采访
作者:网络转载 发布时间:[ 2015/12/18 10:48:52 ] 推荐标签:编程语言 Unix
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。这些版本的所有权各自动机不同,当然,每个版本都有各自的吸引力。这是品牌差异,也是这些系统在移植性方面存在困难的原因。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11