【新智元导读】又一巨星陨落!图灵奖得主,计算机体系结构、操作系统和软件工程先驱Fred Brooks逝世,享年91岁。
1999年图灵奖得主,美国国家科学院院士、对计算机体系结构、操作系统和软件工程做出里程碑式贡献的计算机科学家Frederick Phillips Brooks, Jr.逝世,享年91岁。
Brooks生前亲自创办、并长期担任领导工作的北卡罗来纳大学教堂山分校计算机科学系在Twitter官方账号上发布讣告,悼念这位对计算机发展做出卓越贡献的先驱。
推文中表示,「他友善、谦卑,是我们的所有人的挚友和导师」。
许多业内人士都对他的离世表达哀悼。杜克大学教授陈怡然在社交媒体上也对这位杰出校友的逝世表示哀悼。
哥伦比亚大学计算机科学教授Steven Bellovin也发推对这位大牛的逝世表示悼念,并表示Brooks对自己的职业规划产生了重大影响。
Fred Brooks一生因其专业成就和对计算机体系结构的卓越贡献而屡获表彰。
包括1985年获美国国家技术奖章,1995年获富兰克林学院鲍尔奖,以及1999年获A.M.图灵奖。
图灵奖评审团称,该奖是为了表彰Brooks「在计算机结构、操作系统和软件工程方面的里程碑式的贡献。」
当Brooks获得富兰克林学会的鲍尔奖时,颁奖词称他定义了「计算机体系结构的概念,将计算机软件与硬件分开,允许计算机时代的这两个基本领域动态和独立地发展。
此外,Brooks于1968年当选IEEE Fellow,1970年获IEEE McDowell奖,1976年当选美国艺术与科学学院院士,同年当选美国国家工程院院士。
1987年获ACM杰出服务奖,1993年获冯·诺依曼奖章,1994年当选ACM Fellow和英国皇家工程院院士,2001年当选美国国家科学院院士。
Frederick Phillips Brooks, Jr.于1931年4月19日出生在北卡罗来纳州达勒姆。
从小,Brooks就对机器处理信息感兴趣。他曾在口述自传中表示:
「我一直对商业设备着迷,所以当我家附近的紧身胸衣工厂破产了,我买了一个仪表和文件柜之类的东西。」
「我还花了 35 美元买了Burroughs触摸操作的加法机,并制作了自己的McBee密钥排序系统来管理我的地图收藏。」
「当我13岁时,我在镇上图书馆的《时代》杂志上读到关于哈佛马克一号计算机的文章。当我看到杂志封面的那张漫画时,我就知道这就是我此生想要做的事情。」
不过,他对体育就没那么有兴趣了,自称是一个「笨手笨脚的小孩」。
大学本科期间,Brooks的专业虽然是物理和数学,但他同时选修了经济、会计和人文学科,于1953年在杜克大学获得物理学学士学位。
研究生阶段,Brooks没有继续学习物理,而是来到哈佛大学的计算科学实验室追求自己的计算机的梦想。他加入了哈佛大学计算机科学的开创性学位项目,于1956年获得了博士学位。
在哈佛,他师从Howard Aiken,Aiken在第二次世界大战期间开发了「Harvard Mark I」,这是有史以来最大的机电式计算机之一,也是美国制造的第一台自动数字计算机。
在Brooks在哈佛读硕士时,他的导师Aiken提出,让自己的另一名学生Ken Iverson(APL语言创始人,1979年图灵奖得主)开设一门关于「计算机在商业中应用的课程」。
当时,计算机的开发都是面向科学研究的,世界上从来没有人教过面向商业应用的计算机课程。
Brooks向Ken申请当他的教学助理。随后二人合作出版了《自动数据处理》一书。
Brooks说:「Ken在我的教育中和Aiken一样重要。Aiken是一个非常令人印象深刻的人,我没法对我的学生复刻他的行为。」
毕业后,Brooks加入IBM。在此期间,他参与设计了IBM 7090「Stretch」超级计算机,之所以被称为「Stretch」,是因为它对当时大多数计算机的技术和性能有相当大的「延伸」。
Stretch是IBM的第一台晶体管计算机,包含大约15万个晶体管。
虽然它在商业上是失败的,但它开创了一些对当代计算相当重要的先进概念,如指令先行、指令执行的重叠和流水线、错误检查和纠正,以及8位可寻址字符。
Brooks和工程师Dura Sweeney为Stretch的中断系统申请了专利,该系统作为当代所有计算机的多编程活动和对物理世界的事件作出反应的计算机的一个基本机制被广泛应用。
Brooks继续参与了IBM Harvest的架构设计,这是一个为国家安全局设计的具有特殊功能的Stretch的变体。后来用于帮助美国政府评估了苏联的计算能力。
Harvest是一个「Stretch」计算机的插件板,Brooks将其运行模式形象地比喻为「传送带上的两个小人」。
「其中一条传送带连接计算机内存。每条传送带的末端都有一个『小人』,根据相当复杂的模式从内存中取出东西并将它们放在传送带上。另一个小人将东西再次放回内存中。」
接下来,Brooks又被指派帮助设计IBM 8000,这是一种新的晶体管大型计算机,旨在取代IBM 700/7000系列。
但到20世纪60年代初,全球计算机市场令人难以置信得复杂,许多公司提供不兼容的专有系统。当客户用更快的系统取代他们的旧系统时,他们意识到他们在软件上的投资是一个越来越大的问题,因为他们必须为每一个新系统重新编写软件。
为此,Bob Evans推动了IBM的愿景,即开发一个具有通用指令集的通用计算机的单一产品线,使客户在从较慢的机器转移到较快的机器时可以保留他们在软件上的投资。
Evans指派Brooks领导团队设计这条产品线,称为System/360,于1964年发布。
Brooks创造了「计算机体系结构」(computer architecture)这一术语,指的是计算机处理器和相关设备的结构和行为,与任何特定硬件实现的细节分开。
IBM 360系列计算机的重要性不言而喻:这个划时代的杰作以其通用化、系列化和标准化的特点,不仅改变了商业计算的面貌,还对全世界计算机产业的发展产生了深远的影响。
在这台机器设计的过程中,Brooks提出的8位字节(8-bit byte)的改进尤为重要——允许使用大写和小写字母,并扩大了计算机在文本处理中的作用。
后来,在多次采访中,Brooks将这个改动视为自己一生最重要的技术贡献。
2010年接受《连线》杂志采访时,Brooks被问到「你认为你最大的技术成就是什么?」
Brooks 回应说:「我做过的最重要的一个决定是将 IBM 360系列从6位字节改为8位字节,这让计算机能够使用小写字母,这个改动后来广泛传播开来。」
Brooks在他关于软件工程的经典著作《人月神话》中描述了他所学到的经验。
书中他提出了举世闻名的「Brooks法则」:向进度落后的项目中增加人手,只会使项目更加落后。也就是我们常说的「三个和尚没水吃」。
具体来说,在项目中,后来者需要加快速度,同时还要与前任进行沟通,从而使得开发团队增加了更多的开发时间,这个时间超过了新增程序员所做的贡献。
从理论上说,软件发展陷入僵局是可能的,此时开发团队极其庞大,以致所有时间都来互相沟通和重新决定,这样项目永远也不会完成。
当Brooks在IBM管理OS/360的开发时,他为一个落后于计划的项目增加了更多的程序员,但事实证明,这个决定把项目的战线拉得更长。
此外他还断言,在一个涉及编写ALGOL编译器的项目中,不管涉及多少员工,都只需六个月。事实上,他花费了更久的时间。
虽然Brooks现身说法,劝解公司在执行项目时避免画蛇添足,但现实生活中,项目经理不断重复失败的案例向我们说明「软工圣经」一词从何而来:「所有人都会谈及这本书,一些人会认真阅读,但只有少数人会遵守其中的规定。」
难怪在Reddit上,有人称《人月神话》是所有软件工程师的必读书目后,网友回复道:「看上去这本『必读书目』也是『必忘书目』。Brooks提到的经验教训,我们什么时候才能真正学到呢?」
在成功交付System/360及其操作系统后,Brooks被邀请到北卡罗来纳大学,并在1964年创建了该大学的计算机科学系。从1964年到1984年,他一直担任该系主任,并担任Kenan计算机科学教授。
在校园中遇见过他的网友对他印象深刻:「我碰见过他很多次,在很多答辩场合都遇见过他。他是一位很有性格的人。」
上过他的课的网友也表示:「每周五的课上,他都会给我们分享他的生活。从打孔卡讲到现在。那是一段充满乐趣的经历。」
即使没有见过Brooks本人,单是阅读他的著作也能受益良多。
有网友评论:「我的编程语言课老师让我们读了《人月神话》。虽然他教得很糟糕,很多人又重修了一遍这门课,但是他推荐的这本书是我大学期间读过的最重要、最富远见的书。」
「直到现在,我还会时常引用书中的名言——9个女人一个月内也生不出1个婴儿。」
2001年,在谈到在北卡罗来纳大学的教学和研究工作时,Brooks说:「我喜欢我的工作。我想不出比我更愿意做的事情。」
https://amturing.acm.org/award_winners/brooks_1002187.cfm
https://archive.computerhistory.org/resources/access/text/2012/11/102658255-05-01-acc.pdf
https://www.wired.com/2010/07/ff-fred-brooks/
https://weibo.com/2199733231/MfAaP93Re