书的封面上写着「继《C 程序设计语言》后的全新力作」,乍看以为作者就写了两本书。实际上在这本书中,作者本人就提到了他写过的其他书,比如《普林斯顿计算机公开课》(有一个版本叫做《世界是数字的》)、《程序设计实践》,此外还有近年来火热的《Go 程序设计语言》。
或许是因为后面几本书都不如《C 程序设计语言》名气大,封面上才有了那么一句话。书的最开始,是一帮互联网圈的所谓大牛的推荐语,翻过各种推荐语,已经过了全书的 8%,之后才是正经的译者序、作者的前言等内容。这些让人迷惑的操作,让我怀疑是编辑对作者没什么信心。
Unix
Multics 本该前途无量,但其很快就陷入困境。回头看来,它算是第二系统效应(second system effect)的受害者。所谓第二系统效应,意思是在首个系统(如 CTSS)创建成功后,打算创建一个新系统,修正旧系统的遗留问题,还要添加每个人期望的新特性,结果常常是塞了太多不同东西进去,最终得到过于复杂的系统。
很多好点子滥觞于 Multics,但它最持久的贡献却完全没人预料到:它影响了一个叫 Unix 的小操作系统,这个小系统诞生的部分原因是想摈弃Multics的复杂架构。
正在那时,肯的太太休了 3 周假,带着一岁大的儿子去加利福尼亚探望公婆,这样肯就有了3周不受打扰的工作时间。正如他在 2019 年一次采访中所说,“一周,一周,再一周,我们就有了 Unix。”无论以何种方式来度量,这都体现了真正的软件生产力。
老婆孩子不在家带来的生产力提升。
顺便说一下,creat 系统调用之所以这么拼写,只能归咎于肯 · 汤普森的个人品位,没有其他什么好借口。罗布·派克曾经问肯,如果重写 Unix,他会做哪些修改。他的答案是什么?“我会在 creat 后头加上字母 e。”
如果程序很好,它就会吸引用户,然后就很难用任何不兼容的方式来修改。Unix 和大多数其他系统都充斥着最初就存在的瑕疵,根深蒂固,无法修复。
Plan 9
Plan 9 于 1992 年提供给高校使用,几年后公开发布,用于商业用途,但如今只有一小部分爱好者使用。主要原因可能是 Unix 和持续增长的 Linux 势头太猛,没有令人信服的理由让大多数人换系统。可能还有一个较小的原因:它过于特立独行。Plan 9 的机制在很多情况下都比 Unix 等价物要好,也没有尝试去提供兼容性。
Plan 9 无法得益于很多优秀的 Unix 软件,更难将其软件创新成果输出到主流 Unix 世界。
不过,Plan 9确实为世界贡献了一件无比重要的东西:Unicode 的 UTF-8 编码。
优秀、先进,缺少生态
Fun facts
我忘了当时给出何等评价(尽管今天vi是我最常用的两个编辑器之一),只记得我告诉比尔,他应该停止折腾编辑器,专心完成他的博士学位。他没有理会我的建议,这对大家都是一件幸事。
本贾尼在我部门任职长达15年。就像前文提到的那样,他经常过来找我讨论设计决策,所以我算是看着 C++ 长大的。至少在早期,我还能够理解它。但现在它是一门大了很多的语言,而我则变得所知甚少。
用了很多新标准中「高级特性」的 C++ 代码,跟「朴实」的 C++ 代码,几乎不像是同一门语言。
USL 在日本成立了子公司 Unix Pacific,经理是拉里·克鲁姆(Larry Crume)。他在贝尔实验室供职多年,与科研部门很多人都熟识。这种关系促成了技术合作,我也因此得到两次公费访日的机会,其中一次是与日本大型电话公司 NTT 交流。交流过程感觉良好,但可以明显感受到论资排辈文化。执行董事和 NTT 同级官员打高尔夫,中心主任和他的同级打网球,像我这样的基层部门主管则被邀请去东京购物。我谢绝了。
东方国家特色吗?还是全世界都这样。
Work
人们在这里不仅仅是为了工作,更是因为希望留在卓越团队里。
伟大的创意总来自个体。
在实验室工作的 30 多年里,我从来没有被告知要做什么工作。
杰勒德·霍兹曼维护着一份 1127 中心老同事的在线名单。太多的人已经离世,活着的人里面许多去了谷歌公司;其他人则在别的公司工作,也有人教书或退休。只有极少数人留在贝尔实验室。