Fred Brooks 于 11 月 17 日去世。他是计算机科学领域的巨人,鼓舞了我们许多人。

Fred Brooks passed away on November 17. He was a giant in computer science and a tremendous inspiration to many of us.

布鲁克斯因许多事情而闻名。许多人最了解他是《人月神话》的作者,他对软件工程的思考以及为什么它如此困难。他的一些处方在今天看来很古怪——如今没有人会每晚用缩微胶片打印文档分发给开发人员——但他对开发问题的观察仍然准确无误。但他做得更多。

Brooks is famous for many things. Many people know him best as the author of The Mythical Man-Month, his musings on software engineering and why it’s so very hard. Some of his prescriptions seem quaint today—no one these days would print out documentation on microfiche every night to distribute to developers—but his observations about the problems of development remain spot-on. But he did so much more.

他的职业生涯始于 IBM。他早期的任务之一是在国家安全局(NSA)工作。除其他外,回到 IBM 后,他致力于 Harvest 的设计,这是 IBM 7030 的字符处理辅助处理器。(当我从他那里学习计算机体系结构时,我学会了识别一些构成优秀密码分析机(cryptanalytic machine)的特征. 当然,他是在字符密码时代工作的,但值得注意的是,这些相同的特征中有多少对攻击现代密码很有用。)

他还是失败项目 IBM 8000 系列的负责人。失败后,他试图从 IBM 辞职;华生回答说:“我只是花了 10 亿美元来教育你;我现在不让你走!”

He started his career at IBM. One of his early assignments was to NSA; among other things, when back at IBM, he worked on the design of Harvest, the character-processing auxiliary processor to the IBM 7030. (When I took computer architecture from him, I learned to recognize some characteristics that made for a good cryptanalytic machine. He, of course, was working back in character cipher days, but it’s remarkable how many of those same characteristics are useful for attacking modern ciphers.)

He was also a lead on a failed project, the IBM 8000 series. He tried to resign from IBM after it failed; Watson replied, “I just spent a billion dollars educating you; I’m not letting you go now!”

随后,他领导了设计和构建 IBM S/360 系列大型机的项目。这在当时是一个大胆的概念——五种不同的型号,价格和性能特征截然不同,但都共享(本质上)相同的指令集(instruction set)。此外,该指令集是由体系结构定义的,而不是由布线偶然造成的。(有趣的事实:IBM 7094(我认为是 7094 而不是 7090)有一个用户发现的“存储零”指令。一些客户四处寻找并找到了它,它起作用了。工程师检查了接线图并确认S/360 的体系结构有很多有趣的方面,但 Brooks 认为最重要的贡献之一是 8 位字节(因此32 位字)。

他继续管理开发 OS/360 的团队。他(和沃森)认为这是一次失败;他们都想知道为什么,因为他管理了两者。这就是促使他写下《人月神话》(The Mythical Man-Month)的原因。

He then headed the project that designed and built the IBM S/360 series of mainframes. It was an audacious concept for the time—five different models with vastly different prices and performance characteristics, but all sharing (essentially) the same instruction set. Furthermore, that instruction set was defined by the architecture, not by some accident of wiring. (Fun fact: the IBM 7094 (I think it was the 7094 and not the 7090) had a user-discovered “Store Zero” instruction. Some customers poked around and found it, and it worked. The engineers checked the wiring diagram and confirmed that it should, so IBM added it to the manual.) There were a fair number of interesting aspects to the architecture of the S/360, but Brooks felt that one of the most important contributions was the 8-bit byte (and hence the 32-bit word).

He went on to manage the team that developed OS/360. He (and Watson) regarded that as a failure; they both wondered why, since he had managed both. That’s what led him to write The Mythical Man-Month.

他离开 IBM 是因为他觉得自己被召唤去创建一个 CS 部门。这是他的旧愿望;他一直都知道他总有一天要教书。(布鲁克斯是虔诚的宗教徒。因为我不同意他的信仰,所以我不能恰当地代表他们,因此不会再多说什么。我要指出的是,至少根据我的经验,他尊重其他人的真诚信仰,甚至如果他不同意。)

He left IBM because he felt that he was Called to start a CS department. This was an old desire of his; he always knew that he was going to teach someday. (Brooks was devoutly religious. Since I don’t share his beliefs, I can’t represent them properly and hence will say nothing more about them. I will note that in my experience, at least, he respected other people’s sincere beliefs, even if he disagreed.)

北卡罗来纳大学教堂山分校的弗雷德·布鲁克斯 (Fred Brooks) 在那里创立了该大学的计算机科学系。

几年后,我开始在Chapel Hill读研究生。尽管他是系主任,有很多时间需要占用他的时间——他的办公室里有一排开关控制的时钟,这样他就可以跟踪他在教学、研究、行政等方面花费了多少时间——他教了一个很多。我从他那里选了四门课:软件工程(《人月神话》的手稿就是我们的教材!)、计算机体系结构、专业实践研讨会和教学研讨会。我仍然依赖很多年前从他那里学到的东西。

I started grad school at Chapel Hill a few years later. Even though he was the department chair, with many demands on his time—he had a row of switch-controlled clocks in his office so that he could track how much time he spent on teaching, research, administration, etc.—he taught a lot. I took four courses from him: software engineering (the manuscript for The Mythical Man-Month was our text!), computer architecture, seminar on professional practice, and seminar on teaching. I still rely on much of what I learned from him many years ago.

一年春末,他问我夏天有什么计划。“好吧,布鲁克斯博士,我想教书。” (我以前从未教过书,但知道我想教,当时在那个系,博士生必须在完全课堂控制的情况下教一个学期的入门编程。我最后教了四次,因为我真的喜欢教学。)

Late one spring, he asked me what my summer plans were. “Well, Dr. Brooks, I’d like to teach.” (I’d never taught before but knew that I wanted to, and in that department at that time, Ph.D. students had to teach a semester of introductory programming with full classroom control. I ended up teaching it four times because I really liked teaching.)

布鲁克斯提出异议:“教授。X 的项目延期,并在夏末交付;我需要你努力。”

“博士。布鲁克斯,你想为一个迟到的项目增加人手吗?” (如果您读过The Mythical Man-Month,您就会知道其中的参考资料——如果您还没有读过,您应该读一读。)

他笑着告诉我,这是个特例,我应该去做,到了秋天,我可以得到任何我想要的助学金。他是 100% 正确的:这是一个特殊情况,他的格言不适用。

Brooks demurred: “Prof. X’s project is late and has deliverables due at the end of the summer; I need you to work on it.”

“Dr. Brooks, you want to add manpower to a late project?” (If you’ve read The Mythical Man-Month, you know the reference—and if you haven’t read it yet, you should.)

He laughed and told me that this was a special case and that I should do it, and in the fall, I could have whatever assistantship I wanted. And he was 100% correct: it was a special case where his adage didn’t apply.

布鲁克斯致力于教育和学生。当谈到教师招聘和晋升时,他总是在有组织的环境中征求研究生的意见。他将这些会议称为 SPQR,教职工就是参议院。在我能想到的一个案例中,我怀疑学生的意见严重动摇并可能改变了结果。

Brooks was dedicated to education and students. When it came to faculty hiring and promotion, he always sought graduate student input in an organized setting. He called those meetings SPQR, where the faculty was the Senate. In one case that I can think of, I suspect that student input seriously swayed and possibly changed the outcome.

他对我很有信心,即使是在我处于低谷时,他也很有可能挽救了我的职业生涯。在我奇怪的研究生院逗留期间,我需要休假一年。我有一份来自另一所大学的教师工作机会,但布鲁克斯怀疑,很可能是正确的,如果我离开,我将永远不会回来完成我的博士学位。他安排我在我自己的部门工作了一年——我是从博士毕业的。学生到教员,然后再回到学生。这让人头晕目眩,一开始我并没有很好地适应我的教师身份,尤其是我的着装方式。布鲁克斯温和地对我说,很明显,我仍然认为自己是一名学生。当然,他是对的,所以我升级了我的衣橱,甚至在我教书的日子里系了一条领带。(在大流行开始之前,我在上课日继续穿得更好。)

He had great confidence in me, even at low points for me, and probably saved my career. At one in my odd grad school sojourn, I needed to take a year off. I had a faculty job offer from another college, but Brooks suspected, most likely correctly, that if I left, I’d never come back and finish my Ph.D. He arranged for me to be hired in my own department for a year—I went from Ph.D. student to faculty member and back to student again. This was head-spinning, and I didn’t adapt well at first to my faculty status, especially in the way that I dressed. Brooks gently commented to me that it was obvious that I still thought of myself as a student. He was right, of course, so I upgraded my wardrobe and even wore a tie on days that I was teaching. (I continued to dress better on class days until the pandemic started. Maybe I’ll resume that practice some day…)

在Chapel Hill,他将注意力转向了计算机图形学和蛋白质建模。他获得了多余的遥控机械臂;这个想法是人们可以用它来“抓住”原子并移动它们,并感受来自不同电荷场的力反馈。从那里开始,这是一个相当自然的过渡到 VR 的一些早期工作。

At Chapel Hill, he switched his attention to computer graphics and protein modeling. He’d acquired a surplus remote manipulator arm; the idea was that people could use it to “grab” atoms and move them, and feel the force feedback from the varying charge fields. From there, it was a fairly natural transition to some of the early work in VR.

还有两个轶事(anecdotes)。在该系获得第一台 VAX 计算机后不久,一位不了解实际内存和虚拟内存之间区别的教授启动了一个大型程序的大约十个副本。机器抖动得如此厉害,以至于没有人能完成任何事情,当然,包括那位教授。我不再是正式的系统管理员,但我仍然拥有 root 密码。我向除了一个程序副本之外的所有程序发送了一个停止信号,然后非常紧张地向那位教授和布鲁克斯发送了一封电子邮件。Brooks 的回复很好地说明了他的管理理念:“如果有人被委托使用 root 密码,他们不仅有权利而且有责任在必要时使用它。”

Two more anecdotes, and then I’ll close. Shortly after the department had gotten its first VAX computers, a professor who didn’t understand the difference between real memory and virtual memory fired up about ten copies of a large program. The machine was thrashing so badly that no one could get anything done, including, of course, that professor. I was no longer an official sysadmin, but I still had the root password. I sent a STOP signal to all but one copy of the program, then very nervously sent an email to that professor and Brooks. Brooks’ reply nicely illustrates his management philosophy: “if someone is entrusted with the root password, they have not just the right but the responsibility to use it when necessary.”

我在学生时代与 Brooks 的最后一次主要互动是在我去找他讨论 IBM Research 和 Bell Labs(不是 Bell Labs Research;几年后才出现)的两份工作机会时。他不会告诉我该选哪个;那不是他的风格,尽管他暗示贝尔实验室可能更好。但我经常向我的学生重复他的建议:拿一张纸,把它分成两栏,尽可能客观地列出每个地方的优缺点。然后睡在上面,早上,跟着你的直觉走。

Frederick P. Brooks, Jr.:愿他的记忆成为祝福。

My last major interaction with Brooks while I was a student was when I went to him to discuss two job offers from IBM Research and Bell Labs (not Bell Labs Research; that came a few years later). He wouldn’t tell me which to pick; that wasn’t his style, though he hinted that Bell Labs might be better. But his advice is one I often repeat to my students: take a sheet of paper, divide it into two columns, and, as objectively as you can, list the pluses and minuses of each place. Then sleep on it, and in the morning, go with your gut feeling.

Frederick P. Brooks, Jr.: May his memory be for a blessing.

——哥伦比亚大学计算机科学教授 Steven Bellovin

关于 Frederick Phillips Jr.

Frederick Phillips Jr.(1931 年 4 月 19 日 - 2022 年 11 月 17 日)是美国计算机架构师、软件工程师和计算机科学家,以管理IBM的System/360系列计算机和OS/360的开发而闻名软件支持包,然后在他的开创性著作《人月神话》中坦率地写下了这个过程。

布鲁克斯获得过许多奖项,包括1985 年的国家技术奖章和1999年的图灵奖。

Frederick Phillips Brooks Jr. (April 19, 1931 – November 17, 2022) was an American computer architect, software engineer, and computer scientist, best known for managing the development of IBM's System/360 family of computers and the OS/360 software support package, then later writing candidly about the process in his seminal book The Mythical Man-Month.

In 1976, Brooks was elected as a member into the National Academy of Engineering for "contributions to computer system design and the development of academic programs in computer sciences".

Brooks has received many awards, including the National Medal of Technology in 1985 and the Turing Award in 1999。


【更多阅读】

  • 在平时的工作中如何体现你的技术深度?

  • Redis 作者 Antirez 讲如何实现分布式锁?Redis 实现分布式锁天然的缺陷分析&Redis分布式锁的正确使用姿势!

  • 程序员职业生涯系列:关于技术能力的思考与总结

  • 十年技术进阶路:让我明白了三件要事。关于如何做好技术 Team Leader?如何提升管理业务技术水平?(10000字长文)

  • 当你工作几年就会明白,以下几个任何一个都可以超过90%程序员

  • 编程语言:类型系统的本质

  • 软件架构设计的核心:抽象与模型、“战略编程”

  • 【图文详解】深入理解 Hbase 架构  Deep Into HBase Architecture

  • HBase 架构详解及读写流程原理剖析

  • HDFS 底层交互原理,看这篇就够了!

  • MySQL 体系架构简介

  • 一文看懂MySQL的异步复制、全同步复制与半同步复制

  • 【史上最全】MySQL各种锁详解:一文搞懂MySQL的各种锁

悼念《人月神话》(The Mythical Man-Month)作者 Fred Brooks相关推荐

  1. 软件工程毕业,在北京工作两年后再来理解《人月神话》

    软件工程毕业,在北京工作两年后再来理解<人月神话>, 高中很向往信息技术,在高考填报志愿时,就以第一志愿,报考了成都一所高校的软件工程专业,幸运录取.<人月神话>这本软件工程领 ...

  2. 《人月神话(The Mythical Man-Month)》2人和月可以互换吗?人月神话存在吗?

    美酒的酿造需要年头,美食的烹调需要时间: 片刻等待,更多美味,更多享受. --新奥尔良 Antoine 餐厅的菜单 Good cooking fakes time. If you are made t ...

  3. 《人月神话》(The Mythical Man-Month)2人和月可以互换吗?人月神话存在吗?

    美酒的酿造需要年头,美食的烹调需要时间: 片刻等待,更多美味,更多享受. --新奥尔良 Antoine 餐厅的菜单 Good cooking fakes time. If you are made t ...

  4. 《人月神话》8 胸有成竹(Chaptor 8.Calling the Shot -The Mythical Man-Month)

    实践是最好的老师. - PUBILIUS 实践是最好的老师,但是,如果不能从中学习,再多的实践也没有用. - <穷理查年鉴> Practice is the best of all ins ...

  5. 《人月神话》(The Mythical Man-Month)3 外科手术队伍(The Surgical Team)

    研究表明,效率高和效率低的实施者之间具体差别非常大,经常达到了数量级的水平.These studies revealed large individual differences between hi ...

  6. 《人月神话》(The Mythical Man-Month)5画蛇添足(The Second-System Effect)

    聚沙成塔,集腋成裘. - 奥维德 Adde parvum parvo magnus acervus erit. [Add little to little and there will be a bi ...

  7. 读《人月神话》(The Mythical Man-Month)

    花了几天时间略读完了<人月神话>(The Mythical Man-Month),并没有什么很深的体会,这有可能是并没有接触太多关于软件工程学方面的东西吧.总的收获就是,知道了优秀程序员和 ...

  8. 《人月神话》(The Mythical Man-Month)1 看清问题的本质:如果我们想解决问题,就必须试图先去理解它...

    第一章 焦油坑(The Tar Pit) 史前史中,没有比巨兽在焦油坑中垂死挣扎的场面更令人震撼的了.上帝见证着恐龙.猛犸象.剑齿虎在焦油中挣扎.它们挣扎得越是猛烈,焦油纠缠得越紧,没有任何猛兽足够强 ...

  9. Mythical Man-Month, 人月神话

    Ref <人月神话> Chapter 15 另外一面 15 另外一面 不了解就无法真正拥有 *. 哦,赐予我朴素的评论者吧,他们不会因过于深奥而让人困惑不解. What we do not ...

最新文章

  1. 两款旋转编码器测量LDP3806,BH60
  2. python打包成exe_Python打包文件为exe,PyInstaller应用
  3. TypeError: rectangle() got an unexpected keyword argument ‘width‘报错:
  4. 【图像分割模型】BRNN下的RGB-D分割—LSTM-CF
  5. Bug调用其他函数失败
  6. 更新elementui图标不显示_elementUI字体图标不显示问题
  7. nginx subrequest演示示例程序
  8. 用仿ActionScript的语法来编写html5——第三篇,鼠标事件与游戏人物移动
  9. java一致性hash api_一致性哈希算法学习及JAVA代码实现分析
  10. 电脑应用程序错误怎么办_电脑Windows出错信息解析及解决方案
  11. Java Web学习总结(32)——Java程序员最亲睐的Web框架
  12. Silverlight调用一般性处理程序模拟Silverlight调用WCF效果(2)
  13. Failed to parse the output of 'adb version'
  14. error: 'Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)'
  15. 一、显示VOC2007数据集中的图像及标注信息
  16. 1688API大全、商品详情调用展示
  17. Android 节日短信送祝福(功能篇:1-数据库操作类与自定义ContentProvider)
  18. 怎么查看域名被墙_怎么查看域名是否被墙检测(教你一招域名被墙解决办法)...
  19. Java高级特性 - 多线程练习题
  20. CSS兼容性技巧整理--从IE6-IE9 火狐谷歌浏览器兼容

热门文章

  1. Kinect虎头蛇尾 微软如何避免HoloLens重蹈覆辙 别搞Kinect了 转移ARVR把
  2. 英文不好,学Unity3D,一件小事搞疯我--(二)
  3. [TL-WR841N V5~V9] 如何当作无线交换机使用?
  4. Android界面特效全汇总
  5. 【ECharts】图例 legend
  6. 几种室内无线定位算法
  7. 手机dirac是什么_首款Dirac HD Sound音效的手机
  8. 杰理之涂鸦授权码清单和每个产品的 pid 要对应使用【篇】
  9. 可食用橄榄油的美容减肥法
  10. 3D照片墙源码(直接使用)