Evolution of software architecture with the co-creator of UML (Grady Booch)

章节 1:IBM院士的视界与“遗留系统”的真谛

📝 本节摘要

在本节中,Grady Booch 首先幽默地介绍了他在 IBM 的独特身份——从自称的“自由基”到拥有极高学术自由度的“IBM 院士(Fellow)”。随后,他对“遗留系统(Legacy System)”给出了一个发人深省的定义:代码写下的那一刻即成为遗留。他以美国国税局(IRS)为例,生动描绘了从 1960 年代沿用至今的 IBM 360 汇编代码如何成为现代化的巨大阻碍,并指出即使是 Facebook、Google 和 OpenAI 这样的科技巨头,也终将面临同样的“技术负债”与维护难题。

[原文] [Host]: It's safe to say I'm talking with a living legend in the field of software engineering so welcome to the podcast.

[译文] [Host]: 可以肯定地说,我现在正与软件工程领域的一位活着的传奇人物对话,欢迎来到这个播客。

[原文] [Grady Booch]: Emphasis on living I'm not done yet.

[译文] [Grady Booch]: 重点在于“活着”,我还没完工呢。

[原文] [Host]: Yes absolutely. So to kickoff you're a chief scientist at IBM that's a pretty fancy title what does it mean and what do you do I'm curious to know.

[译文] [Host]: 是的,绝对是。那么开始吧,你是 IBM 的首席科学家,这是一个相当响亮的头衔,这意味著什么?你具体做什么?我很好奇。

[原文] [Grady Booch]: Well there was a time that my business card said I was a free radical but upper management didn't like that so I had to find something a little bit more tame.

[译文] [Grady Booch]: 嗯,有一段时间我的名片上印的是“自由基(Free Radical)”,但高层管理人员不喜欢这个称呼,所以我不得不找一个稍微温和一点的头衔。

[原文] [Grady Booch]: Um actually the more important title position is that of fellow there are I think 68 of us still active no 89 of us still active and this has been out of 350 or thereabouts fellows throughout the history of IBM so we're a fairly Rare Breed.

[译文] [Grady Booch]: 嗯,其实更重要的职位头衔是“院士(Fellow)”。我想现在还有 68 位……不,是 89 位现任院士,而 IBM 历史上总共也只出过 350 位左右的院士,所以我们算是相当稀有的物种。

[原文] [Grady Booch]: I was made a fellow upon the acquisition of our company rational software back in 2003 and the great thing about being a fellow is it's it's rather like having tenure meaning we trust you done good things we want you to continue doing things let's give you the degrees of freedom to do that.

[译文] [Grady Booch]: 我是在 2003 年我们的公司 Rational Software 被收购时成为院士的。成为院士最棒的一点是,它有点像拥有了“终身教职(Tenure)”,意思是:我们信任你,你做过很棒的事情,我们希望你继续做下去,所以给你足够的自由度去发挥。

[原文] [Grady Booch]: And so as a fellow and with my focus upon first software engineering and then later upon AI I am given a lot of degrees of freedom to pursue what I think makes a lot of sense to trade to as Alan Kay would say invent the future.

[译文] [Grady Booch]: 因此,作为一名院士,我的关注点首先是软件工程,后来转向人工智能(AI),我有很大的自由度去追求我认为有意义的事情,或者借用 Alan Kay 的话说,去“发明未来”。

[原文] [Grady Booch]: So in my journey from starting at 2003 I first stayed with the rational division but then quickly moved over to research because IBM's bureaucracy realized I was a person who worried about the next five to 10 years not the next quarter.

[译文] [Grady Booch]: 在我从 2003 年开始的旅程中,我最初留在 Rational 部门,但很快就转到了研究院,因为 IBM 的官僚体系意识到,我是一个操心未来 5 到 10 年的人,而不是只关心下一个季度业绩的人。

[原文] [Grady Booch]: And indeed my very early work in research was looking at finding ways to automate the discovery of patterns within Legacy software systems this is something we were doing pre neural network days and it was interesting trying to see if we could discern the design patterns from the gang of four and elsewhere it never went anywhere because it was a hard problem.

[译文] [Grady Booch]: 事实上,我在研究院非常早期的工作是寻找自动化发现“遗留软件系统”中模式的方法。这是我们在神经网络时代之前做的事情,当时很有趣,我们试图看看能否从中识别出“四人帮(Gang of Four)”或其他地方的设计模式。这项目后来没成,因为它确实是个难题。

[原文] [Grady Booch]: And so I then began to in the architecture sense of things I worked with a lot of customers and actually had been doing that for decades where I'd be parachuted in the customer would say come help me Mr Wizard uh with this particular architectural problem.

[译文] [Grady Booch]: 随后我开始在架构层面工作,我与许多客户合作——实际上这事我已经做了几十年了——我通常会被“空降”到客户那里,他们会说:来帮帮我吧,巫师先生,解决一下这个棘手的架构问题。

[原文] [Host]: So when you say you worked on Legacy systems what does a legacy system mean to you?

[译文] [Host]: 既然你说你研究过遗留系统,那么对你来说,“遗留系统”意味着什么?

[原文] [Grady Booch]: Well the moment you write a line of code it becomes a legacy system until you throw it away so all code to some degree is a legacy system.

[译文] [Grady Booch]: 这么说吧,你写下一行代码的那一瞬间,它就变成了遗留系统,直到你把它扔掉为止。所以从某种程度上说,所有代码都是遗留系统。

[原文] [Grady Booch]: Facebook is a legacy domain Google is Legacy uh Heavens even uh open AI has a legacy problem because reality is that as I often say old code Never Dies you have to kill it.

[译文] [Grady Booch]: Facebook 是一个遗留领域,Google 是遗留的,天哪,甚至 OpenAI 也有遗留问题。因为现实是,正如我常说的,旧代码永远不会自己死掉,你必须亲手杀掉它。

[原文] [Grady Booch]: Once you have built something that's useful then it's going to live on and so you're unless you have fully disposable code there is some body of code that you have there that represents something immutable something that has a cost something that has some degree of technical debt to it.

[译文] [Grady Booch]: 一旦你构建了某种有用的东西,它就会存活下去。所以,除非你拥有完全一次性的代码,否则你必然拥有某些代码体,它们代表着某种不可变的东西、某种成本、某种程度的技术负债。

[原文] [Grady Booch]: It may be very very small if you look at many of the classic organizations in the big Financial space these are groups who have been working with code bases since literally the 60s.

[译文] [Grady Booch]: 这负债可能非常非常小。但如果你看看大型金融领域的许多经典机构,这些团队维护的代码库确实可以追溯到 20 世纪 60 年代。

[原文] [Grady Booch]: I had one engagement with the Internal Revenue Service in the United States because they've been trying to modernize their systems since the 1960s.

[译文] [Grady Booch]: 我曾参与过美国国税局(IRS)的一个项目,因为他们从 1960 年代起就一直试图使系统现代化。

[原文] [Grady Booch]: Now let's go back in time what was happening in the 60s well you had the of the population the increase of Social Security and the like and more and more organizations who were creating lots of paperwork and so the banks and the government realized by the late to Mid 60s there was simply so much going on that you couldn't do it by hand.

[译文] [Grady Booch]: 现在让我们回到过去,看看 60 年代发生了什么。当时人口增长,社会保障需求增加等等,越来越多的机构产生了大量的文书工作。银行和政府在 60 年代中后期意识到,事务太繁杂了,根本无法靠手工完成。

[原文] [Grady Booch]: And why did banks used to close at 3 p.m. because they needed the time for the humans to reconcile accounts.

[译文] [Grady Booch]: 为什么银行过去常在下午 3 点关门?因为他们需要时间让人工去核对账目。

[原文] [Grady Booch]: The IRS was very much like that and so there was during the 60s this period of automation of human processes and so most of that was written in IBM 360 Assembly Language.

[译文] [Grady Booch]: 美国国税局的情况也非常类似。所以在 60 年代,出现了一段人类流程自动化的时期,而这些系统大部分是用 IBM 360 汇编语言编写的。

[原文] [Grady Booch]: Zoom back to today there is still code in the IRS system written in IBM 360 Assembly Language running on emulators upon emulators upon emulators but that creates really difficult problems because some of that code embodies business rules that are within the Assembly Language itself so how do you change that?

[译文] [Grady Booch]: 回到今天,IRS 系统中仍然有代码是用 IBM 360 汇编语言编写的,运行在模拟器之上的模拟器之上的模拟器里。但这造成了非常棘手的问题,因为其中一些代码本身就内嵌了业务规则(Business Rules),就在汇编语言里,你要怎么去改它?

[原文] [Grady Booch]: And the answer is you're faced with a real human problem of how do I transmogrify old code in cobal Assembly Language so that it can work on modern technology there's only so much you can do via emulation.

[译文] [Grady Booch]: 答案是,你面临着一个真正的人力难题:我该如何将 COBOL 或汇编语言写成的旧代码“变形(transmogrify)”,使其能在现代技术上工作?光靠模拟能做的只有这么多。

[原文] [Grady Booch]: And then would you consider that the government you know makes new business rules every year how do you keep up with that that's a real and present Legacy problem.

[译文] [Grady Booch]: 然后你再想想,政府每年都在制定新的业务规则,你怎么跟得上?这是一个真实且迫在眉睫的遗留问题。

[原文] [Grady Booch]: Facebook has the same thing although their code doesn't date back that far Google has the same problem as well open AI will soon have that problem.

[译文] [Grady Booch]: Facebook 也有同样的情况,虽然他们的代码没那么古老;Google 也有同样的问题;OpenAI 很快也会面临这个问题。


章节 2:软件工程的演变:从算法分解到Booch方法的诞生

📝 本节摘要

在本节中,Grady Booch 回顾了软件工程的“第一黄金时代”,那是算法语言(如 Fortran 和 COBOL)和结构化分析统治的时期。他深情地指出,现代计算实际上是“在悲伤的织布机上编织而成的”,起源于二战和冷战时期的防御系统(如 SAGE)。随着分布式系统和 ARPANET 的出现,旧有的算法分解法显得力不从心,促使美国国防部推动了 Ada 语言的诞生。Booch 详细解释了他发明的“Booch 方法”的核心哲学——受柏拉图启发,从关注“过程”转向关注“原子”(即对象与类),从而开启了面向对象设计的时代。他还反思了当时的局限性,承认当年过分强调了“继承”的作用。

[原文] [Host]: When you say you are parachuted to help a bunch of different types of companies can you give a sense of what types of companies you worked over the years the decades to help with their architecture their legacy code their Tech debt?

[译文] [Host]: 当你说你被“空降”去帮助各种不同类型的公司时,你能否大概介绍一下,这些年来你帮助过哪些类型的公司处理架构、遗留代码或技术债务问题?

[原文] [Grady Booch]: Every conceivable domain truly is I've had the opportunity to work with obviously the financials I've done a lot of work in the defense sector.

[译文] [Grady Booch]: 真的涵盖了所有能想象到的领域。我有机会与金融机构合作,我也在国防领域做了大量工作。

[原文] [Grady Booch]: In fact to go way back in time complex systems were really not started in the commercial realm but they really began in the world of of Defense the phrase I also use here is that all of modern Computing was woven on a loom of Sorrow.

[译文] [Grady Booch]: 事实上,追溯到很久以前,复杂系统其实并非始于商业领域,而是真正起源于国防世界。我在这里常引用的一句话是:所有现代计算都是“在悲伤的织布机上编织而成的(woven on a loom of Sorrow)”。

[原文] [Grady Booch]: What we see in modern Computing was born from World War II and the Cold War particularly a system called sage the semi-automatic ground environment that came about during the 50s and indeed was operational till the 1980s.

[译文] [Grady Booch]: 我们在现代计算中看到的一切,都诞生于第二次世界大战和冷战,特别是一个名为 SAGE(半自动地面环境)的系统,它出现于 50 年代,并且实际上一直运行到了 1980 年代。

[原文] [Grady Booch]: This was a system built in response of the Soviet threat of them taking uh bombers over the Arctic and coming into the United States before we had satellites and pervasive radar and that was a system that was that pre that precipitated the creation of what we call the Software crisis.

[译文] [Grady Booch]: 这是一个为了应对苏联威胁而建立的系统,当时担心他们的轰炸机会越过北极进入美国,而在那之前我们还没有卫星和普及的雷达。正是这个系统促成了我们所谓的“软件危机(Software Crisis)”的产生。

[原文] [Grady Booch]: It was what triggered the creation of the NATO conference later in that decade in which a group of folks came together from around the world saying you know how do we attend to this problem and it was really at the peak of what I'd call the first golden age of software engineering.

[译文] [Grady Booch]: 正是它引发了后来那个年代的北约(NATO)会议,当时来自世界各地的一群人聚在一起说:“你知道,我们该如何解决这个问题?”那是真正处于我所称的“软件工程第一黄金时代”的巅峰时期。

[原文] [Host]: Jumping Way Forward you've now been working with a lot of companies been involved in a lot of projects and also influenced a lot of software architecture the broader field how would you describe the field evolving over the decades?

[译文] [Host]: 让我们快进一下,你现在已经与许多公司合作,参与了许多项目,并且影响了广泛的软件架构领域。你会如何描述这个领域在过去几十年中的演变?

[原文] [Grady Booch]: So I alluded to a phase that called the first golden age of software engineering this is the realm of the time of functional or not functional but algorithmic languages such as Fortran and Cobalt uh APL lisp and the like although lisp was sort of a a multimodal kind of language but the dominant way that we decompose systems was through algorithms.

[译文] [Grady Booch]: 我提到过一个被称为“软件工程第一黄金时代”的阶段。那是函数式——或者不该叫函数式,而是算法语言(Algorithmic Languages)的领域,比如 Fortran、COBOL、APL、Lisp 等等,虽然 Lisp 算是一种多模态的语言,但当时我们要分解系统,主导方式是通过算法。

[原文] [Grady Booch]: And so you saw the rise of structured analysis and design techniques which made a whole lot of sense at that time this is where you had the Jordans and DeMarcos and constantines and the like because the presenting problem for software systems was they were generally not distributed they were largely monoliths.

[译文] [Grady Booch]: 因此你看到了结构化分析与设计技术的兴起,这在当时非常有意义。这就是 Yourdon、DeMarco 和 Constantine 等人活跃的时期,因为当时软件系统面临的问题是,它们通常不是分布式的,它们主要是单体应用(Monoliths)。

[原文] [Grady Booch]: Well the Golden Age of that first golden age of software engineering began to change as we started to see the rise of distributed systems and that Rise Again happened not in the commercial world but happened in the defense world uh the arpanet was you know funded by the government funded by DARPA.

[译文] [Grady Booch]: 然而,随着我们开始看到分布式系统的兴起,那个软件工程第一黄金时代开始发生转变。这种兴起同样不是发生在商业界,而是发生在国防界。你知道,ARPANET 是由政府资助的,由 DARPA 资助的。

[原文] [Grady Booch]: I got my first email address in 1979 when there weren't that many email addresses around.

[译文] [Grady Booch]: 我在 1979 年有了第一个电子邮件地址,当时周围还没有那么多电子邮件地址。

[原文] [Grady Booch]: So the first distributed systems were happening in that domain indeed back to Vandenberg I worked on a system called the Telemetry integrated processing system which was a a close network of some 32 mini computers Min computers were being be a thing and so the problems of how do I deal with taking a larger system and breaking it up into multiple distributed Parts was beginning to emerge as a problem hadn't reached the commercial sector yet.

[译文] [Grady Booch]: 所以第一批分布式系统确实是在那个领域发生的。回到范登堡空军基地,我曾参与一个名为“遥测综合处理系统”的项目,那是一个由大约 32 台小型机组成的封闭网络——当时小型机正开始流行。因此,如何处理将大型系统拆分为多个分布式部分的问题开始浮现,但这还没波及到商业领域。

[原文] [Grady Booch]: So we saw we the industry began to see that there were limitations to what one could do with algorithmic decomposition... It led to a realization that we needed to think about software in very different ways.

[译文] [Grady Booch]: 所以我们——整个行业——开始看到,算法分解法所能做的事情是有局限性的……这让我们意识到,我们需要以截然不同的方式来思考软件。

[原文] [Grady Booch]: So here we are again in the late '70s and again I'm what a 20-some I was asked by one of my former teachers at the Air Force Academy say Grady would you go help the Department of Defense figure out how to use this new programming language called Ada so we can apply it to Modern software engineering techniques.

[译文] [Grady Booch]: 于是时间来到了 70 年代末,我又是一个 20 多岁的小伙子,我在空军学院的一位前老师问我:“Grady,你愿不愿意去帮国防部弄清楚如何使用这种叫 Ada 的新编程语言,以便我们可以将其应用于现代软件工程技术?”

[原文] [Grady Booch]: Now why was the government worried about this by that time software was a real problem for the Department of Defense actually for all of the federal government because there were several thousand languages in use that exploded because Fortran and Cobalt were useful for some things but not for all things and so there was a decision made to build one language to rule them all and that was the Ada programming language.

[译文] [Grady Booch]: 为什么政府要担心这个?因为那时软件对国防部乃至整个联邦政府来说都是个大问题。当时有几千种语言在使用,数量激增,因为 Fortran 和 COBOL 虽然对某些事情有用,但并非万能。因此,他们决定构建“一种统治所有的语言(one language to rule them all)”,那就是 Ada 编程语言。

[原文] [Grady Booch]: Thus was born the Booch method... and this was the beginnings of the second golden age of software Engineering in which it was not so much the complexity of the algorithms but it became a systems engineering problem.

[译文] [Grady Booch]: 于是“Booch 方法(The Booch Method)”诞生了……这也是软件工程“第二黄金时代”的开端,在这个时代,重点不再是算法的复杂性,而是变成了一个系统工程问题。

[原文] [Host]: Could you explain what the Booch method is I understand it has to do with objectoriented programming but coming from you as the person who invented it it will be nice to explain what it is and why it was important.

[译文] [Host]: 你能解释一下什么是 Booch 方法吗?我知道它与面向对象编程有关,但作为发明者,如果由你来解释它是什么以及为什么它很重要,那会很棒。

[原文] [Grady Booch]: Well let's go back to Plato talking about going way back... there's this wonderful Treatise he wrote a dialogue in which there's a debate about how one should best look at the world should I look at it as a as atoms or should I look at it as processes.

[译文] [Grady Booch]: 嗯,让我们回到柏拉图——说得够远的……他写过一篇精彩的论文,一段对话,其中辩论了人们应该如何最好地看待世界:我是应该把它看作原子(Atoms),还是看作过程(Processes)?

[原文] [Grady Booch]: Well the first golden age of software engineering was more focused upon the processes the algorithms but there's a parallel way of looking at the world and that's looking at it through the atoms if you will the classes and objects within them.

[译文] [Grady Booch]: 软件工程的第一黄金时代更侧重于“过程”,即算法。但还有一种平行的看待世界的方式,那就是通过“原子”来看待它,也就是其中的类(Classes)和对象(Objects)。

[原文] [Grady Booch]: So the Booch method was really trying to codify that how could we decompose systems not based upon algorithms but how do we decompose it based upon classes and objects.

[译文] [Grady Booch]: 所以 Booch 方法实际上是试图将其系统化:我们要如何不基于算法来分解系统,而是基于类和对象来分解它。

[原文] [Grady Booch]: Now we did some things right we did some things wrong I think the things we did right was classes make a lot of sense in terms of abstraction what we did wrong is we overemphasized the notion of inheritance.

[译文] [Grady Booch]: 我们做对了一些事,也做错了一些事。我认为我们做对的是,类在抽象层面上非常有意义;而我们做错的是,我们过分强调了“继承(Inheritance)”的概念。

[原文] [Grady Booch]: Inheritance was all about let's you save code because we can you know build generalizations and the like that proved to not make a lot of sense because we ended up doing lots of desparate desperate kinds of abstractions.

[译文] [Grady Booch]: 继承的初衷是为了节省代码,因为我们可以构建泛化之类的东西。但这被证明并没多大意义,因为我们最终搞出了很多绝望且杂乱的抽象。

[原文] [Grady Booch]: Well let me go even further back to the 1950s and show you a parallel story there was a time in the growth of algorithmic programming languages where the idea of a sub routine was considered controversial why because doing a function call added at least two or three more instructions which was computationally expensive so even function calls and decomposing something into sub routines was viewed as an architectural aberation.

[译文] [Grady Booch]: 让我再回溯到 20 世纪 50 年代,给你讲一个类似的故事。在算法编程语言的发展过程中,曾有一段时间,“子程序(Subroutine)”的概念被认为是有争议的。为什么?因为进行一次函数调用至少会增加两三条指令,这在计算上是很昂贵的。所以,即使是函数调用和将事物分解为子程序,也被视为一种架构上的越轨行为。

[原文] [Grady Booch]: The same thing I think was true back in the days of early object orientation... today we take it for granted because our languages make it easy for us to do this.

[译文] [Grady Booch]: 我认为在早期面向对象时代情况也是如此……今天我们认为这理所当然,因为我们的语言让我们很容易做到这一点。


章节 3:UML传奇:Rational软件的崛起与统一建模语言的初衷

📝 本节摘要

本节详述了 Rational Software 的创业史——从最初由 Apple 投资人 Art Rock 资助、专注于 Ada 语言和国防领域,到后来转型商业市场并推出 Rational Rose。Grady Booch 回忆了与 Bjarne Stroustrup(C++之父)的交往,以及 Rational 如何收购了 Netflix 创始人 Reed Hastings 的早期公司。最为核心的是,随着“方法论之战”的升温,Rational 聚集了 Jim Rumbaugh 和 Ivar Jacobson,这三位性格迥异的巨头(“三友”,The Three Amigos)虽然“差点把对方送进医院或监狱”,但最终成功统一了符号体系,诞生了 UML。Booch 特别澄清,UML 的初衷是辅助思考的设计语言,而非后来 UML 2.0 试图变成的“编程语言”,后者导致了其不必要的复杂化。

[原文] [Host]: One thing that you're known for and you also mention you're associated with it IS UML but can you share how this was created what was the goal of it back then who were involved and what was the need that it was solving at the time.

[译文] [Host]: 你以 UML(统一建模语言)闻名,你自己也提到过这点。能不能分享一下它是如何诞生的?当时的目标是什么?有哪些人参与?以及当时它解决了什么需求?

[原文] [Grady Booch]: Right so in 1982 two of my classmates from the Air Force Academy Paul Ley and Mike delin... Mike and Paul got together with me and said let's start a company and we we did it was this company called rational rational machines Incorporated whose intent was to build a software development environment for this new coming Ada programming language.

[译文] [Grady Booch]: 好的。1982年,我在空军学院的两位同学 Paul Levy 和 Mike Devlin……Mike 和 Paul 找到我说:“让我们开家公司吧。”于是我们就开了,这家公司叫 Rational Machines Incorporated(Rational 机器公司),其初衷是为即将到来的新 Ada 编程语言构建软件开发环境。

[原文] [Grady Booch]: We saw that to be an opportunity in which we could make piles of money and we built Hardware at first... Mike designed a system I helped build the methodology around using the system it was a system called the r1000 and that was the dominant Ada system used around the world for Ada at the time.

[译文] [Grady Booch]: 我们认为这是一个能赚大钱的机会。起初我们是做硬件的……Mike 设计了一个系统,我帮忙构建了使用该系统的方法论,那个系统叫 R1000,它是当时全球用于 Ada 开发的主流系统。

[原文] [Grady Booch]: The two of them also went to Stanford... because they then connected with art rock and Hamrick conquist the two premier Venture capitalists at the time uh art rock and H Quist were the key Founders to Apple and they also contributed to the funding of what became rational software.

[译文] [Grady Booch]: 他们俩也去了斯坦福……因为这层关系,他们联系上了 Art Rock 和 Hambrecht & Quist,这两位是当时顶级的风险投资家。Art Rock 和 H&Q 是 Apple 的关键创始投资人,他们也为后来成为 Rational Software 的公司提供了资金。

[原文] [Grady Booch]: Well around I don't know would have been the early Jump Ahead a decade now here we are the mid 90s... I find I found that there was traction that I was getting from the bch method into the commercial sector.

[译文] [Grady Booch]: 大概是在……好吧,让我们快进个十年,来到 90 年代中期……我发现 Booch 方法在商业领域开始获得关注。

[原文] [Grady Booch]: I was giving a bunch of lectures at the time... a gentleman in the audience who asked a really insightful question and afterwards he and I met up a guy by the name of BNA strrip and it turns out BNA was working on a thing called C with classes which was the predecessor to C++.

[译文] [Grady Booch]: 当时我正在做一系列讲座……观众席里有位绅士问了一个非常有见地的问题,事后我们会面了,这人名叫 Bjarne Stroustrup。原来 Bjarne 当时正在搞一个叫“带类的 C(C with Classes)”的东西,也就是 C++ 的前身。

[原文] [Grady Booch]: The two of us got together we hit it off... and this was around the time he wrote his first book on C++ if you look at the first edition you'll see here references a lot of my ideas and that's when my book on objectoriented design came out and I reference his his work a lot too so oh the the B method and C++ kind of grew up together.

[译文] [Grady Booch]: 我们俩聚在一起,一拍即合……那时正好是他写第一本 C++ 书的时候。如果你看第一版,你会发现他引用了很多我的观点;而那时我的《面向对象设计》一书也出版了,我也大量引用了他的工作。所以,Booch 方法和 C++ 算是一起成长起来的。

[原文] [Grady Booch]: I remember a particularly important meeting I had with Mike and Paul... it was at the Red Carpet club of United Airlines in in Denver and they met with me and said hey Grady we're thinking of moving the company in the direction of embedded systems and I said to them well good for you I think that's a stupid idea because you're missing the commercial sector.

[译文] [Grady Booch]: 我记得和 Mike 以及 Paul 有过一次特别重要的会议……是在丹佛的美联航红地毯俱乐部。他们对我说:“嘿,Grady,我们考虑把公司转向嵌入式系统方向。”我对他们说:“好吧,祝你们好运,但我认为这是个愚蠢的主意,因为你们会错失商业领域。”

[原文] [Grady Booch]: So they then made the decision hey let's take the bo method and make it real and thus was begun the beginnings of a system called Rose rational object oriented software engineering our first tool.

[译文] [Grady Booch]: 于是他们后来做出了决定:“嘿,让我们把 Booch 方法变成现实吧。”这就开启了一个名为 Rose(Rational Object-Oriented Software Engineering,Rational 面向对象软件工程)的系统的先河,这是我们的第一个工具。

[原文] [Grady Booch]: The first prototype by the way I wrote wrote in small talk it was a wonderful system I wish I ID kept the the source code for that around but I remember making changes to it just literal minutes before we first the F did the first demo.

[译文] [Grady Booch]: 顺便说一句,第一个原型是我用 Smalltalk 写的。那是一个很棒的系统,真希望我当时把源代码留下来了。但我记得在第一次演示前的几分钟,我还在改代码。

[原文] [Host]: Can you just tell us what rational software did this commercial thing that was a hit.

[译文] [Host]: 你能告诉我们 Rational Software 具体是做什么的吗?这个商业产品为何如此成功?

[原文] [Grady Booch]: So rational soft the rose... was a personal productivity tool... that basically allowed you to you know draw uml diagram not uml but boot diagrams so that you could then reason about and think about your design we did a little bit of code generation but really it was just a design tool.

[译文] [Grady Booch]: Rational Rose……是一个个人生产力工具……它基本上允许你绘制 UML 图——哦不,当时还不是 UML,是 Booch 图——这样你就可以推演和思考你的设计。我们也做了一点代码生成,但实际上它只是一个设计工具。

[原文] [Grady Booch]: And so we started acquiring companies... we bought a small company out of Cambridge uh called Pure Atria which was led by a gentleman by the name of Reed Hastings Reed came to us and we bought his company.

[译文] [Grady Booch]: 后来我们开始收购公司……我们买下了剑桥的一家小公司叫 Pure Atria,由一位名叫 Reed Hastings 的绅士领导。Reed 来找我们,我们买下了他的公司。

[原文] [Host]: And we're talking about the founder of Netflix right.

[译文] [Host]: 我们说的是 Netflix 的创始人,对吧?

[原文] [Grady Booch]: Yes yes so we bought his yeah Reed Reed realized he's a lousy CEO and so he took his money hang out around for a few years figuring out what he was going to do and actually that was a lot of the seed money that helped form Netflix.

[译文] [Grady Booch]: 是的,是的。Reed 意识到他是个糟糕的 CEO,所以他拿着钱,闲晃了几年思考下一步做什么,实际上那笔钱很大程度上成为了后来创办 Netflix 的种子资金。

[原文] [Grady Booch]: And this was the beginnings of the second golden age of software engineering where you had Pete code and and uh Constantine back again and Jordan again and Martin uh we had uh Evar yakas and and Jim Ramba and so it was a very vibrant time.

[译文] [Grady Booch]: 这也是软件工程“第二黄金时代”的开端,在这个时代,Pete Coad、Constantine、Yourdon、Martin 都回来了,我们还有 Ivar Jacobson 和 Jim Rumbaugh,那是一个充满活力的时期。

[原文] [Grady Booch]: So rational being in a very interesting space we said you know we're kind of dominating the market let's keep going here so we hired Jim Rumba and the task Jim and I had was to combine his methodology omt object management technique with mine... and then we bought Evar aquin's company.

[译文] [Grady Booch]: Rational 处在一个非常有趣的领域,我们说:“既然我们某种程度上主导了市场,那就继续吧。”于是我们雇佣了 Jim Rumbaugh,Jim 和我的任务是将他的方法论 OMT(对象建模技术)与我的结合起来……然后我们又买下了 Ivar Jacobson 的公司。

[原文] [Grady Booch]: Now you could never have found three two very three very different people I'm pretty amazed that we didn't end up with one of us in the hospital and one of us in jail we were so so very different.

[译文] [Grady Booch]: 你绝对找不到比我们要么两个、要么三个更迥异的人了。我很惊讶我们最后竟然没搞到一个人进医院、另一个人进监狱的地步,因为我们实在是太不一样了。

[原文] [Grady Booch]: And from that was Bor in the uml so we decided you know this is not just ours we need to make it something that the whole world could use so we made the decision to release it into the object Management Group and that's was born uml 1.o.

[译文] [Grady Booch]: 从这里诞生了 UML。我们决定:“这不仅仅属于我们,我们需要让全世界都能使用它。”所以我们决定将其发布给对象管理组织(OMG),UML 1.0 就此诞生。

[原文] [Grady Booch]: The first was Philipe krushen... Philipe brought to the table the very important idea... looking at the world through multiple points of view Philipe has this idea of the four plus1 view model.

[译文] [Grady Booch]: 这里还要提到一个人,Philipe Kruchten……Philipe 带来了一个非常重要的理念……即通过多重视角看世界。Philipe 提出了“4+1 视图模型”。

[原文] [Host]: And do I understand correctly that the goal of uml was to describe a system... when you look at this this whole diagram you get a sense of the the structure of the software you're building.

[译文] [Host]: 我理解得对吗?UML 的目标是描述一个系统……当你看着这张完整的图表时,你能感知到你正在构建的软件的结构。

[原文] [Grady Booch]: Yes so if you look at the very first line of the uml 1.o standard I believe it says something to the effect the uml is a visual language intended to reason about visualize specify and document the artifacts of a software intensive system it says nothing about it being a programming language.

[译文] [Grady Booch]: 是的。如果你看 UML 1.0 标准的第一行,我相信它大概是这样写的:UML 是一种视觉语言,旨在对软件密集型系统的制品进行推演、可视化、规范和文档化。它根本没说自己是一种编程语言。

[原文] [Grady Booch]: In fact I voraciously pushed back against that... but in the move from uml 1.0 to 2.0 there was a faction of individuals and companies who said no we want to make the uml very precise we want to turn it into a programming language and that was I think a profound mistake.

[译文] [Grady Booch]: 事实上,我曾如饥似渴地反击这种观点……但在从 UML 1.0 向 2.0 过渡的过程中,有一派个人和公司说:“不,我们要让 UML 非常精确,我们要把它变成一种编程语言。”我认为那是一个极其深刻的错误。

[原文] [Grady Booch]: But the net result result of that was to make the uml much more complex much larger... I think that began the decline of the uml because people were using it the wrong ways.

[译文] [Grady Booch]: 最终的结果是让 UML 变得更加复杂、更加庞大……我认为这开启了 UML 的衰落,因为人们开始以错误的方式使用它。


章节 4:历史转折点:被IBM收购与拒绝比尔·盖茨的邀约

📝 本节摘要

本节讲述了 Rational Software 发展至巅峰后的命运转折。2003年,IBM 击败微软,以约 21 亿美元收购了 Rational,Grady Booch 随即被任命为 IBM 院士。最为戏剧性的一幕发生在收购后不久,比尔·盖茨亲自邀请 Booch 会面,并抛出“首席架构师”的橄榄枝,希望他能接手企业级架构工作。然而,在深入了解微软内部(特别是 Windows 组与 Office 组之间)激烈的派系斗争,且发现斯蒂夫·鲍尔默(Steve Ballmer)甚至不愿见他后,Booch 敏锐地意识到这是一家“极度失调”的公司。他最终以一句“这只会以眼泪收场”婉拒了盖茨,选择留在 IBM。

[原文] [Grady Booch]: So now we are here in 2003 IBM and Microsoft were still using our tools heavily because they were important for their customers.

[译文] [Grady Booch]: 时间来到 2003 年,IBM 和微软当时都在大量使用我们的工具,这对他们的客户至关重要。

[原文] [Grady Booch]: IBM and Microsoft both bid for us and I think IBM won at some some bid of 2.1 billion dollars to buy to buy uh to buy Rational and so we went over to to IBM and became part of it.

[译文] [Grady Booch]: IBM 和微软都对我们要约收购,我想 IBM 最终以大约 21 亿美元的出价赢得了竞标,买下了 Rational。于是我们加入了 IBM,成为了它的一部分。

[原文] [Grady Booch]: And that made sense because at that time there were 3,500 of us in 14 countries we had reached almost a billion in revenues which was pretty extraordinary for a company around that time but it was time to be absorbed.

[译文] [Grady Booch]: 这也是合理的,因为当时我们在 14 个国家拥有 3500 名员工,营收已接近 10 亿美元,这对于那个时代的一家公司来说相当了不起,但也到了被大公司吸收的时候了。

[原文] [Grady Booch]: Now one other story I'll tell before I I move before I pause again uh here I was IBM acquired us uh they made me a fellow immediately which had never happened before it usually takes years of being part of IBM.

[译文] [Grady Booch]: 在我继续之前,我还要讲另一个故事。IBM 收购了我们,并且立即任命我为“院士(Fellow)”,这在以前从未发生过,通常你要在 IBM 待上好几年才有可能获得这个头衔。

[原文] [Grady Booch]: And a couple months after I got a phone call said hey Grady it's Bill visit me so I I went up and flew up to Bill.

[译文] [Grady Booch]: 大概几个月后,我接到了一个电话说:“嘿,Grady,我是 Bill,来看看我吧。”于是我飞过去见 Bill。

[原文] [Host]: Bill Gates Right.

[译文] [Host]: 比尔·盖茨,对吧?

[原文] [Grady Booch]: Bill Gates yeah I'd done some things to the bill before and so bill was at the time still CEO of Microsoft... he took me into his office we had like a 30 minute meeting scheduled we ran for two hours much to the annoyance of his staff.

[译文] [Grady Booch]: 是的,比尔·盖茨。我之前和 Bill 有过一些交集。当时 Bill 还是微软的 CEO……他把我带进办公室,我们原本只安排了 30 分钟的会议,结果聊了两个小时,搞得他的员工非常恼火。

[原文] [Grady Booch]: And he sat down and said Grady it's not public yet but I'm going to be moving out of my role at Microsoft because I would to you know do other things.

[译文] [Grady Booch]: 他坐下来跟我说:“Grady,这事还没公开,但我打算卸任微软的职位,因为我想去……你知道,做点别的事情。”

[原文] [Grady Booch]: And Grady you know I've got two roles I'm CEO and I'm Chief Architect of Microsoft I'd like to give you that job of Chief Architect for Enterprise.

[译文] [Grady Booch]: “Grady,你知道我有两个角色,我是 CEO,我也是微软的首席架构师。我想把‘企业级首席架构师’这份工作交给你。”

[原文] [Grady Booch]: And so I said Bill that's very interesting and so I said give me a little time and uh I went around and met all of his you know his his main Reports.

[译文] [Grady Booch]: 于是我说:“Bill,这非常有意思。”我说给我点时间。然后我去见了他所有的……你知道,主要汇报对象。

[原文] [Grady Booch]: Most importantly Balmer never met me and that was a red flag.

[译文] [Grady Booch]: 最重要的是,鲍尔默(Steve Ballmer)根本没见我,那是一个危险信号(Red Flag)。

[原文] [Grady Booch]: And it was around the time too I realized that Microsoft was a particularly nasty company you had the office group and you had the you had the windows group that just couldn't stand one another.

[译文] [Grady Booch]: 也是在那段时间,我意识到微软是一家特别令人讨厌的公司。你有 Office 组,你有 Windows 组,他们彼此简直势不两立。

[原文] [Grady Booch]: So I eventually came back to Bill through his his uh his hiring folks and said Bill I'm flattered but you know you have a profoundly dysfunctional company and I'm not the one to fix it.

[译文] [Grady Booch]: 所以我最终通过他的招聘人员回复了 Bill,我说:“Bill,我很受宠若惊,但你知道,你有一家极度功能失调(dysfunctional)的公司,而我不是那个能修复它的人。”

[原文] [Grady Booch]: So Bill thank you but no thank you I think I use something to the effective it would only end in tears for both of us if I accepted.

[译文] [Grady Booch]: 所以,Bill,谢谢你,但还是算了。我想我当时说的大意是:如果我接受了,这对我们双方来说都只会以眼泪收场。

[原文] [Grady Booch]: So let's move on so I stay at IBM and it was the good decision to make it would have been a bad decision for me to go.

[译文] [Grady Booch]: 所以就此翻篇,我留在了 IBM。这是一个正确的决定,如果当时去了,那会是个糟糕的决定。

[原文] [Host]: And there's this cartoon about Microsoft um created by uh by a software engineer cartoonist Manu cornate about the organizations of Microsoft the two organizations and they're holding guns against one another.

[译文] [Host]: 有一幅关于微软的漫画,是软件工程师兼漫画家 Manu Cornet 画的,描绘了微软的组织架构,画的是两个部门正拿枪指着对方。

[原文] [Grady Booch]: Yeah yeah that's where it was they needed somebody to knock it I'm I'm a lover not a fighter and I was not the guy to break things up wow what a story.

[译文] [Grady Booch]: 是的,是的,当时就是那样。他们需要有人去打破这种局面,但我是一个爱人者而非战士(lover not a fighter),我不是那个去拆解这种局面的人。哇,真是个故事。


章节 5:现代架构迷思:UML的衰落与架构决策的“三维坐标”

📝 本节摘要

本节中,Grady Booch 坦诚地剖析了 UML 衰落的原因——即从 UML 1.0 到 2.0 的过程中,试图将其变成一种精确的“编程语言”而非辅助思考的“设计语言”,这导致了不必要的复杂化。面对现代开发者对架构图的冷落,他提出了一个极具洞察力的“三维坐标系”来判断何时需要正式的架构设计:仪式感(Ceremony/资金来源)风险(Risk/生命安全)复杂度(Complexity/前所未有的问题)。他指出,对于大多数使用现成框架(如 Redis)的初创公司而言,确实不需要 UML;但对于像詹姆斯·韦伯太空望远镜这样高风险、高复杂度的系统,形式化的架构依然至关重要。

[原文] [Host]: So I started uml in college and to this date it's part of several college curriculums but interesting enough in the industry I've just not really seen it used for for anything at least the companies that I worked at and the startups and scale-ups and and large companies I work with I kind of see a resistance to using it when it's brought up claiming that is too formal uh because we do use architecture right we use boxes and arrows and and we we diet diagram I'm curious to know you know we talked about howl was used by 20 30% of the industry at some point but what what happened in your view.

[译文] [Host]: 我在大学时就开始学 UML,直到今天它仍是许多大学课程的一部分。但有趣的是,在业界,我几乎没看到它真正被用于什么地方。至少在我工作过的公司、初创企业、成长型企业以及大型科技公司里,当提到它时,我都能看到一种抵触情绪,大家声称它太形式化了。因为我们确实在做架构,对吧?我们画方框和箭头,我们画图表。我很好奇,我们之前谈到 UML 曾一度被 20% 到 30% 的行业人士使用,但在你看来,后来发生了什么?

[原文] [Grady Booch]: So this leads us to you know contemporary architecture that I've got a Shelf full of books on architecture both in the you know older ones and new ones and if you look at what a lot of people speak of as software architecture today I think it's reasonable and and and sound and there's good stuff there but in many of the kinds of systems these Architects talk about the architectural decisions have largely been made for you.

[译文] [Grady Booch]: 这就引出了当代的架构话题。我书架上摆满了架构方面的书,既有旧的也有新的。如果你看看今天许多人所说的软件架构,我认为它们是合理的、稳健的,里面有很多好东西。但是在这些架构师所谈论的许多类型的系统中,架构决策在很大程度上已经被别人为你做好了。

[原文] [Grady Booch]: I'm going to build a system that requires message passing well let's go find you know uh uh rabbit mq or m whatever or redus or or or whatever I need the architectural decisions have been made for you so a lot of the activities of contemporary Architects is simply taking very large Frameworks and components and weaving them together which is a very Noble and wonderful thing to do.

[译文] [Grady Booch]: 比如我要构建一个需要消息传递的系统,好吧,那就去找 RabbitMQ,或者其他的,或者 Redis,或者任何我需要的东西。架构决策已经为你做好了。所以当代架构师的很多活动,仅仅是拿着非常大的框架和组件,把它们编织在一起。这是一件非常高尚且美妙的事情。

[原文] [Grady Booch]: They also represent systems like meta and D is particular they have grown their architecture and system over a few decades now and the stuff they're building on top of it is largely evolving and building upon those apis which does not require the deeper kinds of architectural thinking.

[译文] [Grady Booch]: 他们也代表了像 Meta 这样的系统,特别是那些已经发展了几十年的架构和系统,他们在上面构建的东西很大程度上是在演进,是基于那些 API 构建的,这并不需要那种更深层次的架构思考。

[原文] [Grady Booch]: So I use this let me give you an image here of of three AIS system along one axis you have um uh you have levels of of ceremony if I'm a startup then it's just my other people's money and no one else's and heck I can write disposable software and if I fail I'll just go find another venture capitalist of course I'm not going to worry about any kinds of degree of ceremony because just Build It Go hire some brilliant people and make it happen that's wonderful.

[译文] [Grady Booch]: 所以我用这个……让我给你描绘一个三维坐标系的图像。沿着一个轴,你有“仪式感(Ceremony)”的层级。如果我是一家初创公司,那么我用的只是“别人的钱(Other People's Money)”,没什么别的。见鬼,我可以写一次性软件,如果我失败了,我就去找另一个风险投资家。我当然不会担心任何程度的仪式感,因为只要构建它、雇佣一些聪明人、让它跑起来就行了,这很棒。

[原文] [Grady Booch]: On the other hand if let's say I'm doing something like U I don't know building the Next Generation uh intercontinental ballistic missile system which uses about I don't know about half a billion half a trillion dollars you bet you're going to use more ceremony because you have to have degrees of accountability so that's one axis.

[译文] [Grady Booch]: 另一方面,如果比方说我在做……我不知道,比如建造下一代洲际弹道导弹系统,这大约需要……我不知道,五亿美元或五千亿美元,那你绝对要使用更多的仪式感(流程规范),因为你必须有相应程度的问责制(Accountability)。所以这是第一个轴。

[原文] [Grady Booch]: The next axis is that of of uh of risk so if I build a system and says oh if I fail you know you know so and so's not going to find their grinder match big deal on the other hand if I fail and somebody dies that's a problem and you're going to use a more disciplined architecture.

[译文] [Grady Booch]: 下一个轴是“风险(Risk)”。如果我建立一个系统,然后说:“噢,如果我失败了,你知道,某某人就找不到他们的 Grindr(约会软件)配对了。”这没什么大不了的。另一方面,如果我失败了,导致有人死了,那就是个大问题,你就得使用更严谨的架构。

[原文] [Grady Booch]: The third axis is that of complexity if I build a system that people have done again and again then heck I don't need anything he heavans this is where prompt engineering comes into play I go build an apus by building prompts cuz we built these things I don't need no stinking uml for that thing.

[译文] [Grady Booch]: 第三个轴是“复杂度(Complexity)”。如果我构建的一个系统是人们已经做过无数次的,那么见鬼,我什么都不需要。天哪,这就是提示词工程(Prompt Engineering)发挥作用的地方,我可以通过写提示词来构建应用,因为我们已经造过这些东西了,我根本不需要什么该死的 UML。

[原文] [Grady Booch]: On the other hand if I'm building something that I've never built before let's say I'm building not an llm but I'm building a constellation of llms work together and I want to weave them together with non- neural systems then you begin to think about architecture and that's what the uml comes into play.

[译文] [Grady Booch]: 另一方面,如果我正在构建以前从未构建过的东西,比方说我不是在构建一个大语言模型(LLM),而是在构建一个由多个 LLM 协同工作的“星群(Constellation)”,并且我想将它们与非神经系统编织在一起,那么你就开始需要思考架构了,这就是 UML 发挥作用的地方。

[原文] [Grady Booch]: There's a sweet spot for a tremendous amount of software development going into place that doesn't need the uml and does not need any kind of thing like that but on the other hand you go a little further out in that three dimensions and yes there are people all over the place using uml I mentioned the James web Space Telescope I still work of financial companies who are doing that where the risk the complexity uh the ceremony is sufficiently high that it Demands a bit more formalism.

[译文] [Grady Booch]: 对于目前正在进行的大量软件开发来说,有一个“甜蜜点(Sweet Spot)”,那里不需要 UML,也不需要任何类似的东西。但另一方面,如果你在这个三维坐标系中往外走远一点,是的,到处都有人在使用 UML。我提到过詹姆斯·韦伯太空望远镜,我还和一些正在使用它的金融公司合作,在那些地方,风险、复杂度、仪式感都足够高,这就要求更多一点的形式主义。

[原文] [Host]: Do I understand that these are the changes that are are in play with software architecture and is this why like some of these formal methods are just not as popular with startups and scale UPS.

[译文] [Host]: 我是否可以这样理解,这就是软件架构正在发生的变化?这就是为什么像这样的一些形式化方法在初创公司和成长型公司中不那么流行的原因?

[原文] [Grady Booch]: Yes in fact I think it goes to the root of the economics of software development let's go back to the first age of software uh first golden age the machines were far more expensive than the humans and so it required one to do some thinking before I even got to the machine because machine time was very very expensive for me.

[译文] [Grady Booch]: 是的。事实上,我认为这触及了软件开发的经济学根源。让我们回到软件的第一时代,第一黄金时代,那时机器比人贵得多,所以甚至在我接触机器之前,就需要先进行思考,因为机器时间对我来说非常非常昂贵。

[原文] [Grady Booch]: And so yes uh algorithmic decomposition structured analysis design techniques made a lot of sense because we needed that kind of optimization if you move to contemporary times cop reputational resources are like water to a fish they're they're available to anybody.

[译文] [Grady Booch]: 所以是的,算法分解、结构化分析设计技术在当时非常有意义,因为我们需要那种优化。如果你来到当代,计算资源就像鱼身边的水一样,任何人都可以随手获取。

[原文] [Grady Booch]: I've got on my desk behind me I've got a a a my own personal cloud of four Nvidia single board computers which has more processing power that existed in the world in the 1970s and that's pretty amazing that's a few thousand dollar there and so the economics have changed vastly such that that you don't need to think about it so much because heck it becomes disposable.

[译文] [Grady Booch]: 在我身后的桌子上,我自己搭建了一个由四块英伟达单板计算机组成的“个人云”,其算力超过了 1970 年代全世界算力的总和。这太惊人了,而且只需几千美元。因此,经济状况发生了巨大的变化,你不需要思考那么多,因为见鬼,它变得可抛弃(disposable)了。


章节 6:架构师角色的重塑:系统性问题、迁移之痛与熵增

📝 本节摘要

在本节中,Grady Booch 深入探讨了软件架构师角色的演变。他指出,随着软件工程抽象层级的不断提升,架构师的工作重心已从纯粹的软件设计转向了涉及云服务选型、成本控制的“系统性”与“经济性”决策,这催生了“解决方案架构师”这一新角色。针对让无数企业头疼的“系统迁移”问题,Booch 提出了一个经典论断:“代码是真理,但不是全部真理”,因为代码无法记录设计背后的决策理由(Rationale)。最后,他借用林纳斯·托瓦兹(Linus Torvalds)与 Linux 内核的例子,阐述了“概念完整性”对于对抗软件熵增(Entropy)的关键作用。

[原文] [Host]: Speaking of software architecture these is the role software architect is not really popular anymore at least at the likes of startups and and big Tech instead we do have Architects but they're inclusing called staff engineer principal engineer distinguished engineer the architecture is and they do still do architecture but there's a different focus on it now you were there when software architecture was created when the first software Architects were created as a role can you tell us how you've seen this role be created and then evolved throughout the decades.

[译文] [Host]: 说到软件架构,现在“软件架构师”这个角色似乎不再那么流行了,至少在初创公司和大型科技公司是这样。取而代之的是,我们有架构师,但他们越来越多地被称为主任工程师(Staff Engineer)、首席工程师(Principal Engineer)或杰出工程师(Distinguished Engineer)。他们仍然在做架构工作,但关注点似乎有所不同。当软件架构最初诞生,当第一批软件架构师作为一个角色出现时,你就在现场。你能告诉我们,你所看到的这个角色是如何产生的,以及在过去几十年中是如何演变的吗?

[原文] [Grady Booch]: So two things influenced my understanding of the space first is I didn't really call myself an architect but I helped people design the systems they were building I was heavily influenced by a dear friend of mine Mary Shaw... and she wrote this really profound book called software architecture in which she began the first exposition of architectural patterns... and that's when I began to understand the formalizations of what architecture could be.

[译文] [Grady Booch]: 有两件事影响了我对这个领域的理解。首先,我并没有真的称自己为架构师,但我帮助人们设计他们正在构建的系统。我深受我的一位挚友 Mary Shaw 的影响……她写了一本非常深刻的书叫《软件架构(Software Architecture)》,那是对架构模式最早的阐述……那时我开始理解架构可能具备的形式化定义。

[原文] [Grady Booch]: Ignore the title for a moment and let's go back to First principles what is it at all and you've probably heard me say this all architecture is design but not all design is architecture architecture represents the set of significant design decisions that shape the form and function of a system where significant is measured by cost of change.

[译文] [Grady Booch]: 暂时忽略头衔,让我们回到第一性原理:它到底是什么?你可能听我说过这句话:所有架构都是设计,但并非所有设计都是架构。架构代表了一组决定系统形式和功能的重大设计决策,其中“重大”与否是通过变更成本(Cost of Change)来衡量的。

[原文] [Grady Booch]: So software architecture and architect has this this horrible emotional baggage around it so think of it as it's all about making decisions what are the decisions that shape my system as an architect that's what I'm doing.

[译文] [Grady Booch]: “软件架构”和“架构师”这两个词背负着沉重的情感包袱。所以不如把它想成:这一切都是关于做决策。作为一名架构师,我要做的是那些塑造系统形态的决策。

[原文] [Grady Booch]: There's another uh sound bite I'll give you which is that the entire history of software engineering is one of rising levels of abstraction so what we're seeing here is the rise of another level of abstractions which gives us all these extraordinarily powerful Frameworks from which I can build systems...

[译文] [Grady Booch]: 我再给你一句金句:整个软件工程的历史,就是一部抽象层级不断提升的历史。所以我们现在看到的是另一个抽象层级的兴起,它为我们提供了所有这些极其强大的框架来构建系统……

[原文] [Grady Booch]: So now becomes a decision what cloud service do I use what messaging system do I use what platform do I use that's the decision which has a lot of economic decisions and not just not just uh uh not just software kinds of decisions associated with it so I think the role of the architect in effect has changed because now I'm dealing with systemic problems not just software problems themselves.

[译文] [Grady Booch]: 因此现在的决策变成了:我用什么云服务?我用什么消息系统?我用什么平台?这不仅是软件层面的决策,更是包含大量经济考量的决策。所以我认为架构师的角色实际上已经改变了,因为我现在处理的是系统性问题(Systemic Problems),而不仅仅是软件本身的问题。

[原文] [Host]: And have you heard about the role called Solutions architect I think it was created maybe 10 years ago yeah and it's about people who are doing Cloud architecture it's it's fascinating it's is a ro specific to the cloud and as you said they they make economic decisions what services do I use do I use AWS gcp if I use AWS do I use ec2 or do I use another service.

[译文] [Host]: 你听说过“解决方案架构师(Solutions Architect)”这个角色吗?我想它大概是 10 年前出现的。是的,它是关于那些做云架构的人,这很迷人,这是一个专门针对云的角色。正如你所说,他们做的是经济决策:我用什么服务?AWS 还是 GCP?如果用 AWS,我是用 EC2 还是其他服务?

[原文] [Grady Booch]: Yeah and that's why it's a system systemic issue you generally if you're a startup you're going to hire somebody who's done that before who knows where the skeletons are buried who knows who knows you know what the costs of these things are... and they are systemic decisions because they have economic and long-term Associated consequences to them.

[译文] [Grady Booch]: 是的,这就是为什么它是一个系统性问题。如果你是一家初创公司,通常你会雇佣一个以前做过这事的人,一个知道“尸骨埋在哪里(where the skeletons are buried,意指知道隐患所在)”的人,一个知道这些东西成本几何的人……这些都是系统性决策,因为它们伴随着经济上的和长期的后果。

[原文] [Host]: One thing what comes up with software architecture is migrations... How do you think software architecture and migrations are connected and why do you think software migrations are just so darn hard and they don't seem to be going away.

[译文] [Host]: 提到软件架构,就会想到迁移(Migrations)……你认为软件架构和迁移之间有什么联系?为什么你认为软件迁移如此艰难,而且它们似乎永远不会消失?

[原文] [Grady Booch]: They are migrations will will plag us until the heat death of the cosmos uh I believe because there's always you're always building economically viable software but then the technology is changing out from under you that compels you to consider migrating.

[译文] [Grady Booch]: 它们确实不会消失。迁移将一直折磨我们,直到宇宙热寂(Heat Death of the Cosmos)。因为你总是在构建经济上可行的软件,但底层的技术却在不断变化,这就迫使你不得不考虑迁移。

[原文] [Grady Booch]: But why is it hard well another sound bite I'll give you is that um the code is the truth but the code is not the whole truth there is so much that is outside of the code that represents design decisions they're rationale uh what I why I chose this versus why I didn't choose that subtle things as to why did I name things this way way because of its impact that is is long understood long misunderstood.

[译文] [Grady Booch]: 但为什么迁移这么难?我要再给你一句金句:代码是真理,但代码不是全部真理(The code is the truth, but the code is not the whole truth)。有太多的东西是在代码之外的,它们代表了设计决策、代表了理由(Rationale)——为什么我选了这个而不是那个?为什么我这样命名?这些微妙之处往往长期被误解。

[原文] [Grady Booch]: And so while the code may be the truth the problem with moving migrations is that you lose there's a there's a loss of information and it's difficult to to try to recreate those design decisions just from the code the people who wrote that initial code you're trying to move they may have they they probably cashed out or they've died or some combination of and so you you don't you don't really know why those decisions were made and so you're working a little bit in the dark.

[译文] [Grady Booch]: 所以,虽然代码可能是真理,但迁移的问题在于你会丢失信息。仅凭代码很难重现那些设计决策。那些写下初始代码的人,你要迁移的那些代码的作者,可能已经套现离场了,或者已经去世了,或者是两者的结合。所以你根本不知道当初为什么做这些决定,你是在黑暗中工作。

[原文] [Host]: Yeah you're you're mentioning people have died and I don't think we usually think about that but I guess when you're thinking about systems that are 40 50 years old that is the reality of some of them.

[译文] [Host]: 是啊,你提到了人们去世的情况,我想我们通常不会考虑到这点,但如果你考虑到那些已有 40 或 50 年历史的系统,这确实就是现实。

[原文] [Grady Booch]: Is what will the Lennox Colonel look like when lonus eventually retires so how will it how will it drift because he has provided a firm and much needed hand upon the conceptual Integrity of that system and that's what the the chief decider makes he or she is the one that provides that conceptual integrity and when that person is gone then you naturally see drift and that's inevitable it's it's the uh it's entropy software all software exhibits some degrees of entropy without that without adding that kind of uh Force to it.

[译文] [Grady Booch]: 这就像是,当林纳斯(Linus Torvalds)最终退休时,Linux 内核会变成什么样?它会如何漂移?因为他对该系统的概念完整性(Conceptual Integrity)提供了一只坚定且非常必要的手。这就是“首席决策者”的作用,他/她提供了这种概念完整性。当这个人离开后,你自然会看到漂移,这是不可避免的。这就是熵(Entropy)。如果没有那种力量去约束,所有软件都会表现出某种程度的熵增。


章节 7:AI浪潮冷思考:从沃森(Watson)到大语言模型的“随机鹦鹉”论

📝 本节摘要

本节中,Grady Booch 回顾了他与 AI 的渊源,特别是他重返 AI 领域的契机——记录 IBM Watson(沃森)的架构。他揭示了曾击败人类的 Watson 其实并非神经网络,而是一个统计学的管道架构。他曾因直言不讳地警告 IBM 高层不要过度炒作 AI 而被边缘化,但事实证明他的担忧并非多余。面对如今的大语言模型(LLM),Grady 表现出极度的冷静与批判性:他将其称为“不可靠的叙述者”和“全球规模的胡扯生成器”,引用“随机鹦鹉”理论,指出它们并不具备真正的推理能力。他更与 Gary Marcus 站在同一战线,反驳 Sam Altman 和 Elon Musk 的“扩大规模即得通用人工智能(AGI)”论调,认为当前的架构无法通向真正的智能。

[原文] [Host]: One thing that is very relevant today in terms of Technologies and architecture is AI... have you seen something that was comparable in terms of impact or the pace of change?

[译文] [Host]: 如今在技术和架构方面,有一件事非常相关,那就是 AI……你是否见过在影响力或变革速度方面能与之相提并论的事物?

[原文] [Grady Booch]: The first I think was just the realization that I could build distributed systems... but I would not say that llms are as pervasively as important as the rise of of distributed systems but there's a parallel to it.

[译文] [Grady Booch]: 我认为第一个是意识到我可以构建分布式系统……但我不会说大语言模型(LLM)像分布式系统的兴起那样具有普遍的重要性,不过两者确实有相似之处。

[原文] [Host]: So let's go into that I'd love to hear your candid thoughts about llms their applicability The Innovation and the tradeoffs that they come with.

[译文] [Host]: 那么让我们深入探讨一下。我很想听听你对大语言模型的坦率看法,包括它们的适用性、创新性以及随之而来的权衡。

[原文] [Grady Booch]: Well so to set the stage before people worry that I'm just pontificating about things I know nothing about... it wasn't until IBM drew me back to it around the time of Watson that I began to make it a full-time thing.

[译文] [Grady Booch]: 好的,为了在人们担心我只是在对自己一无所知的事情指手画脚之前做个铺垫……直到 IBM 在沃森(Watson)时期把我拉回这个领域,我才开始全职从事 AI 工作。

[原文] [Grady Booch]: David fuchi who led the development of Watson... had called me and said hey Grady... would you do it for me... and the topic I chose is what is the architecture of Watson Jeopardy and as it turns out nobody had documented it.

[译文] [Grady Booch]: 领导 Watson 开发的 David Ferrucci 打电话给我说:“嘿,Grady……你能帮我做这件事吗?”……我选择的主题是“Watson Jeopardy 的架构是什么”。结果证明,从来没有人记录过它。

[原文] [Grady Booch]: It's not a neural network system it turns out to be a pipeline architecture that through a pipeline brought together a number of statistical systems... and so I documented the architecture that caught the eye of IBM management.

[译文] [Grady Booch]: 它不是一个神经网络系统,结果证明它是一个管道架构(Pipeline Architecture),通过管道汇集了许多统计系统……于是我记录了这个架构,这引起了 IBM 管理层的注意。

[原文] [Grady Booch]: So IBM asked me hey Grady this is cool stuff we're going to we're going to commercialize this would you please you know help us do a study as to what IBM should do with this.

[译文] [Grady Booch]: 所以 IBM 问我:“嘿,Grady,这东西很酷,我们要将其商业化,能不能请你帮我们做一个研究,看看 IBM 应该用它做什么?”

[原文] [Grady Booch]: And I made it very clear to IBM management this is pretty cool but be careful because there are things we know it can't do and I was very clear to our management that be careful about hyping it.

[译文] [Grady Booch]: 我非常明确地向 IBM 管理层表示:这确实很酷,但要小心,因为我们知道有些事情它是做不到的。我很清楚地告诉管理层,要小心过度炒作。

[原文] [Grady Booch]: Well remember in my meeting with uh with Jenny when I was doing the briefing... one of the VPS stepped in... and said well yada yada and I politely said to him well thank you but I think you're wrong... Now they didn't they did not in invite me to join the Watson group so I was happy with that.

[译文] [Grady Booch]: 记得我在给 Jenny(注:时任 IBM CEO Ginni Rometty)做简报的会议上……其中一位副总裁插话进来说了一堆废话,我礼貌地对他说:“谢谢你,但我认为你是错的。”……后来他们并没有邀请我加入 Watson 团队,我也乐得清闲。

[原文] [Grady Booch]: So that now leads us finally back to your question what do I think about large language models the answer is they're pretty freaking cool however they are by the very nature of their architecture unreliable narrators.

[译文] [Grady Booch]: 这最终把我们带回了你的问题:我怎么看大语言模型?答案是,它们确实酷毙了。然而,就其架构本质而言,它们是“不可靠的叙述者(Unreliable Narrators)”。

[原文] [Grady Booch]: If I'm going to be impolite I will say they allow us to build that global scale bullshit generators because they are clearly they are stochastic parrots they do not reason they do not understand but they do produce some very coherent results because they allow us to navigate a latent space that has been made very complex through training it through the Corpus of the internet.

[译文] [Grady Booch]: 如果我要不客气一点,我会说它们让我们构建了“全球规模的胡扯生成器(Global Scale Bullshit Generators)”。因为很明显,它们是“随机鹦鹉(Stochastic Parrots)”,它们不推理,它们不理解,但它们确实能产生非常连贯的结果,因为它们允许我们在这个通过互联网语料库训练得非常复杂的潜在空间(Latent Space)中进行导航。

[原文] [Grady Booch]: But again we have to be careful Gary Marcus and I have been voracious and consistent critics of Sam and others who are saying we're just on the cusp of AI AGI.

[译文] [Grady Booch]: 但我要再次强调,我们必须小心。Gary Marcus 和我一直是 Sam(Altman)和其他那些声称“我们正处于通用人工智能(AGI)风口浪尖”的人的如饥似渴且始终如一的批评者。

[原文] [Grady Booch]: Well I think that diminishes the Elegance of what AGI actually is within our humans it diminishes what the beauty of what our human intelligence is and frankly we're not going to get there by scaling we've already seen we're we're hitting we're hitting limitations upon it.

[译文] [Grady Booch]: 我认为这种说法贬低了人类 AGI 本身的优雅,贬低了人类智能之美。坦率地说,我们不可能通过单纯的扩大规模(Scaling)达到那个境界,我们已经看到我们正在触及它的极限。

[原文] [Grady Booch]: Elon whom I've gotten into as well on the internet a number of times... he's been promising full self-driving for years now we're not going to get there because those kinds of models are simply they're the wrong architecture.

[译文] [Grady Booch]: 还有 Elon(Musk),我也在网上和他交锋过好几次……他多年来一直承诺全自动驾驶,但我们不会达到那个目标,因为这类模型根本就是错误的架构。

[原文] [Grady Booch]: If I've got to build a nuclear power plant to build my systems I'm probably doing the wrong architecture.

[译文] [Grady Booch]: 如果我非得建造一座核电站才能构建我的系统,那我可能就是用了错误的架构。

[原文] [Grady Booch]: Yan Yan blocked me on Twitter because at the very beginning of their work galactic I called him out on it... and I kept calling him out he got tired of me doing so and eventually blocked me but this is another I told you so we are seeing the the joys and the dangers of large language models.

[译文] [Grady Booch]: Yann(LeCun)在 Twitter 上拉黑了我,因为在他们搞 Galactica 那个项目的最初阶段,我就公开指出了问题……我一直指责他,他听厌了,最终拉黑了我。但这又是另一个“我早告诉过你”的时刻,我们正在见证大语言模型的乐趣与危险。


章节 8:未来之路:具身智能、神经符号系统与给年轻工程师的建议

📝 本节摘要

在这最后的篇章中,Grady Booch 展望了通往通用人工智能(AGI)的真正路径。他认为单纯扩大 LLM 规模已面临收益递减,真正的智能必须建立在“具身认知(Embodied Cognition)”和“神经符号系统”之上——即像人类一样通过多模态感知与物理世界互动。他透露自己目前正致力于研究生物大脑(如皮层柱)的架构以启发软件设计。面对年轻工程师对 AI 取代工作的焦虑,Booch 给予了温暖而有力的建议:不要害怕,这只是抽象层级的再一次提升;去寻找无人涉足的利基领域,并享受在这个工具极其强大的时代创造的乐趣。最后,他分享了自己正在进行的两个宏大项目——通过记录 Photoshop、维基百科等系统的“竣工架构”来编写《软件架构手册》,以及制作一部类似卡尔·萨根《宇宙》风格的关于计算与人类体验的纪录片。

[原文] [Host]: It sounds you're saying that large language models by themselves will not get us to AGI but do I understand that if we combine it with other tools like neural Nets or neural symbiotic systems we can actually get closer to these intelligence systems?

[译文] [Host]: 听起来你的意思是,大语言模型本身无法带我们通向通用人工智能(AGI)。但我是否可以理解为,如果我们将它与其他工具——比如神经网络或神经符号系统——结合起来,我们实际上可以更接近这些智能系统?

[原文] [Grady Booch]: I've always believed this to be a systems engineering problem which is why... I've been focused upon neuros symbolic systems.

[译文] [Grady Booch]: 我一直认为这是一个系统工程问题,这就是为什么……我一直专注于神经符号系统(Neuro-symbolic Systems)。

[原文] [Grady Booch]: Now let me get a little philosophical for the moment... I have a theory of mind about you that through multimodal ways and my interactions with you I have a theory that says you're sentient... the human mind has evolved over Millennium to develop that through an architecture that yes it's neural in nature but on the one hand artificial neurons are a shadow not a shadow they're an echo of a whisper of What organic neurons are.

[译文] [Grady Booch]: 现在让我稍微哲学一点……我对你有一种“心智理论(Theory of Mind)”,通过多模态的方式以及我与你的互动,我推测你是原本有知觉的……人类心智经过数千年的进化,发展出了这种架构。是的,它本质上是神经的,但一方面,人工神经元只是有机神经元的一个影子——不,连影子都算不上,它们只是有机神经元回声的一丝低语。

[原文] [Grady Booch]: Furthermore if you look at the architecture of large language models which as you observed are relatively simple there's a simple layering to them which ignores the Exquisite complexity of the human mind we have in our cerebral cortex uh cortical columns we have tens of millions of them...

[译文] [Grady Booch]: 此外,如果你看看大语言模型的架构,正如你所观察到的,它们相对简单,只有简单的分层,这忽略了人类心智的精致复杂性。我们在大脑皮层中有皮层柱(Cortical Columns),我们有数千万个这样的结构……

[原文] [Grady Booch]: That brings me back to my roots again what is embodiment it's Building Systems that are in and of the world that that respond to the world and act in the world large language models are largely unimodel they work through text maybe static images... but they're very sensory sparse our minds and our intelligence have grown because they've been embodied in the world.

[译文] [Grady Booch]: 这让我回到了我的本源:什么是“具身(Embodiment)”?它是构建那些身处世界之中、属于这个世界、能对世界做出反应并在世界中行动的系统。大语言模型很大程度上是单模态的,它们通过文本工作,也许还有静态图像……但它们的感官非常稀疏。我们的心智和智能之所以成长,是因为它们是具身于这个世界的。

[原文] [Host]: And what advice would you have for software Engineers who are just starting out... indeed when co-pilot and chat GPD came out I received a flood of messages from folks saying my gosh have I chosen the wrong career because you're not going to need developers at all.

[译文] [Host]: 对于那些刚刚起步的软件工程师,你有什么建议?确实,当 Copilot 和 ChatGPT 出来时,我收到了大量信息,人们说:“天哪,我是不是选错了职业?因为以后根本不需要开发人员了。”

[原文] [Grady Booch]: You will always need people who make informed decisions no matter what the language is software engineering again is one of rising levels of abstraction it just that our tools have changed.

[译文] [Grady Booch]: 我们永远需要能够做出明智决策的人,无论使用什么语言。软件工程再一次经历了抽象层级的提升,仅仅是我们的工具变了而已。

[原文] [Grady Booch]: So the ad i' give such folks is twofold uh don't worry don't be afraid there's always going to be some really cool work for you to do there... in many ways you were limited only by your imagination.

[译文] [Grady Booch]: 所以我给这些人的建议是双重的:不要担心,不要害怕,总会有真正很酷的工作等着你去做……在很多方面,你唯一的限制就是你的想象力。

[原文] [Grady Booch]: And so what I encourage people to do is to first learn as much as you can second don't get stuck in just one domain... find some space that nobody's in right now and go make a name for yourself there... and the third thing i' advise is go have some fun I mean my gosh the toys we have at our disposal they're amazing and wonderful and cheap.

[译文] [Grady Booch]: 所以我鼓励大家做的是:第一,尽可能多地学习;第二,不要只困在一个领域……去寻找那些目前还没人涉足的空间,并在那里闯出名堂……第三个建议是,去享受乐趣。天哪,我们手头可用的“玩具”太惊人、太美妙且太便宜了。

[原文] [Grady Booch]: I'm having a tremendous amount of fun... there are two projects that I'm engaged in... the first is I've been trying to write a book on architecture... this is a different architecture book rather than saying here's how you do it I've been I've been working with a number of companies to document their ASB built architectures... so I'd like to put Alpha fold in it Photoshop is in it... what's the architecture of Wikipedia.

[译文] [Grady Booch]: 我现在玩得非常开心……我正在进行两个项目。第一个是我一直想写的一本关于架构的书……这是一本不同的架构书,不是教你“怎么做”,而是我正在与许多公司合作,记录他们“已建成(As-built)”的架构……我想把 AlphaFold 放进去,Photoshop 已经在里面了……还有维基百科的架构是什么。

[原文] [Grady Booch]: The second book is... I've been on a journey to do a documentary and writing a book about um Computing The Human Experience which looks at the history of computing and what it means to be human... like Carl Sagan's Cosmos.

[译文] [Grady Booch]: 第二本书……我正在制作一部纪录片并写一本书,名为《计算:人类体验(Computing: The Human Experience)》,它审视计算的历史以及生而为人的意义……就像卡尔·萨根的《宇宙》那样。

[原文] [Host]: And let's wrap up with some rapid questions... what was the first programming language that you used?

[译文] [Host]: 让我们用一些快问快答来结束……你使用的第一种编程语言是什么?

[原文] [Grady Booch]: For Tran.

[译文] [Grady Booch]: Fortran。

[原文] [Host]: What project did you commit code most recently and what language did you use in it?

[译文] [Host]: 你最近提交代码的项目是什么?用了什么语言?

[原文] [Grady Booch]: My own project self python.

[译文] [Grady Booch]: 我自己的项目“Self”,用的 Python。

[原文] [Host]: What are two books you would recommend for those who would like to understand more about software architecture?

[译文] [Host]: 对于那些想深入了解软件架构的人,你会推荐哪两本书?

[原文] [Grady Booch]: Mary Shaw's book software architecture I'd read that one other books kind of pale in comparison but I'd start there.

[译文] [Grady Booch]: Mary Shaw 的书《软件架构(Software Architecture)》。我会读那本,其他的书相比之下都显得逊色,我会从那本开始。