悼念《人月神话》作者 Fred Brooks
Posted 禅与计算机程序设计艺术
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了悼念《人月神话》作者 Fred Brooks相关的知识,希望对你有一定的参考价值。
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字长文)
以上是关于悼念《人月神话》作者 Fred Brooks的主要内容,如果未能解决你的问题,请参考以下文章