《软件故事》封面

最近读了@图灵教育 出版的《软件故事——谁发明了那些经典的编程语言》(原书名:Go To: The Story of the Math Majors, Bridge Players, Engineers, Chess Wizards, Maverick Scientists, and Iconoclasts -- the Programmers Who Created the Software Revolution,Steve Lohr,2001年),只看书名和封面,可知这本书的内容十之八九都在讲述FORTRAN、COBOL/IBM 360、Pascal、UNIX/C、BASIC、C++、Java等各种编程语言或系统的“故事”,当然,主要篇幅无疑留要给幕后的科学家、工程师等等。现代计算机诞生之初,并没有独立的软件,更别说专门的软件工程师,那么软件从何时开始出现并兴起呢?这本书会给你满意的答案。推荐给对各种编程语言或系统的幕后故事感兴趣的朋友。

全书以各种语言和系统为主线,讲述其诞生、发展的曲折过程。作者采访了很多当事人,从中可以窥见很多不为人知的有趣细节,比如项目工期的不断延误、年轻团队长期而艰苦的基础工作、“独具特色”的PIP(绩效改进计划,IBM FORTRAN项目),格蕾丝•霍普(Grace Hopper)是不是“COBOL之母”,BASIC/Visual Basic对于微软成立及Windows兴起的重要性,看似“无心插柳”却终成当今最流行的编程语言——Java反复曲折的开发过程(James Gosling和Bill Joy之间的合作与冲突)……

在讲述关系型数据库的发展历程中,提到数据库专家吉姆•格雷(Jim Gray,1998年图灵奖获得者,2007年独自驾船出海失踪)的一则趣事(下一段大部分内容摘自该书)。

IBM R系统研发工作本身极具吸引力,但是作为一个地地道道的加利福尼亚人,格雷厌恶生活在美国东部,尤其讨厌那里阴暗寒冷的冬天。他对上司说自己不能再忍受纽约的冬天了,要求调到加利福尼亚工作。然而,他被告知那边没有职位空缺,因为在经济低迷期IBM冻结了招聘计划。而且上司觉得格雷夸大了自己对积雪和雨水的厌恶之情。但是格雷并不是闹着玩的,他决定逃离这片纽约郊区。他回忆说:“和纽约比起来,加利福尼亚简直就是天堂,温暖的阳光、热情的人们,一年四季都有成熟的番茄。”格雷辞去了工作,跳上了他的大众甲壳虫汽车,一路穿越美国回到了加利福尼亚。当他出现在位于圣何塞的IBM实验室的门口时,那里正巧有个职位空缺。

这么看来,硅谷的兴起是有原因的。:-)

又比如,微软早期员工、堪称Word之父的查尔斯·西蒙尼(Charles Simonyi)的嗅觉和远见:

西蒙尼14岁时,《布达佩斯》时报上的一篇专栏文章给他留下了深刻的印象。那是一位名叫安东尼奥·葛兰西的意大利共产主义者写的文章,被翻译成了匈牙利语。根据西蒙尼的回忆,葛兰西的这篇文章讲述的是伟大的共产主义领导人列宁和木柴的故事。一位生活在俄国乡村的老太太家中的木柴就快用完了,此时正值寒冬时节,供给很有限,她的木柴撑不过整个冬天。绝望中,她写了一封信给列宁同志,诉说自己面临的困境。列宁读了老人的信后亲自处理了这件事,于是老人有了足够过冬的木柴。这是一个讲述共产主义善行的故事,但是在当时年轻的西蒙尼看来,这是十分可怕的。他说:“我读了那篇文章之后想:‘一个人会不会被冻死,难道是由领导人看不看你的信决定的吗?’我要尽快逃离这种体制。”(摘自《软件故事》)

又比如,牛人之间的合作,也有你想象不到的“沟通失败”的案例:

多年来一直指导这对搭档的道格·麦克罗伊指出,里奇(Dennis Ritchie,与Ken Thompson共同打造了UNIX操作系统、C语言)的天分很大程度上是“固有的”、“看得明白的”,而汤普森(Ken Thompson)的才能完全不同,是“真正的天才型”,闪烁着“令人意想不到的、丰富的创造力”的光芒。无论这种合作关系究竟是何种关系,两人的才智在工作中常常合二为一。1983年,在接受图灵奖颁奖时,汤普森称与里奇合作是一件“美妙的事”,然后还举出了一些小例子来证明在编码工作中他们的想法有多么相似。汤普森回忆说,在一起工作的10年里,他能记起的两人之间失败的沟通仅有一次。“那次,”汤普森说,“我发现我们俩写下了同样的20行汇编语言程序。比较了代码之后,我惊讶地发现竟然一个字都不差!”(摘自《软件故事》)

如此伯牙子期,夫复何求?!

《软件故事》英文原版成书于2001年,采访大多完成于2000年,正值.com泡沫最大且将破灭之际,但全书并没怎么涉及Web软件/应用,当然,绕不开万维网之父Tim Berners-Lee提出并实现超文本和万维网的曲折过程(Steve Jobs和NeXT公司也牵涉其中),也简略提到了Netscape浏览器的由来和兴起。

阅读《软件故事》,可以看到很多编程先锋熟悉的名字,比如Bill Gates(毫无疑问的)、Charles Simonyi、Bob Frankston、Dan Bricklin、Butler Lampson、Andy Hertzfeld……这些大牛都是Programmers At Work(Susan M. Lammers,1986年出版,中文版《编程大师访谈录》,人民邮电出版社图灵教育)一书中的采访对象,甚至《软件故事》的有些片段与该书部分内容几近相同。是啊,时隔15年(GoTo出版于2001年,PAW出版于1986年,采访时间相差近15年),一切仍历历在目,没什么变化。

《软件故事》一书读下来,非常顺畅,“换档顺滑,无明显顿挫感”,可以想见,译者费了不少功夫和心思。人无完人,书无完书,错漏难免,书中还是能找到不少“彩蛋”,似乎也可视作一种乐趣:-)。比如,“涡轮增压的位处理引擎使‘深蓝’在速度和动力上占有优势,再就是软件”(“涡轮增压”原文应为Turbo,有点过度翻译了),“以充当用户喜欢的应用程序的发射台”(Launcher,启动器),“理查德·M.斯托曼……后来创建了免费软件基金会”(FSF,Free Software Foundation,自由软件基金会,Stallman要哭了),“在他的定义中,免费软件和开源软件是两个不同的概念”(Free Software,自由软件,NOT Freeware,Stallman再哭)。

该书电子版图灵社区(www.ituring.com.cn)有售,支持推送到Kindle!