20世纪最后一年也就是1999年的图灵奖,授予了年已69岁的资深计算机科学家布鲁克斯(Frederick Phillips Brooks, Jr.)。布鲁克斯这个名字在中国知之者不多,但在美国却是大名鼎鼎。因为他在60年代初只有29岁时就主持与领导了被称为人类从原子能时代进入信息时代标志的IBM/360系列计算机的开发工作,取得辉煌成功,从而名噪一时。以后他作为硬件和软件的双重专家和出色的教育家始终活跃在计算机舞台上,在计算机技术的诸多领域中都做出了巨大的贡献。从某种意义上说,对于布鲁克斯而言,图灵奖是一个“迟到的荣誉” 布鲁克斯1931年4月19日生于北卡罗来纳州的杜哈姆。1953年从杜克大学毕业,取得学士学位以后,进入哈佛大学深造,1955年取得硕士学位,1956年取得博士学位。值得指出的是,布鲁克斯取得的是计算机科学的博士学位,是一位“正宗”的计算机博士,是世界上第一批获得计算机科学博士学位的少数学者之一。他的博士论文课题工作是在哈佛著名的计算实验室(Computation Laboratory)进行的。大家知道,40年代被称为MARKI的世界上第一台程序控制的机电式计算机ASCC(Automatic Sequence Controlled Calculator)就是由艾肯(Howard Hathaway Aiken,1900~1973)在这里设计,并获得IBM的支持而开发成功的。请大家注意,叫MARK的计算机有两种。除哈佛艾肯设计的ASCC被叫成MARK外,英国曼彻斯特大学由威廉斯管的发明人F.C.Williams和T.M.Kilburn等人研制的MADM计算机(1848年)也被叫成MARKI,这是一台用威廉斯管作存储器并可存储程序的计算机,有时也叫做“婴儿”机(Baby)。通常提到的MARKI指哈佛的那一台。布鲁克斯最终完成的博士论文题目为“自动数据处理系统的分析设计”(“TheAnalytic Designof Automatic Data Processing System”)。从博士论文开始,布鲁克斯的一生就与计算机结下了不解之缘。
在哈佛取得博士学位以后,布鲁克斯进入IBM公司设立在纽约波凯普茜的实验室当工程师。这个实验室从50年代到80年代一直是IBM开发计算机的中心。布鲁克斯在这里参加了Harvest和Stretch计算机的开发,任体系结构设计师。这两个型号的计算机都引入了一些新技术,在50年代后期至60年代初期有很大影响,尤其是Stretch计算机,首创先行控制方式,最多可重叠执行6条连续的指令,后来被发展成流水线方式,因而被认为是世界上第一台流水线计算机。布鲁克斯在其中的创造性贡献是解决了程序中断系统的设计,在数据格式中出现不均匀的字符分布时如何设计其二进制代码等问题,并从而在1957年取得了他的第一个美国专利“程序中断系统”(Program Interrupt System,专利号3048332,与D.W.Sweenly共有),发表了他最初的两篇学术论文。
1959年,布鲁克斯曾被调至IBM在约克郡高地的研究中心工作,但第二年又重新被调回波凯普茜的实验室,因为当时IBM内部在计算机的研发方向上产生了重大的分歧。1960年时,IBM的计算机生产线上的产品是8000系列,但遭到一些人的反对,其领头人是伊万斯。伊万斯虽然只是衣阿华州立大学电气工程系的一个本科毕业生,但1951年就加盟IBM,曾参与或主持过IBM701、7070、1410、7070等多种型号计算机的开发,已经积累相当丰富的知识和经验。他经过认真分析,认为主要继承IBM原有技术的8000计算机,即使研制成功并上市,过不了几年,即到1964年就会丧失生命力,缺乏市场竞争能力。因此他主张8000机下马,采用新的技术开发新的计算机,尤其是要开发新的操作系统。伊万斯的意见使IBM分裂成为两派,一派支持,一派反对,而反对派的领头人正是布鲁克斯!两派的争论和对立非常尖锐,又势均力敌,因为伊万斯的学历没有布鲁克斯高,但资历却比他老,双方的支持者人数也差不多。以小沃森(Thomas John Watson, Jr.)为首的IBM决策层于1961年5月担着极大的危险最后采纳了伊万斯的意见,是年秋宣布成立一个名为SPREAD(系统程序设计、研究、工程和开发,Systems Programming, Research, Engineeringand Development)的委员会作为“taskforce”(类似于我国过去经常采用的所谓“攻关领导小组”),由13人组成,主席为汉斯特拉(John w. haanstra),副主席为伊万斯,布鲁克斯是成员之一。作为争论中胜方的伊万斯冷静地分析了形势以后,做出了一个令人大感意外的决定,他亲自找到布鲁克斯,请布鲁克斯主持日后被称为IBM/360的这个新项目。伊万斯这一举动主要基于以下两点考虑,一是如果由他自己来主持360,那么原来反对他意见的另一派人很难团结在他的周围;二是涉及这样重大改革与创新的项目,应该让年轻人来挑头。他自己虽然当时也只有34岁,但布鲁克斯比他小5岁,更加年轻。难能可贵的是,布鲁克斯作为争论的负方,慨然接受了伊万斯的邀请,同意负责这个他曾经反对过的项目!这个故事很像我国京剧舞台上的“将相和”(虽然伊万斯并未“负荆请罪”)。伊万斯和布鲁克斯双方在这件事上所表现出来的明智、大度和勇气都十分令人钦佩和赞叹。其结果和效果就是整个IBM公司的职工果然团结起来,实现了痛苦而艰难,然而却是历史性的转变和飞跃。IBM/360的开发总投资5亿美元,达到美国研究原子弹的曼哈顿计划投资20亿美元的1/4。在研制期间,布鲁克斯率领着2000名程序员夜以继日地工作,单单360操作系统的开发就用了5000个人年。因此,当1964年4月7日,在IBM公司纪念其成立50周年的庆祝大会上宣布360系列计算机的时候,小沃森完全有理由声称“这是公司历史上宣布的最重要的产品”。确实,IBM/360以其通用化、系列化和标准化的特点,对全世界计算机产业的发展产生了如此深远的影响,以致被认为是划时代的杰作。而360的推出,也使IBM在短短两年时间内,即到1966年,其资本就增加到45亿美元,职工总数净增6万,达到19万,成为名副其实的“蓝色巨人”。到60年代末,360系列机的市场占有率达到15%,到70年代中期,超过了50%。各计算机生产厂商纷纷以360为榜样,推出各自的系列机,有的则直接采用360的操作系统,比如著名的Amdahl公司的所谓“插接兼容式”计算机(Plug Compatible Computer)就是这样。为此,伊万斯和布鲁克斯两人常常被并称为“IBM/360之父”。
当然,IBM/360到今天早已是“昨日黄花”了。IBM公司在70年代就推出了370系列替代360,以继续保持其技术上的优势。我们之所以用了一定篇幅介绍360的故事,是因为其中不乏让我们的企业家、科学家和工程技术人员深思的一些问题。IBM/360的特点我们只简要介绍如下:它是集成电路的计算机,体系结构既适于事务处理,又便于科学计算;系列中各机型(规模由小到大,功能从弱到强,包括20、30、40、50、65、75等6个型号,后来扩充了25、85、91、195等型号)具有兼容性;有标准的输入输出接口和通用的输入输出设备,它们与中央处理器相对独立;软件既有兼容性又有可扩充性,从而可最大限度地保护用户的软件投资。这些特征大多都成为以后计算机设计与开发所遵循的基本原则。
360成功以后,布鲁克斯离开IBM回到其故乡,为北卡大学(UNC)创建了计算机科学系,担任该系系主任长达20年(1964~1984年)。卸任以后仍在该系任教至今,因此他培养的学生很多,可谓“桃李满天下”。除了教学以外,他还致力于发展美国的计算机技术和计算机在国防等方面的应用,有许多社会兼职。1966~1970年,他是ACM全国委员会的委员;1973~1975年出任ACM体系结构委员会(所谓SIGCA)的主席;1977~1980年布鲁克斯在美国国家研究院计算机科学技术部任职;1983~1984年他是美国国防科学委员会人工智能攻关领导小组的成员,1986~1987年是上述委员会另一个攻关领导小组“计算机模拟和训练”的成员;1985~1987年他担任军用软件攻关小组组长。他的研究领域除了计算机体系结构、机器语言设计、软件工程、大型项目管理以外,还包括动态体系结构的可视化(如“走查”Walkthrough)、人机接口、交互计算机图形学等等,十分广泛。例如关于虚拟现实,涉及布鲁克斯曾参与领导攻关的计算机模拟和训练,他十分重视,1992年3月由美国国家自然科学基金会NSF主持的虚拟现实研讨会,就是由布鲁克斯等人倡议并在北卡大学召开的,这次会议对VR进行了定义并就其研究方向提出了详细建议,奠定了VR作为独立研究方向的地位。布鲁克斯在筹备及组织此次会议上做出了重要贡献。1987年布鲁克斯当选为美国工程院院士,他同时也是英国皇家学会和荷兰皇家科学与艺术院的外籍院士。
布鲁克斯的著作不多,但影响都很大。1963年他和依费逊(Kenneth Iverson, APL发明人,1979年图灵奖获得者)合著了《自动数据处理》(Automatic Data Processing,Wiley)一书,这是该领域中最早的专著之一。1969年此书再版时有2个版本,其中一个是专门论述在IBM/360上的数据处理(书名为Automatic Data Processing,System/360Edition)。1975年,他把他历年来所写的有关软件工程和项目管理方面的文章汇集成书,书名为《人月神话》(The Mythical Man-Month: Essay on Software Engineering,Addison Wesley)。由于本书是他领导IBM/360软件开发经验的结晶,内容丰富而生动,成为软件工程方面的经典之作,出版20年之后,1995年又再版了一次。最近的一本专著是他与荷兰特文德理工大学(Twente Technical University,位于荷兰与德国接壤处的恩斯赫法)的勃芬夫教授(G. A. Blaauw)合著的《计算机体系结构:概念与发展》(Computer Architecture: Concept and Evolution,Addison Wesley, 1997)。勃芬夫是布鲁克斯在哈佛时的同学,后来又在IBM共事多年,曾一起开发过3个型号的计算机,这本书实际上是对计算机体系结构半个多世纪来发展变化的一个全面的回顾和总结。作者在书中风趣地把整个计算机家族叫做“计算机动物园”(Computer Zoo),对其中的主要成员逐一作了剖析。除了上述学术性著作外,1995年,他与苏泽兰特(I.E. Sutherland,“计算机图形学之父”,1988年图灵奖获得者)等还合编了一本书,书名是《Evolving the High Performance Computing and Communications Initiative to Support the National Information Infrastructure》,由National Academy Pr.出版,论述了有关高性能计算机计划及信息基础设施(也就是所谓“信息高速公路”)建设的一系列问题。
在授予图灵奖之前,ACM在1987年曾授予布鲁克斯“杰出服务奖”(Distinguished Service Award),1995年曾授予他以纽维尔(A. Newell, 1975年图灵奖获得者,1992年去世)命名的Newell奖。加上这次的图灵奖,布鲁克斯成为继克努特(D.E. Knuth, 1974年图灵奖获得者)之后的第二位同时拥有ACM三个奖项的计算机科学家。IEEE也先后向布鲁克斯颁发三个奖项,即McDowell奖(1970年),计算机先驱奖(1982年)、冯·诺伊曼奖(1993年)。AFIPS在1989年授予布鲁克斯Harry Goode奖。数据处理管理协会DPMA1970年授予他“计算机科学”奖,并命名他为该年度的风云人物。1985年布鲁克斯因在开发IBM/360上的杰出贡献而荣获全国技术奖章(National Medal of Technology),同时获此殊荣的还有伊万斯和IBM的另一位功臣布洛克(Erich Bloch)。物理学界的富兰克林学会(Franklin Institute)也曾授予布鲁克斯Bower奖。