The third golden age of software engineering – thanks to AI, with Grady Booch
### 章节 1:软件工程的定义与本质 📝 **本节摘要**: > 本节追溯了“软件工程”这一术语的起源,由玛格丽特·汉密尔顿(Margaret Hamilton)在阿波罗计划期间为区别于硬件工程师而首创,后经北约(NATO)会议推广。Grady Booch 深刻定义了软件工程的本质:它并非单纯的...
Category: AI📝 本节摘要:
本节追溯了“软件工程”这一术语的起源,由玛格丽特·汉密尔顿(Margaret Hamilton)在阿波罗计划期间为区别于硬件工程师而首创,后经北约(NATO)会议推广。Grady Booch 深刻定义了软件工程的本质:它并非单纯的编码,而是像传统工程学(如土木、电气)一样,在一种极具流动性与弹性的媒介中,平衡物理规律、算法限制、人力资源、法律以及伦理道德等多重相互冲突的力量。
[原文] [Speaker A]: So Grady it's great to have you back on the podcast again.
[译文] [Speaker A]: Grady,很高兴再次邀请你来到播客。
[原文] [Speaker B]: Thanks for having me, aloha.
[译文] [Speaker B]: 谢谢邀请,阿罗哈(Aloha)。
[原文] [Speaker A]: So touching a little bit on the the history of of software engineering you've said many times before that the entire history of software engineering is one of rising levels of abstraction.
[译文] [Speaker A]: 聊一点关于软件工程的历史,你曾多次提到,软件工程的整个历史就是一个抽象层次不断提升的过程。
[原文] [Speaker A]: Can you walk us through the key inflection points that help us understand this and then of course tie it into how AI is is all tying into this?
[译文] [Speaker A]: 你能带我们梳理一下那些帮助我们理解这一点的关键转折点吗?当然,也要结合当下人工智能是如何融入这一进程的。
[原文] [Speaker B]: Well the very term software engineering did not come to be until Margaret Hamilton was probably the first to uh anoint it.
[译文] [Speaker B]: 嗯,直到玛格丽特·汉密尔顿(Margaret Hamilton)大概第一个正式使用了这个词,“软件工程”这个术语才真正诞生。
[原文] [Speaker B]: She at the time had just left the man orbiting laboratory project she was working on the Apollo program and she was one of the very few people who were software developers in a sea of mostly men who were the hardware structural engineers and she wanted to come up with a phrase that distinguished herself from the others so she began using the term software engineer.
[译文] [Speaker B]: 当时她刚刚离开载人轨道实验室项目,正参与阿波罗计划。在一大群主要是男性硬件结构工程师的海洋中,她是极少数的软件开发人员之一。她想用一个词组来将自己与其他人区分开来,于是开始使用“软件工程师”这个称呼。
[原文] [Speaker B]: And I think we can rightfully give her the claim to the first one that coined that.
[译文] [Speaker B]: 我认为我们可以理所当然地把首创这个词的功劳归于她。
[原文] [Speaker B]: There were others that followed most notably people talk about the NATO conference uh on software engineering and when the organizers established that which was actually a few years after Margaret's work they did so as kind of a controversial name not unlike how the term artificial intelligence was named controversially for its first conference on the west coast.
[译文] [Speaker B]: 后来还有其他人跟进,最著名的是人们常谈论的关于软件工程的北约(NATO)会议。当组织者确立这个会议时——其实是在玛格丽特工作几年之后——他们起这个名字在当时是具有争议性的,就像“人工智能”这个术语在西海岸第一次会议上被命名时一样充满争议。
[原文] [Speaker B]: Um so there were others that followed and after a period of time it kind of stuck and I think what it meant the essence of what Margaret and others were doing is to say there's something engineeringish about it in the sense that ours is a field that tries to build reasonably optimal solutions you can't have perfect solutions that balances the static and dynamic forces around them much like what structural electrical chemical engineers do.
[译文] [Speaker B]: 嗯,后来其他人也沿用了这个词,过了一段时间它就固定下来了。我认为玛格丽特和其他人所做工作的本质含义是想说,这其中包含着某种“工程学”的特质,即我们的领域试图构建合理的优化方案——你不可能拥有完美的方案——并在周围的静态和动态力量之间取得平衡,这很像结构工程师、电气工程师或化学工程师所做的事情。
[原文] [Speaker B]: In the software world of course we deal with the medium that is extraordinarily funible and elastic and fluid and yet we still have the same kinds of forces upon us.
[译文] [Speaker B]: 当然,在软件世界中,我们要处理的是一种极易替代、极具弹性和流动性的媒介,但我们仍然面临着同样类型的力量约束。
[原文] [Speaker B]: Here we've got the forces of the laws of physics you can't pass information faster than the speed of light which is kind of annoying in some cases but hey we'll have to live with it.
[译文] [Speaker B]: 在这里,我们要面对物理定律的力量,你无法以超过光速的速度传递信息,这在某些情况下挺烦人的,但嘿,我们必须接受它。
[原文] [Speaker B]: There are issues about how large we could build things largely constrained by our hardware below us there are constraints we have on the algorithmic side of things we may know theoretically how to do something such as the vertalry algorithm which was essential to the creation of cellular phones for the longest time we didn't know how to implement it but there was indeed a calculable solution similar stories with regards to fast forier transform we knew the theory but until Forier transforms could be turned into something computational we couldn't pro progress.
[译文] [Speaker B]: 我们能构建多大的系统也存在问题,这主要受限于底层的硬件;我们在算法方面也有约束,我们可能理论上知道如何做某事,比如维特比算法(Viterbi algorithm),这对手机的发明至关重要,但在很长一段时间里我们不知道如何实现它,尽管确实存在一个可计算的解。关于快速傅里叶变换(FFT)也有类似的故事,我们知道理论,但直到傅里叶变换能转化为某种可计算的形式,我们才得以进步。
[原文] [Speaker B]: And there are also other constraints upon us not just these scientific ones and and the computer sciency ones but constraints such as the human ones.
[译文] [Speaker B]: 此外我们还面临其他约束,不仅仅是这些科学的和计算机科学层面的,还有诸如人为因素的约束。
[原文] [Speaker B]: Uh can I get enough people to do what I need to do can I organize teams doing what I want to do ideally the largest team size you want for software is zero well that's not very practical the next best one is one and then it kind of grows from there.
[译文] [Speaker B]: 嗯,我能找到足够的人来做我需要做的事吗?我能组织团队做我想做的事吗?理想情况下,软件开发最大的团队规模应该是零,但这不太现实,其次最好是一个人,然后由此逐渐增加。
[原文] [Speaker B]: And there are projects that simply are of a certain scale that you cannot conceive of them being done by a small group of people i mean why do any of the large projects we have have a cadre of folks in them it's because the footprint of these systems and their enduring economic and social importance is so great you can't rely upon just an individual that software must endure beyond them.
[译文] [Speaker B]: 有些项目的规模是你无法想象由一小群人就能完成的。我是说,为什么我们所有的大型项目都有一大批人员参与?这是因为这些系统的覆盖范围及其持久的经济和社会重要性是如此巨大,你不能仅仅依赖于个人,软件必须比个人的存在更长久。
[原文] [Speaker B]: And increasingly as software moves into the interstitial spaces of the world we have the legal issues uh such as we see with you know digital rights management but I think more importantly and overarching the ethical issues we know how to build certain things but should we build them is it the right thing for us to do in our humanity.
[译文] [Speaker B]: 而且随着软件日益渗透到世界的各个缝隙中,我们面临着法律问题,比如我们看到的数字版权管理(DRM),但我认为更重要且更具压倒性的是伦理问题:我们知道如何构建某些东西,但我们应该构建它们吗?从人性的角度看,这样做正确吗?
[原文] [Speaker B]: So these are the collection of things that are in a way well not in a way but absolutely are the static and dynamic forces that weigh upon a software engineer and that's why I can say we are engineers because much like the other kinds of engineers we build systems that balance those forces and we do so in a medium that is absolutely wonderful so that's software engineering.
[译文] [Speaker B]: 所以,正是这些事物的集合——某种程度上,不,是绝对地——构成了压在软件工程师身上的静态和动态力量。这也是为什么我说我们是工程师,因为就像其他类型的工程师一样,我们构建系统来平衡这些力量,而且我们是在一种绝对奇妙的媒介中进行这项工作。这就是软件工程。
📝 本节摘要:
本节回顾了软件工程的“第一黄金时代”(约1940年代末至1970年代末)。Grady Booch 描述了软件如何从最初与硬件密不可分的“插线板”时代,逐渐演变为一个独立的行业。这一时期的核心特征是算法抽象(Algorithmic Abstraction),因为计算资源极其昂贵,优化的重点在于机器效率而非人力成本。虽然商业应用主要集中在薪资和数值计算上,但真正的创新——如实时系统、分布式处理和人机交互——主要发生在受冷战威胁驱动的国防工业边缘(如SAGE系统)。Grady 提出了一个深刻的观点:现代计算技术的许多基础,实际上是“编织在悲伤的织布机上”(woven upon the loom of sorrow),源于战争的需求。
[原文] [Speaker B]: Now I mentioned in our last call there are certain ages of software engineering and I think as we look from the from the lens of looking backward there are at least two identifiable major epics in software engineering.
[译文] [Speaker B]: 我在上次通话中提到过软件工程有特定的时代,我认为当我们从回溯的视角来看时,软件工程中至少有两个可识别的主要时期。
[原文] [Speaker B]: In the earliest days there was no software because what we did was simply managing our machines and the difference between the hardware and the software was completely indistinguishable you know putting plugs in a plugboard as was happened with the ENIAC is that programming well yes but there's not really software there it's something else.
[译文] [Speaker B]: 在最早的日子里,并不存在“软件”,因为我们要做的仅仅是管理机器,硬件和软件之间的区别完全无法区分。你知道,就像在 ENIAC 上那样把插头插进插线板,那是编程吗?嗯,是的,但那里并没有真正的软件,那是另一种东西。
[原文] [Speaker B]: And it wasn't until our machines came to the point in late 40s early 50s that we began to find a difference for them most of this software written at that time was bespoke well really all of it was and virtually all that software was tied to a particular machine but the economics of software were sh such that we love these machines we'd like them to be faster but gosh we put a lot of investment in the software itself is there a way to decouple these kinds of things.
[译文] [Speaker B]: 直到40年代末50年代初,我们的机器发展到了某个阶段,我们才开始发现它们的区别。当时编写的大部分软件都是定制的——好吧,实际上所有的都是——而且几乎所有软件都绑定在特定的机器上。但软件的经济学状况是这样的:我们喜欢这些机器,希望它们更快,但天哪,我们在软件本身投入了大量资金,有没有办法把这些东西解耦呢?
[原文] [Speaker B]: We talk about the recent history of our of our world the term digital was not coined until the late 40s the term software was not done until the 50s and so even the acknowledgement that software was an entity unto itself was just about in my lifetime which is frightening to think about.
[译文] [Speaker B]: 我们谈论这个世界的近代史,“数字”(digital)一词直到40年代末才被创造出来,“软件”(software)一词直到50年代才出现。所以,即使是承认软件是一个独立实体这一点,也仅仅发生在我的一生之中,这想起来挺吓人的。
[原文] [Speaker A]: Yeah like 70 80 years ago wow yeah yeah exactly.
[译文] [Speaker A]: 是的,也就70、80年前,哇,是啊,确实如此。
[原文] [Speaker B]: So this is this were an astonishingly young young industry if you were to take Carl Sean's cosmic calendar and uh and put software in it we would be in the last few nanoseconds of that cosmic calendar it would be less than a blink of an eye.
[译文] [Speaker B]: 所以这是一个惊人地年轻的行业。如果你拿卡尔·萨根(Carl Sagan)的宇宙历来看,把软件放进去,我们大概处于宇宙历的最后几纳秒,连眨眼的一瞬间都不到。
[原文] [Speaker B]: But anyway as software began began to be decoupled from hardware itself then folks such as Grace Hopper and others were beginning to realize that this is a thing that we could treat as a business and an industry as an institution unto itself.
[译文] [Speaker B]: 但无论如何,随着软件开始与硬件本身解耦,像格蕾丝·霍珀(Grace Hopper)这样的人开始意识到,这是一个我们可以将其视为商业、行业乃至一个独立制度的事物。
[原文] [Speaker B]: So the earliest software of course was as it was software itself was assembly language which was very much tied to the machine and jumping ahead a little bit as IBM came along in the '60s recognizing that there was a way to establish a whole architecture of machines with a common instruction language then it was possible to preserve software investments and yet decouple it from hardware in a way that I could improve my hardware without throwing away the software.
[译文] [Speaker B]: 最早的软件当然是汇编语言,它与机器紧密绑定。稍微快进一点,当 IBM 在60年代出现时,他们意识到有一种方法可以建立具有通用指令语言的整个机器架构,这样就有可能保护软件投资,并将其与硬件解耦,这种方式让我可以在升级硬件的同时不必扔掉软件。
[原文] [Speaker B]: Once that realization happened which was both an engineering decision a business decision and overall an economic decision then the floodgates opened up and all of a sudden we had a lot more software that could be and needed to be written.
[译文] [Speaker B]: 一旦实现了这一点——这既是一个工程决策,也是一个商业决策,更是一个总体经济决策——闸门就打开了,突然之间,我们有了大量可以编写且需要编写的软件。
[原文] [Speaker B]: This was the first golden age of software engineering in which we had software was an industry unto itself and so the essential problems that world faced were problems of complexity uh complexity in that we were building things that were you know difficult to understand that were trying to manipulate our machines in some cunning ways but it was complexity that by today's standards was you know laughably simple we could you know this is the equivalent of hello world but they were problems that were hard unto themselves.
[译文] [Speaker B]: 这就是软件工程的第一黄金时代,在这个时代,软件本身成为了一个行业。那个世界面临的本质问题是复杂性问题——我们要构建难以理解的东西,试图以某种巧妙的方式操控机器。虽然按今天的标准来看,这种复杂性简直简单得可笑——就像是今天的“Hello World”级别——但对当时而言,这些问题本身是很难的。
[原文] [Speaker B]: And so because we were so coupled to the machines the primary abstraction used in the first golden age of software engineering was that of algorithmic abstraction because that's what our machines did most of our machines were meant for mathematical kinds of operations and so as as was done in forran it was a matter of building our software that could do formula translation so that was the realm and the problems faced by the first generation.
[译文] [Speaker B]: 正因为我们与机器的耦合如此紧密,软件工程第一黄金时代使用的主要抽象是算法抽象(algorithmic abstraction)。因为这正是我们的机器所做的——我们的大多数机器都是为了数学运算而设计的。所以就像 Fortran(公式翻译)所做的那样,关键在于构建能够进行公式翻译的软件。这就是第一代人所面临的领域和问题。
[原文] [Speaker A]: And and this first generation like in timeline where would you put it roughly timewise?
[译文] [Speaker A]: 那么这第一代,在时间线上,你会把它大致放在什么时间段?
[原文] [Speaker B]: I'd put it in the late 40s to the late7s or thereabouts and that's what dominated that time frame so the figures you would see would be uh Ed Jordan Tom DeMarco Larry Constantine this is when uh ERP uh sorry not entity relationship ideas came about and so these ideas of that kind of abstraction poured over not just into software but also into the data side of things as well.
[译文] [Speaker B]: 我会把它放在40年代末到70年代末左右,这是那个时间段的主流。你会看到的人物有 Ed Yourdon, Tom DeMarco, Larry Constantine。这也是实体关系(Entity Relationship)理念——抱歉刚口误说成ERP——出现的时期。所以这类抽象的理念不仅涌入了软件领域,也涌入了数据领域。
[原文] [Speaker B]: This was an extraordinarily vibrant period of time in software engineering in which we had the invention of flowcharts for example which were an aid to thinking about how to construct these kinds of systems you saw a division of labor where you had people who would analyze the system you people who would then program it people who would key punch the solutions people would operate the computers and again this was largely driven driven by economic reason because the cost of machines were far greater than the cost of the humans involved in them so a lot of what was happening was done to optimize the use of the machines which were very very rare resources.
[译文] [Speaker B]: 这是软件工程中一段极具活力的时期,例如我们发明了流程图,作为思考如何构建这类系统的辅助工具。你看到了分工的出现:有人分析系统,有人负责编程,有人负责将解决方案打孔输入,有人负责操作计算机。再次强调,这很大程度上是由经济原因驱动的,因为机器的成本远高于参与其中的人力成本,所以当时发生的很多事情都是为了优化极其稀缺的机器资源的使用。
[原文] [Speaker B]: Um the lesson in this as we'll see coming back in the next generations is that these forces much like with software engineering itself have shaped the very industry of software and economics and the whole social context also influences them.
[译文] [Speaker B]: 嗯,其中的教训——我们在后几代也会看到这一点的回归——是这些力量,就像软件工程本身一样,塑造了整个软件行业,而经济学和整个社会背景也会影响它们。
[原文] [Speaker B]: So in the first generation it was largely focused upon mathematical needs and the automation of existing business processes so what you had happen is that you would have businesses that have literal you know floors of offices with people doing accounting and payroll and like that and this was the lowhanging fruit because now all of a sudden we could accelerate those processes and actually improve their precision by pulling the human out of it and automating it so the vast amount of software written during that time was business and and mathematical and and numerical kinds of things.
[译文] [Speaker B]: 所以在第一代,重点主要集中在数学需求和现有业务流程的自动化上。当时的情况是,企业的办公室里确实坐满了好几层楼的人,在做会计和薪资核算之类的工作。这是唾手可得的果实(low-hanging fruit),因为突然之间,我们可以通过剔除人力并将其自动化来加速这些流程,并实际上提高其精确度。所以当时编写的大量软件都是商业的、数学的和数值计算类的东西。
[原文] [Speaker B]: Now this is an important thing because while this was the focus this was not the only kind of thing because you saw in the periphery or shall I say from the point of view of a person who was a programmer in that time it looked to them as the dominant places was in the IBMs the insurance companies the banks and the like there's a lot of work going on outside that world in the defense industry as well we saw people moving software and hardware into our machines of destruction into our aircraft into our missiles we saw it moving into weather forecasting we saw it moving into medical devices itself so while the concentration was the things that the general public would see a lot of stuff happening around the edges as well.
[译文] [Speaker B]: 现在这是一件重要的事情,因为虽然这是焦点,但并不是唯一的东西。如果你从当时程序员的视角看,主流似乎是 IBM、保险公司、银行之类的地方。但在那个世界之外,国防工业也在进行大量工作。我们看到人们将软件和硬件移入我们的毁灭机器、飞机和导弹中;我们看到它进入天气预报领域,甚至进入医疗设备本身。所以,虽然公众看到的集中点是那些商业应用,但在边缘地带也发生了很多事情。
[原文] [Speaker B]: I would say in the first golden age of software engineering there was this central push of algorithmic abstractions into business and numerical things but the real innovation was happening in that fringe in particular it wasn't in business cases but it was in defense cases because Russia was the clear and present threat for us at the time in which there was a need to build distributed systems of real time nature most of the systems I've talked about this were were not real time.
[译文] [Speaker B]: 我会说,在软件工程的第一黄金时代,虽然有一股将算法抽象推向商业和数值应用的核心力量,但真正的创新发生在边缘地带,特别是在国防案例而非商业案例中。因为当时俄罗斯(苏联)对我们来说是清晰且现实的威胁,我们需要构建具有实时特性的分布式系统。而我之前提到的大多数系统都不是实时的。
[原文] [Speaker B]: And so we saw the rise of of experimental machines such as whirlwind we saw the work in the mother of all demos which was experimentation of various human interface kinds of things which was not the center of gravity of of software development at the time with the things on the fringes we saw we saw researchers such as David Parnes who were coming on the scene CAR Dyster and others were forbidding to look at the formalisms of these systems and looking at treating software development is actually a formal mathematical activity.
[译文] [Speaker B]: 因此我们看到了像 Whirlwind(旋风计算机)这样的实验性机器的兴起,我们看到了“演示之母”(The Mother of All Demos)中的工作,那是对各种人机交互事物的实验,这在当时并不是软件开发的重心,而是边缘事物。我们看到了像 David Parnas 这样的研究人员登场,还有 Hoare, Dijkstra 等人,他们开始研究这些系统的形式化,并试图将软件开发视为一种形式数学活动。
[原文] [Speaker B]: And you saw the rise of I said distributed and real-time systems primarily in the defense world so from whirlwind it begat a system called sage the semi-automatic ground environment which came about during the six during the 50s and60s and indeed the last one was decommissioned I think in the 1990s this was based upon the threat of Russia this is you know pre premissiles Russia would send a fleet of bombers over the Arctic and invade the United States so thus was born the D line the distance early warning system across Canada and all that data was then fed into a series of systems called SAGE the semi-automatic ground environment.
[译文] [Speaker B]: 正如我所说,你看到了分布式和实时系统主要在国防领域兴起。从 Whirlwind 衍生出了一个叫 SAGE(半自动地面防空系统)的系统,它诞生于50年代和60年代,实际上最后一套系统我想是在90年代才退役的。这是基于来自俄罗斯的威胁——你知道那是导弹时代之前——俄罗斯可能会派出一支轰炸机机队飞越北极入侵美国。因此诞生了“D线”,即横跨加拿大的远程预警系统,所有数据都被输入到一系列称为 SAGE 的系统中。
[原文] [Speaker B]: This system was so large it consumed according to some reports easily 20 to 30% of every number of software developers in the United States at the time.
[译文] [Speaker B]: 这个系统太庞大了,据一些报告称,它轻易就消耗了当时美国所有软件开发人员总数的 20% 到 30%。
[原文] [Speaker A]: Wow that's a lot of folks but remember back in the time there were maybe only a few tens of thousands of software developers but this was the biggest project basically the military was the biggest spender uh in soft in research and moving the industry forward right because they had absolutely absolutely correct they had to because it was a clear and present threat.
[译文] [Speaker A]: 哇,那真是很多人。不过记得那时候可能只有几万名软件开发人员。但这确实是最大的项目,基本上军方是软件研究最大的金主,推动了行业发展,对吧?因为他们——绝对正确,他们不得不这样做,因为那是一个清晰且现实的威胁。
[原文] [Speaker B]: And so a lot of the innovation was happening to the defense world as I think I passed this phrase on to you in the documentary I'm working on in computing I use the phrase that there are two major influences in the history of computing one is commerce we've talked about the economics already and the second is warfare and thus I claim and I think there's much defense for it much of modern computing is really woven upon the loom of sorrow referring back to Jakard's loom so yeah a lot of the things we take for granted today like the internet uh like uh micro miniaturaturization this all came from government funding in these cases so we owe a lot to the cold war.
[译文] [Speaker B]: 所以很多创新都发生在国防领域。我想我在正在制作的计算机纪录片中跟你提过这个说法,我用了一个短语:计算机历史上有两大主要影响因素,一个是商业——我们已经谈过经济学了——另一个是战争。因此我主张——我想这有充分的论据支持——现代计算技术的许多内容实际上是“编织在悲伤的织布机上”(woven upon the loom of sorrow),这里借用了雅卡尔织布机(Jacquard loom)的典故。是的,我们今天理所当然的许多东西,比如互联网、微型化技术,都来自于这些案例中的政府资助。所以我们欠冷战很多。
[原文] [Speaker A]: This phase was this still the first golden age?
[译文] [Speaker A]: 这一阶段仍然属于第一黄金时代吗?
[原文] [Speaker B]: We passed the first golden age these are the things happening in the first golden age but what I'm pointing out is there was sort of a center of mass to it but lots of things happening on the edge that were driving software out from its primary roots.
[译文] [Speaker B]: 我们已经讲过了第一黄金时代,这些都是在第一黄金时代发生的事情。但我指出的是,当时有一种质量中心(商业应用),但在边缘发生了很多事情,推动软件脱离其原始根基。
[原文] [Speaker B]: So let's recap here in the first golden age you had the focus primarily upon mathematical and business kinds of applications and the primary means of decomposition was an algorithmic abstraction we looked at the world through processes and functions not so much through data but on the fringe we had organizations use cases that were pushing us beyond that simple place use cases that demanded distribution use cases that demanded the coupling of multiple machines and also use cases that demanded real-time processing and use cases that demanded human user interfaces.
[译文] [Speaker B]: 让我们回顾一下第一黄金时代:焦点主要集中在数学和商业应用上,主要的分解手段是算法抽象。我们通过过程和函数来看待世界,而不是数据。但在边缘地带,我们有组织和用例将我们推向超越那个简单阶段的地方——那些需要分布式、需要多机耦合、需要实时处理以及需要人机界面的用例。
[原文] [Speaker B]: The interfaces we deal with today they had their roots in whirlwind and the roots in Sage this is the first UI interface that was graphic tube a CRT and so these kinds of things were born from that so that was the point and I think the lesson from this is that software is a wonderfully dynamic fluid fungeible domain but it's also one that tends to grow because once we built something and we know how to build it and we have patterns for doing so all of a sudden we discover there economically interesting ways we can apply it elsewhere.
[译文] [Speaker B]: 我们今天处理的界面,根源都在 Whirlwind 和 SAGE 中。这是第一个 UI 界面,使用图形管、CRT 显示器,这类东西都诞生于此。所以这正是关键点,我认为从中得到的教训是:软件是一个奇妙的、动态的、流动的、可替代的领域,但它也是一个倾向于增长的领域。因为一旦我们构建了某样东西,知道如何构建它,并拥有了做这件事的模式,突然之间我们就会发现,我们可以用经济上有趣的方式将其应用到其他地方。
📝 本节摘要:
随着第一黄金时代的结束,行业迎来了“软件危机”。北约(NATO)会议揭示了当时供需的极度不平衡:需求无止境,但生产高质量软件的能力却跟不上。此时,美军面临着“巴别塔问题”——拥有多达 14,000 种编程语言。Grady Booch 深入探讨了解决这一危机的范式转移:从通过“过程”看世界(算法抽象),转向通过“事物”看世界(对象抽象)。他引用柏拉图的哲学对话,生动地解释了面向对象编程(OOP)与过程式编程的二元对立,并提及了约翰·巴科斯(John Backus)关于函数式编程的早期探索及其局限性。
[原文] [Speaker B]: So this was the first generation the first golden age of software engineering but you could begin to see cracks in the facade in the late 70s early 80s the NATO conference on uh software engineering uh was one of the first to do this in a big public way.
[译文] [Speaker B]: 这就是第一代,软件工程的第一黄金时代。但在70年代末80年代初,你开始能看到表面出现了裂痕。关于软件工程的北约(NATO)会议是最早以大规模公开方式处理这一问题的活动之一。
[原文] [Speaker B]: And for them NATO was realizing we NATO have a software problem we have an insatiable demand for software and yet our ability to produce it of quality at speed we just don't know how to do it and so this was the so-called software crisis.
[译文] [Speaker B]: 对他们来说,北约意识到:“我们北约有一个软件问题。”我们对软件有贪得无厌的需求,然而我们生产高质量、高速度软件的能力——我们根本不知道该怎么做。这就是所谓的“软件危机”。
[原文] [Speaker A]: And you know people didn't know what to do about it can you help us understand or take us back what what was the crisis about what were people like kind of like saying oh my gosh this is the problem.
[译文] [Speaker A]: 你知道人们当时不知道该怎么办。你能帮我们理解或带我们回到那个时候吗?那个危机到底是什么?人们当时在说什么?比如“天哪,这就是问题所在”之类的。
[原文] [Speaker B]: Yeah the problem was to recap was software was clearly useful there were economic incentives to use it and yet the industry could not generate quality software of scale fast enough.
[译文] [Speaker B]: 是的,简要回顾一下,问题在于软件显然是有用的,使用它有经济激励,但整个行业无法足够快地生产出大规模的高质量软件。
[原文] [Speaker A]: I see I see so it it was both expensive slow and and not good.
[译文] [Speaker A]: 我明白了,我明白了,所以它既昂贵、缓慢,又不够好。
[原文] [Speaker B]: There's a fourth one which was the demand was so great that I guess you could call it the slow the demand was so great it's like wow this is we want more of this stuff give us more software so those four things together put us in the sense of crisis.
[译文] [Speaker B]: 还有第四点,就是需求太大了。我想你可以把它归为“慢”的一类,但需求是如此巨大,就像是“哇,我们要更多这东西,给我们更多软件”。所以这四件事加在一起,让我们陷入了危机感。
[原文] [Speaker B]: Notice subtly it's not the same kind of crisis we have today where we worry about surveillance we worry about you know crashes that kind of thing so the nature of the problems have changed and they do in every every golden age.
[译文] [Speaker B]: 请注意,这与我们今天面临的危机有微妙的不同。今天我们要担心监控,担心系统崩溃之类的事情。所以问题的性质已经改变了,在每个黄金时代都会改变。
[原文] [Speaker B]: So here we are now in the late '7s and the software crisis was quite clear the US government in particular to focus on one story recognized that they had the problem of Babel and that there were so many programming languages in place by their count there were at least 14,000 different programming languages used through military systems.
[译文] [Speaker B]: 所以我们到了70年代末,软件危机已经相当明显。特别是美国政府——聚焦这就这一个故事来说——他们意识到自己面临着“巴别塔问题”(Problem of Babel)。当时存在的编程语言太多了,据他们统计,在军事系统中至少使用了 14,000 种不同的编程语言。
[原文] [Speaker A]: Oh wow back then when software was so much smaller than today wow absolutely it's incredible.
[译文] [Speaker A]: 噢,哇,那时候软件规模比今天小得多,哇,这绝对令人难以置信。
[原文] [Speaker B]: And languages like languages like Jovial was a very popular one a jovial kind of a play on words for cobalt and and the like we had the rise of algal which was not a military language but the formal forces of caor and dystra and verth led to this discipline of applying mathematical rigor to our languages and so the idea of you know formal language research was born.
[译文] [Speaker B]: 像 JOVIAL 这样的语言曾非常流行——JOVIAL 是 Jules' Own Version of the International Algebraic Language 的缩写,某种文字游戏。我们还看到了 ALGOL 的兴起,这虽然不是军事语言,但 Hoare、Dijkstra 和 Wirth 等人的形式化力量,引导了将数学严谨性应用于我们语言的学科,于是形式语言研究的概念诞生了。
[原文] [Speaker B]: You had this wonderful confluence of resources it said by the late '7s the government recognizing that we have a problem that's when they funded the ADA project... which was an attempt to remove the number of language that exist and try to reduce it to one language that ruled them all.
[译文] [Speaker B]: 资源发生了奇妙的汇聚。到了70年代末,政府意识到我们有问题,就在那时他们资助了 ADA 项目……这是一次试图消除现有大量语言,并试图将其减少到一种能够“统治一切”的语言的尝试。
[原文] [Speaker B]: At the same time you had some interesting work going on in laboratories like at Bell which had begat C and Unix and the like which was becoming incredibly important but there was this crazy researcher at the time by the name of Bjarn Struestrip who was saying wow you know this is kind of cool but hey let's take some of these ideas from simula I should mention simula which was the first object-oriented language and let's see if we can apply them to C because you know C's got problems with it let's see if we can move about.
[译文] [Speaker B]: 与此同时,像贝尔实验室这样的地方也在进行一些有趣的工作,那里诞生了 C 语言和 Unix 等变得极其重要的东西。但当时有一位疯狂的研究员叫本贾尼·斯特劳斯特卢普(Bjarne Stroustrup),他说:“哇,这挺酷的,但嘿,让我们从 Simula——我应该提一下 Simula,那是第一种面向对象语言——借鉴一些想法,看看能不能把它们应用到 C 语言上,因为你知道 C 语言有一些问题,让我们看看能不能有所改进。”
[原文] [Speaker B]: So what was happening in the background in academia and in in these fringes was the realization that we needed new kinds of abstractions and it wasn't just algorithmic abstractions But it was object abstractions.
[译文] [Speaker B]: 所以在学术界和这些边缘领域背景中发生的事情是,人们意识到我们需要新型的抽象,而且不再仅仅是算法抽象,而是对象抽象(object abstractions)。
[原文] [Speaker B]: Turns out there's an interesting history behind that dichotomy there is a discourse in Plato about that very kind of split in which he has he has a dialogue between two people who are you know talking about how I look at the world and one of them says we should look at the world in terms of its processes.
[译文] [Speaker B]: 事实证明,这种二分法背后有一段有趣的历史。柏拉图有一篇论述正是关于这种分裂的。他在对话中让两个人讨论如何看待世界,其中一个人说:“我们应该从‘过程’的角度来看待世界。”
[原文] [Speaker A]: This is the ancient Greek philosopher from like before Christ that guy that Plato he he he brought up some parallel ideas he brought up the ideas of the dichotomy of looking at the world through two lenses.
[译文] [Speaker A]: 这可是公元前的古希腊哲学家啊,那个柏拉图?他提出了类似的平行观点?他提出了通过两种镜头看世界的二分法观点?
[原文] [Speaker B]: In one of these dialogues he observed that one of the writers said oh we have to look at the world through through the processes how things flow and the other one said no no no we have to look at them through things and this is where the idea of atoms came about the very term atom came from Greek terms and and that terminology.
[译文] [Speaker B]: 在其中一段对话中,他观察到一位作者说:“噢,我们必须通过过程、通过事物的流动来看待世界。”而另一位说:“不不不,我们必须通过‘事物’(things)来看待它们。”这就是“原子”(atoms)概念的由来,原子这个词正是来自希腊语术语。
[原文] [Speaker B]: So the idea of looking at the world and looking at and looking at the world are basically abstractions is not a new one but people like Parnis and and others and the the designers of Simula said "Wait a minute we can apply these ideas to software itself and we can look at the world not just through algorithmic abstractions but we can look at them through object abstractions.
[译文] [Speaker B]: 所以,观察世界以及将世界视为抽象这一理念并不新鲜。但像 Parnas 和其他人,以及 Simula 的设计者们说:“等一下,我们可以把这些想法应用到软件本身。我们可以不仅仅通过算法抽象来看世界,还可以通过对象抽象来看世界。”
[原文] [Speaker B]: Now there's another factor that came into the place and this is where uh the inventor of Forran came into be after forran he went off and he did this at IBM of course he he was made a fellow and he went off and said this was fun but I want to do something else and he said let's let's look at a different way of programming and it was the idea of functional programming which was looking at the world through mathematical functions stateless kinds of things.
[译文] [Speaker B]: 此时还有另一个因素介入,这就是 Fortran 的发明者(John Backus)登场的地方。在发明 Fortran 之后——他当然是在 IBM 做的,还成为了 IBM Fellow——他离开后说:“这很有趣,但我想做点别的。”他说:“让我们看看另一种编程方式。”这就是函数式编程(functional programming)的想法,即通过数学函数、无状态这类东西来看待世界。
[原文] [Speaker B]: I had a chance to interview him a few a few months before he passed away and I asked asked him you know why did functional programming never make the big time and his answer was because functional programming makes it easy to do hard things but it makes it astonishingly impossible to do easy things.
[译文] [Speaker B]: 我曾在他去世前几个月有机会采访他,我问他:“为什么函数式编程从未真正大红大紫?”他的回答是:“因为函数式编程让做困难的事情变得容易,但却让做简单的事情变得惊人地不可能。”
[原文] [Speaker B]: So any rate here we are at the sort of end of the first golden age of software engineering and moving into the second.
[译文] [Speaker B]: 无论如何,我们现在正处于软件工程第一黄金时代的尾声,并即将进入第二黄金时代。
📝 本节摘要:
本节讲述了软件工程的“第二黄金时代”(约1980年代至2000年代初)。随着微型化技术(晶体管、集成电路)的成熟,个人计算机(PC)兴起,软件开发从精英机构走向了爱好者与大众,甚至深受嬉皮士反主流文化的影响。Grady Booch 指出,这一时期的核心抽象从“算法”转向了面向对象(Object-Oriented),人们开始通过“类”和“对象”来构建系统。与此同时,开源软件萌芽,互联网的普及催生了服务导向架构(SOA)与平台经济(如亚马逊、Salesforce)。本章最后回顾了互联网泡沫破裂与 Y2K(千年虫)危机,强调了基础设施软件往往是“隐形”的这一重要特性。
[原文] [Speaker B]: What were the forces that led us into that first off it was growing complexity... difficulty of building software fast enough and building building big enough software and I would add to this the things that came about in in the defense world which were the desire and an obvious value in building systems from a distributed kind of way.
[译文] [Speaker B]: 是什么力量将我们带入了那个时代?首先是日益增长的复杂性……难以足够快地构建软件,以及构建足够大的软件。除此之外,我还要加上国防领域出现的情况,即构建分布式系统带来的渴望和显而易见的价值。
[原文] [Speaker B]: Now come on to the scene because what was happening around that same time is the fruits of micro miniaturaturization came to be and it led us to the personal computer this was because transistors right and and the breakthroughs in in like electronics and and precisely.
[译文] [Speaker B]: 现在回到正题,因为在同一时期发生的事情是微型化技术结出了硕果,这把我们引向了个人计算机。这是因为晶体管,对吧,以及电子学等领域的突破,确切地说是这样。
[原文] [Speaker B]: And you know this too was a vibrant time because you had you know you had hobbyists who could put these things together and and build them from scratch.
[译文] [Speaker B]: 你知道这也是一个充满活力的时期,因为出现了业余爱好者,他们可以把这些东西组装起来,从零开始构建系统。
[原文] [Speaker B]: So you had this wonderful thing happening and I'd say the late 70s and early 80s which was a vibrant time of experimentation there's a delightful book called "What the Dormouse Said" which posits that the rise of the personal computer was also tied together with the rise of the hippie counterculture.
[译文] [Speaker B]: 所以发生了这种奇妙的事情,我会说70年代末和80年代初是一个充满活力的实验时期。有一本有趣的书叫《睡鼠说了什么》(What the Dormouse Said),书中提出个人计算机的兴起也与嬉皮士反主流文化的兴起紧密相连。
[原文] [Speaker B]: And so this this drive toward you know power to the people and you know let's you know love make love not war these kinds of things this is the era of Steuart Brand the era of of the Murray pranksters and the like and that led to things like the well which was the very first social network which was today we call them bulletin boards which grew up in in Silicon Valley.
[译文] [Speaker B]: 这种追求“权力归于人民”(power to the people)的动力,你知道,像“要做爱不要战争”(make love not war)这类事情。这是斯图尔特·布兰德(Stewart Brand)的时代,是“快乐恶作剧者”(Merry Pranksters)之类的时代,这导致了像 The WELL 这样的事物诞生,那是最初的社交网络——今天我们将它们称为电子公告板(BBS)——它在硅谷成长起来。
[原文] [Speaker B]: So the realization was that we now had the beginnings of theories of looking at the world not through processes but through objects and classes we had the the demand pull of distributed systems the demand pull from trying to build more and more complex systems and so there was also this perfect storm that really launched that second golden age.
[译文] [Speaker B]: 所以人们意识到,我们现在有了理论的雏形,不再通过过程,而是通过对象(objects)和类(classes)来看待世界。我们有分布式系统的需求拉动,有构建越来越复杂系统的需求拉动,所以这是一场完美的风暴,真正开启了第二黄金时代。
[原文] [Speaker B]: So how does that differ from the first generation it differs in the sense that we approach the world at a different layer of abstraction rather than just looking at the data which was this raw lake out here and the algorithms we have to manipulate them we bring them together into one place we combined the the objects and the and the uh processes together.
[译文] [Speaker B]: 那么这与第一代有何不同?不同之处在于我们在不同的抽象层面上接触世界。我们不再仅仅看着数据(就像外面的原始湖泊)和必须用来操作它们的算法,而是将它们汇聚到一处,我们将对象和过程结合在了一起。
[原文] [Speaker B]: Looking at software through the lens of object proved to be very effective because it allowed us to attack software the software complexity problem in a new and new and novel way.
[译文] [Speaker B]: 通过对象的视角看软件被证明是非常有效的,因为它允许我们要以一种全新的、新颖的方式来攻克软件复杂性问题。
[原文] [Speaker B]: And so what began to happen this was also an economic thing as it's people started building these things all of a sudden we saw the rise of platforms... the ideas of open source existed and remember too in the economics of software and hardware back in the time software was pretty much given away free by the main manufacturers ibm did not charge for software until later in the later 60s7s.
[译文] [Speaker B]: 随之开始发生的事情也是一种经济现象。随着人们开始构建这些东西,突然之间我们看到了平台(platforms)的兴起……开源的理念已经存在,而且要记得,在当时的软硬件经济中,软件基本上是主要制造商免费赠送的。IBM 直到60年代末70年代才开始对软件收费。
[原文] [Speaker B]: But in the earliest days there was this vibrant community of people who could say you know gosh I've written this thing go ahead and use it that's fine no problem so open source was was late at that time and the same thing began to happen in the second golden age in which we saw much like the rise of operating systems the rise of open-source software.
[译文] [Speaker B]: 但在早期,有一个充满活力的社区,人们会说:“天哪,我写了这个东西,拿去用吧,没关系,没问题。”所以开源在那时就已经埋下了种子。同样的事情开始在第二黄金时代发生,我们看到了就像操作系统的兴起一样,开源软件也兴起了。
[原文] [Speaker B]: Lurking in the background speaking of economics was the rise of platforms because now all of a sudden these libraries are becoming bigger and bigger and as we moved to distributed systems there was the rise of back then we called it serviceoriented architectures.
[译文] [Speaker B]: 说到经济学,潜伏在背景中的是平台的兴起。因为突然之间,这些库变得越来越大。而且当我们转向分布式系统时,当时我们称之为面向服务的架构(Service-Oriented Architectures, SOA)也随之兴起。
[原文] [Speaker B]: And this was laying the foundations in the second golden age for the the beginnings of the platform era which is you know what Bezos and and others have really brought us to where jumping ahead in our current age where you have these islands which are sort of formed by all sort of APIs around them.
[译文] [Speaker B]: 这为第二黄金时代奠定了基础,开启了平台时代——也就是贝佐斯(Bezos)和其他人真正带我们进入的时代。跳到我们当前的时代来看,就是你拥有了这些由周围各种 API 形成的孤岛。
[原文] [Speaker B]: So let's look at the the late '9s early 2000s also a vibrant time much like the first golden age we had the growth of the internet... as you saw these kinds of structures like email becoming a commodity thing in the second golden age of software this is when software began to filter into the interstitial spaces of civilization.
[译文] [Speaker B]: 让我们看看90年代末到2000年代初,这也是一个充满活力的时期,很像第一黄金时代,我们迎来了互联网的增长……当你看到像电子邮件这样的结构在软件第二黄金时代变成一种商品时,这正是软件开始渗透到文明的缝隙中的时刻。
[原文] [Speaker B]: So what happened around 2000 or so well we had by that time internet was big lots of businesses being built but there was the crash around that time because economically it just didn't make sense so there was this great pullback also happening was the whole Y2K situation where a lot of effort was put into you know solving that problem.
[译文] [Speaker B]: 那么在2000年左右发生了什么?嗯,那时互联网已经很大了,建立了很多业务,但在那个时候发生了崩溃(互联网泡沫破裂),因为从经济上讲这根本说不通,所以出现了一次巨大的回撤。同时也发生了整个 Y2K(千年虫)的情况,人们投入了大量精力来解决这个问题。
[原文] [Speaker B]: You know people in retrospect say well gosh we didn't need to worry about that but being in the middle of it you realize oh no there was a lot of heroic work and if that hadn't been done then lots of problems would have happened so this is a good example of how the best technology you simply don't see.
[译文] [Speaker B]: 你知道,人们回过头来看会说:“天哪,我们当初根本不需要担心那个。”但身处其中你会意识到:“噢不,当时有很多英雄般的工作。”如果没做那些工作,就会发生很多问题。所以这是通过一个很好的例子说明,最好的技术是你根本看不见的。
📝 本节摘要:
本节中,Grady Booch 提出了一个极具洞察力的观点:我们实际上早已进入了软件工程的第三黄金时代,其起点约为千禧年(2000年)左右。这一时代的标志是抽象层次的再次跃升——从编写独立的程序或组件,转向利用庞大的库(Libraries)和生态系统(Ecosystems)(如 Hadoop)。他认为,当前的 AI 辅助工具(如 Cursor, ChatGPT)并非凭空出现,而是为了应对这一庞大复杂性而必然产生的“反应”,旨在帮助我们驾驭这些现成的资源。此外,他简要回顾了 AI 发展的历史(40-50年代的符号主义与80年代的专家系统),并指出第三黄金时代面临的新挑战不再是算法实现,而是供应链安全(如 Stuxnet)、“大而不倒”的经济风险以及隐私伦理。
[原文] [Speaker B]: So here we are mentally put yourself in the the first first decade of the 2000s is a fun place because well yeah the there was the crash but still so much fun stuff to do so much great software to be written we were still only limited largely by our imagination.
[译文] [Speaker B]: 所以我们到了这里,在精神上把自己置于2000年代的第一个十年。那是一个有趣的地方,因为虽然经历了崩盘(互联网泡沫破裂),但仍有很多有趣的事情可做,有很多伟大的软件等着被编写。我们在很大程度上仍然只受限于我们的想象力。
[原文] [Speaker B]: Now I'm going to pause for a moment and backfill with some history that I hadn't mentioned we've been talking about software in general there was a parallel history going on in AI in which we saw also some generations.
[译文] [Speaker B]: 现在我要暂停一下,补充一些我之前没提到的历史。我们一直在谈论一般的软件,但在人工智能(AI)领域也有一段平行的历史,我们也看到了几代的发展。
[原文] [Speaker B]: The first golden age of AI was in the 40s and 50s where you had people such as Herbert Simon and Newell and Minsky in particular the focus there was upon gosh we could build intelligence artificially using symbolic methods.
[译文] [Speaker B]: AI 的第一黄金时代是在40年代和50年代,当时有赫伯特·西蒙(Herbert Simon)、纽厄尔(Newell)和明斯基(Minsky)等人。特别是在那里,焦点在于:“天哪,我们可以使用符号方法人工构建智能。”
[原文] [Speaker B]: So this was the first golden age first great age of AI and the ideas of neural networks were tried the the thing they built was the snark which was the first vacuum tube artificial neuron it took like five vacuum tubes to make a single neuron and there was a report coming out of the UK at the time that said we're spending a lot of money here but by gosh it doesn't work.
[译文] [Speaker B]: 这就是 AI 的第一黄金时代,第一个伟大的时代。神经网络的想法也被尝试过,他们制造的东西叫“Snark”,这是第一个真空管人工神经元,制造单个神经元大约需要五个真空管。当时英国有一份报告出来说:“我们在这里花了很多钱,但天哪,这东西不管用。”
[原文] [Speaker B]: And so the first golden age ended when they realized you can't really build anything interesting and furthermore neural networks are a dead end largely a dead end because we didn't have the computational power to do them we didn't have the algorithmic concepts the abstractions to to know what to do with them once we had them at scale.
[译文] [Speaker B]: 于是第一黄金时代结束了,因为他们意识到真的造不出什么有趣的东西。而且,神经网络被认为是一条死胡同——很大程度上是因为我们没有计算能力来运行它们,我们也缺乏算法概念和抽象来知道一旦拥有大规模网络该如何处理它们。
[原文] [Speaker B]: The second golden age of of AI was really in the 80s when you had people like Falcon come along and say hey there's another way of looking at it and it's looking at it through rules thus was born the idea of machine learning uh things like m and the like came upon the scene but there too we saw the AI winter come about.
[译文] [Speaker B]: AI 的第二黄金时代实际上是在80年代,当时像费根鲍姆(Feigenbaum)这样的人出现说:“嘿,有另一种看待它的方式,就是通过规则。”因此诞生了机器学习的想法(注:此处指专家系统/规则系统),像 MYCIN 之类的东西登场了。但在那里,我们也看到了 AI 寒冬的到来。
[原文] [Speaker B]: By the way there was an interesting rise in hardware at the time the list machine the thinking machine were all built during this time vibrant periods of time of a of computer architectures so you see these kind of feeding into one another but ultimately it failed because they didn't scale up once you got beyond a few hundred if then statements we simply didn't have a means of building inference engines that could do anything with them.
[译文] [Speaker B]: 顺便说一句,当时硬件领域也有有趣的兴起,Lisp Machine、Thinking Machines 都是在这个时期制造的,那是计算机架构充满活力的时期。所以你看到这些领域相互反哺。但最终它失败了,因为无法扩展。一旦超过几百条“如果-那么”(if-then)语句,我们根本没有办法构建能处理它们的推理引擎。
[原文] [Speaker B]: So here we are in exciting time again two first decade of the 2000s ai was kind of you know back in in the back rooms we still had a lot of cool things to do and uh more and more distributed kind of systems plus fueling that also was the fact that software was now in the hands of individuals through personal computers so the demand for software was even greater.
[译文] [Speaker B]: 所以我们再次回到了令人兴奋的时刻,2000年代的第一个十年。AI 那时算是退回到了幕后,但我们仍有很多很酷的事情要做,越来越多的分布式系统出现了。再加上个人计算机让软件掌握在个人手中,这进一步助推了软件需求的增长。
[原文] [Speaker B]: I would claim and this may be a little controversial we are in the third golden age of software engineering but it actually started around the turn of the millennium it's not it's not now but it's then.
[译文] [Speaker B]: 我会主张——这可能有点争议——我们正处于软件工程的第三黄金时代,但它实际上开始于千禧年(2000年)左右。不是现在,而是那时。
[原文] [Speaker B]: And the first indication of the rise of it is we saw a new rise in levels of abstraction from individual components of our software programs to whole libraries and packages that were part of our platform.
[译文] [Speaker B]: 它兴起的第一个迹象是,我们看到了抽象层次的新提升:从软件程序中的个体组件,提升到了作为平台一部分的完整的库(libraries)和包(packages)。
[原文] [Speaker B]: Oh I need to do messaging well I'm not going to do that on my own machine i can go out to this library which does messaging i need to manage this whole chunk of data let's you know use Hadoop or something like that it wasn't around the time but the seeds where it was growing so we again saw a growth in levels of abstraction from just simple programs to now subcomponents of systems and that was the next great shift that happened and our methodologies and our languages and all that began to follow.
[译文] [Speaker B]: “噢,我需要做消息传递。好吧,我不打算在自己的机器上从头做,我可以去用这个专门做消息传递的库。”“我需要管理这一大块数据,让我们用 Hadoop 或类似的东西吧。”虽然 Hadoop 当时可能还没出现,但种子已经在生长。所以我们再次看到了抽象层次的增长,从简单的程序变成了系统的子组件。那是发生的下一个巨大转变,我们的方法论、语言以及所有东西都开始紧随其后。
[原文] [Speaker B]: So the third golden age we've been in for several years already and not to get ahead of ourselves what's happening with AI assistance and the like in the coding space is in many ways a reaction to the growth of those kinds of things because we want to accelerate their use we want to we have so many of those kinds of libraries out there and not enough people know about them we want to accelerate the use of them by having aids that help us do so.
[译文] [Speaker B]: 所以我们已经处于第三黄金时代好几年了。别急着往前跳,现在编码领域发生的 AI 辅助之类的事情,在很多方面是对这种增长的反应。因为我们想加速这些东西的使用,我们外面有那么多这类库,但了解它们的人不够多,我们想通过拥有能帮助我们使用它们的辅助工具来加速这一进程。
[原文] [Speaker B]: So that's the context in which I put AI agents such as cursor and chat tpt in and that they are in a way a follow on to the forces that have already led us to this third golden age.
[译文] [Speaker B]: 这就是我将 Cursor 和 ChatGPT 等 AI 智能体(Agents)放入的背景。在某种程度上,它们是那些已经将我们带入第三黄金时代的力量的后续。
[原文] [Speaker B]: So we are now in a very vibrant time but the problems are different from the first and second generations what are the problems now first it's problems of we have so much software how do we manage it and we have to deal with issues of safety and security can somebody sneak in something that I can't trust how do I defend myself against that it is so easy to inject something in the software supply chain how do I prevent the bad guys from putting stuff inside there how do I defend against it.
[译文] [Speaker B]: 所以我们现在处于一个非常充满活力的时期,但问题与第一代和第二代不同了。现在的这类问题是什么?首先是管理的问题:我们有这么多软件,我们该如何管理它?我们必须处理安全(safety)和安防(security)问题。有人能偷偷塞进一些我不能信任的东西吗?我该如何防御?在软件供应链中注入东西太容易了,我该如何防止坏人在里面放东西?我该如何防御它?
[原文] [Speaker B]: The whole history behind stuck necks and the like is a good one uh to show you know espionage and software and so all of a sudden the human issues that we had for much of the history of software we were insulated about because it was so much part of civilization these human issues became front and center clear and present for our world.
[译文] [Speaker B]: 震网病毒(Stuxnet)背后的整个历史就是一个很好的例子,展示了间谍活动与软件的关系。所以突然之间,我们在软件历史的大部分时间里都与之隔绝的人类问题——因为它已如此深入文明的一部分——这些人类问题变成了我们世界中前沿、中心、清晰且现实的问题。
[原文] [Speaker B]: And the other element is to the economic issues of it we had now companies that were too big to fail what would happen if a Microsoft were to go under what would happen if a Google were to go under they're so economically important to the world that the things they do they sneeze in some part of the world catches a cold.
[译文] [Speaker B]: 另一个要素是经济问题。我们现在有了“大而不倒”(too big to fail)的公司。如果微软倒闭了会发生什么?如果谷歌倒闭了会发生什么?它们对世界的经济重要性如此之大,以至于它们所做的事情——它们打个喷嚏,世界的某些地方就会感冒。
[原文] [Speaker B]: And so the problems we have now in this third golden age of software are different than they were than the first and second generations but equally as exciting and then last we have the the ethical issues because I can do this kind of software it is possible for me to track where you are in every moment of the day i can do that should I do that some will say yes I should because it you know it's a good thing for humanity others will say not so sure about that.
[译文] [Speaker B]: 因此,我们在软件第三黄金时代面临的问题与第一代和第二代不同,但同样令人兴奋。最后我们还有伦理问题。因为我可以做这种软件,我有能力追踪你一天中每一刻在哪里。我可以这样做,但我应该这样做吗?有些人会说:“是的,我应该,因为这对人类是件好事。”另一些人会说:“不太确定。”
📝 本节摘要:
面对 AI(尤其是大语言模型)突然能写出高质量代码的现状,软件行业弥漫着一种“存在主义的恐惧”。许多开发者担心自己的职业生涯将随着编码工作的自动化而终结。Grady Booch 对此给出了历史性的安抚:这并非第一次危机。他类比了 Grace Hopper 时代编译器诞生的情景——当时汇编程序员也曾坚信机器无法写出比人更高效的代码,并担心自己被淘汰。Booch 指出,这实际上是一次从繁琐细节中解脱出来的机会,抽象层级的提升将让更多非专业人士(如“楼上的会计邻居”)也能创造软件,这实际上扩大了行业的边界。
[原文] [Speaker A]: But one thing that I'm seeing across the industry right now which feels very like this setup makes sense but one thing that kind of feels it contradicts it for a lot of software engineers today is there seems to be an ex existential dread that is especially accelerating especially over the winter break.
[译文] [Speaker A]: 但我现在在整个行业看到的一件事,虽然这种(历史演进的)设定很有道理,但有一件事让今天的许多软件工程师感觉与之矛盾,那就是似乎有一种存在主义的恐惧(existential dread)正在加速蔓延,尤其是在这个寒假期间。
[原文] [Speaker A]: What happened over the winter break is before the winter break these AI uh LLMs were were pretty good for autocomplete sometimes they could generate this or that and over the winter break I'm not sure if you played with some of I have with the new Yeah with the new models they actually generate really good code to the point that I'm starting to trust them.
[译文] [Speaker A]: 寒假期间发生的事情是,在寒假之前,这些 AI 大语言模型在自动补全方面表现不错,有时能生成这个或那个;但在寒假期间——我不确定你是否试玩了一些,我试了新模型——是的,新模型实际上能生成真的很好的代码,好到我已经开始信任它们了。
[原文] [Speaker A]: And yes as far as the history of software has been my understanding is that software developers have written code and it's a hard thing to do and a lot of us you know it takes years for us to learn and to be excellent at it even longer and so a lot of us are starting to have this really existential crisis of okay well the machine can write really really good software code first of all like WTF and how did this happen over the last few months and then the question is what next this it feels that it could shake the profession because I feel coding has been so tightly coupled to software engineering and and now it might not be.
[译文] [Speaker A]: 是的,就软件历史而言,我的理解是软件开发者编写代码,这是一件很难的事情,我们很多人要花数年时间去学习,甚至更久才能精通。所以我们很多人开始有了这种真正的存在主义危机:好吧,机器能写出真的真的很好的软件代码了。首先是“这特么是怎么回事(WTF)”,这在过去几个月是怎么发生的?然后问题是“接下来会怎样?”感觉这可能会动摇整个职业,因为我觉得编码一直与软件工程紧密绑定,而现在可能不再是这样了。
[原文] [Speaker B]: Well let me say that this is not the first existential crisis the developers have faced.
[译文] [Speaker B]: 嗯,让我这么说吧,这并不是开发者面临的第一次存在主义危机。
[原文] [Speaker A]: Tell us more.
[译文] [Speaker A]: 请多讲讲。
[原文] [Speaker B]: They have faced the same kind of existential crisis in the first and the second generation so that's why I look at this and say you know this too will pass when I talk to people who are concerned about it don't worry focus upon the fundamentals because those skills are never going to go away.
[译文] [Speaker B]: 他们在第一代和第二代都面临过同样的生存危机。这就是为什么我看待这件事时会说:“这也终将过去。”当我跟那些担忧的人交谈时,我说别担心,专注于基础,因为那些技能永远不会消失。
[原文] [Speaker B]: I had a chance to meet Grace Hopper she was just delightful you know fireplug of a woman just amazing amazing thing for for your readers go Google Grace Hopper and David Letterman and there's this she appeared on the David Letterman show and you'll get a sense of her personality.
[译文] [Speaker B]: 我曾有机会见过格蕾丝·霍珀(Grace Hopper),她非常令人愉快,你知道,像个精力充沛的小个子(fireplug),真的很棒。对于你的读者,去谷歌搜索“Grace Hopper and David Letterman”,她上过大卫·莱特曼的节目,你会感受到她的个性。
[原文] [Speaker B]: She of course is the one who recognized that it was possible here we are in the 50s that it was possible to separate our software from our hardware this was threatening to those who were building the early machines because they said you know gosh you could never build anything efficient because you have to be a tied so closely to the machines and many in that field and they wrote about it expressed concerns that you know this is going to destroy what we do.
[译文] [Speaker B]: 她当然是那个意识到——那是50年代——可以将软件与硬件分离的人。这对那些构建早期机器的人来说是一种威胁,因为他们说:“天哪,你永远无法构建任何高效的东西,因为你必须与机器紧密绑定。”该领域的许多人,他们甚至写文章表达了这种担忧,认为这会摧毁他们的工作。
[原文] [Speaker B]: And it should have so we had here the beginnings of the first compilers the same thing happened with the invention of forran where people were saying gosh you know we can write tight assembly language better than anybody else better than any machine can kind of do but that was proved wrong when we moved up a level of abstraction from the assembly language to the higher order programming languages.
[译文] [Speaker B]: 这本该发生。所以我们有了第一批编译器的雏形。同样的事情也发生在 Fortran 发明的时候,人们当时说:“天哪,我们能写出比任何人都紧凑的汇编语言,比任何机器能做的都好。”但当我们从汇编语言的抽象层级上升到高级编程语言时,这被证明是错误的。
[原文] [Speaker B]: And so you had a set of people who were similarly concerned and distressed by the changes in levels of abstraction because they recognized that the skills they had in that time were going to go away and they were going to be replaced by the very thing themselves created.
[译文] [Speaker B]: 所以当时有一群人同样对抽象层级的变化感到担忧和痛苦,因为他们意识到他们当时拥有的技能将会消失,并且将被他们亲手创造的东西所取代。
[原文] [Speaker B]: Now you didn't see as much of a crisis because there weren't that many of us back in that time frame we're talking you know a few thousands of people now we're talking millions of people who ask quite legitimately the question what does it mean for me.
[译文] [Speaker B]: 当时你没看到那么大的危机,是因为那时我们这行没那么多人,我们谈论的是几千人。而现在我们谈论的是数百万人,他们在非常合理地问这个问题:“这对我意味着什么?”
[原文] [Speaker B]: So I've had as I'm sure you have had a number of you know especially young developers come up to me and say Grady what should I do am I choosing the wrong field should I you know do something different and I assure them that this is actually an exciting time to be in software because of the following reasons.
[译文] [Speaker B]: 所以我也遇到过——正如你肯定也遇到过——很多,特别是年轻的开发者来找我说:“Grady,我该怎么办?我选错行了吗?我是不是该做点别的?”我向他们保证,这实际上是投身软件行业的一个激动人心的时刻,原因如下。
[原文] [Speaker B]: We are moving up a level of abstraction much like what happened in the rise from machine language to assembly language from assembly language to to higher order programming languages from higher order programming languages to libraries the same kind of thing happened and we're seeing the same change in levels of abstraction and now I as a software developer I don't have to worry about those details so I view it as something that is extraordinarily ly freeing from the tedium of which I had to do.
[译文] [Speaker B]: 我们正在向上移动一个抽象层级,就像从机器语言到汇编语言,从汇编语言到高级编程语言,从高级编程语言到库的升级一样。同样的事情正在发生,我们正目睹同样的抽象层级变迁。现在作为一名软件开发者,我不必再担心那些细节,所以我将其视为一种极大的解放,让我从以前必须做的繁琐工作中解脱出来。
[原文] [Speaker B]: But the fundamentals still remain as long as I am choosing to build software that endures meaning that I'm not going to build it and I throw it away if you're going to throw it away do what you want that's great and I see a lot of people using these agents for that very purpose that's wonderful.
[译文] [Speaker B]: 但只要我选择构建那些需要持久存在的软件——意味着我不是建好就扔——基础原则依然存在。如果你打算用完就扔,那随你便,这很好。我也看到很多人正是为了这个目的使用这些智能体(Agents),这很棒。
[原文] [Speaker B]: You're going to go off and automate things you could not have afforded to do today and if you're a single user for it then more power to you this is the hobbyist rarer and the hobbyist side of software if you will much like we saw in the earliest days of personal and computers where people will build these things great stuff great ideas will come from it.
[译文] [Speaker B]: 你可以去自动化那些你以前负担不起的事情。如果你只是个人用户,那就更有力量了。如果你愿意的话,这就是软件业中更稀有的“业余爱好者”的一面,就像我们在个人计算机早期看到的那样,人们会构建这些东西,伟大的作品、伟大的想法将从中诞生。
[原文] [Speaker A]: I like the comparison yes yeah great ideas will come from it you know people will build skills we'll do things we could not have done before we'll automate things that were economically not possible but they're not going to endure necessarily but still we will have made a valuable impact and I guess just like in the first era where personal people could buy it you will have people come into the industry who have honestly nothing to do with it and they might bring amazing ideas right like back then you know school school teacher might have bought a personal computer.
[译文] [Speaker A]: 我喜欢这个比较,是的。伟大的想法将从中诞生,人们会建立技能,我们会做以前做不到的事情,我们会自动化那些以前在经济上不可能的事情。虽然它们不一定会持久,但我们仍然会产生有价值的影响。我想就像在第一时代个人可以购买电脑一样,会有完全不相干的人进入这个行业,他们可能会带来惊人的想法,对吧?就像那时候学校老师可能会买一台个人电脑一样。
[原文] [Speaker A]: Today I I just talked to my neighbor upstairs an accountant she has instructed Chad GBT to build some appcript to uh help their accounting teams process a bit better because she knows how that thing works nothing to do with software but now creating their own personal throwaway software by the way.
[译文] [Speaker A]: 今天,我刚刚和我楼上的邻居聊过,她是个会计。她指示 ChatGPT 写了一些 AppScript 来帮助她们的会计团队更好地处理流程,因为她知道那东西怎么运作。她和软件毫无关系,但顺便说一句,她现在正在创造属于她自己的个人“一次性软件”。
[原文] [Speaker B]: Yes absolutely the same parallels and I celebrate that i encourage it i think it's the most wonderful thing which is why we are in this vibrant period... and so much of the lamenting of oh gosh we have an existential crisis are those who are narrowly focused upon their industry not realizing that what's happening here is actually expanding in the industry.
[译文] [Speaker B]: 是的,绝对是平行的案例,我为此庆祝,我鼓励这样做,我认为这是最美妙的事情,这也是为什么我们处于这个充满活力的时期……很多关于“天哪我们有存在主义危机”的哀叹,都是那些狭隘地关注自己行业的人发出的,他们没有意识到这里发生的事情实际上是在扩展这个行业。
📝 本节摘要:
本节中,主持人引用了 Anthropic CEO Dario Amodei 的激进预测——“软件工程将在12个月内被自动化”。Grady Booch 对此进行了毫不留情的反驳,直言这是“纯粹的胡扯”(utter bullshit)。他指出 Dario 混淆了“编码”与“软件工程”的区别:前者只是生成文本,后者则是平衡技术、经济与伦理的决策过程。Grady 引用莎士比亚的典故警告 AI 巨头们不要短视,并以自己使用 D3.js 的经历为例,说明 AI 虽然缩短了自然语言与可执行代码之间的距离,让英语成为一种新的编程语言,但这反而更需要具备扎实基础的人类去引导和修正。
[原文] [Speaker A]: One person I pay attention to is is Dario Amod the CEO of Antropic... he actually said about a year ago he said something interesting he says he thinks most code will be generated by AI about 90% of it maybe in a year and then more and we thought that's silly and then he was right and code was generated.
[译文] [Speaker A]: 我关注的一个人是 Anthropic 的 CEO Dario Amodei……大约在一年前,他说了一些有趣的话。他说他认为大多数代码将由 AI 生成,大约90%,可能在一年内实现,甚至更多。我们当时觉得这很愚蠢,结果他是对的,代码确实被生成了。
[原文] [Speaker A]: And now he said some another thing interesting that sounded interesting but the next one sounds scary he said I quote software engineering will be automatable in 12 months now this sounds a lot more scarier for reasons we know coding is a subset of software engineering but he said this what is your take on on this?
[译文] [Speaker A]: 现在他又说了一些有趣的事,听起来很有趣,但下一句听起来很吓人。他说——我引用一下——“软件工程将在12个月内实现自动化”。这听起来可怕多了,因为我们知道编码只是软件工程的一个子集,但他却这么说了。你对此有什么看法?
[原文] [Speaker B]: I have one or two things to say about it so first off I use Claude i use Anthropics work i think it's it's my it's my go-to system i've been using it for problems with JavaScript with Swift uh with PHP of all things and Python.
[译文] [Speaker B]: 对此我有一两点要说。首先,我使用 Claude,我使用 Anthropic 的产品,它是我的首选系统。我一直在用它解决 JavaScript、Swift、甚至是 PHP 和 Python 的问题。
[原文] [Speaker B]: So I use it and it's it's been a great thing for me primarily because you know there are certain libraries I want to use google search sucks documentation for these things suck and so I can use these agents to accelerate my understanding of them but remember also I have a foundation of at least one or two years of experience in these spaces okay a few decades where I sort of understand the fundamentals.
[译文] [Speaker B]: 我使用它,它对我来说是个好东西,主要是因为有些我想用的库,Google 搜索很烂,这些东西的文档也很烂,所以我可以用这些智能体来加速我对它们的理解。但请记住,我有这些领域至少一两年的经验基础——好吧,是几十年——所以我某种程度上理解那些基本原理。
[原文] [Speaker B]: So Daario man I I respect what you're saying but recognize also that Daario has a different point of view than I do he's leading a company who needs to make money and it's a company who he needs to speak to his stakeholders so outrageous statements will be said like that.
[译文] [Speaker B]: 所以 Dario,老兄,我尊重你的说法,但也要意识到 Dario 和我有不同的立场。他在领导一家需要赚钱的公司,他需要对利益相关者说话,所以会说出那样耸人听闻的言论。
[原文] [Speaker B]: And and I'd say politely well I'll use a scientific term in terms of how I would characterize what Daario said and put it in context it's utter bullshit uh that's the technical term because I think he's profoundly wrong.
[译文] [Speaker B]: 我会礼貌地说——或者我会用一个科学术语来定性 Dario 所说的话,并将其放入语境中——那是纯粹的胡扯(utter bullshit)。这是个技术术语,因为我认为他大错特错。
[原文] [Speaker B]: And and he I think he's wrong for a number of reasons first I accept his point of view that it's going to accelerate some things is it going to eliminate software engineering no i think he has a fundamental misunderstanding as to what software engineering is go back to what I said at the beginning software engineers are the engineers who balance these forces so we use code as one of our mechanisms but it's not the only thing that drives us.
[译文] [Speaker B]: 我认为他错了有几个原因。首先,我接受他的观点,即这会加速某些事情。但这会消灭软件工程吗?不。我认为他对什么是软件工程有一个根本性的误解。回到我开头所说的,软件工程师是平衡各种力量的工程师。我们使用代码作为我们的机制之一,但这不是驱动我们的唯一事物。
[原文] [Speaker B]: None of the things that he or any of his colleagues are talking about attend to any of those decision problems that a software engineer has to deal with none of those we see within the within the realm of automation his work is primarily focused upon the automation at the lowest levels which is I would put akin to what was happening with compilers in these days that's why I say it's another level abstraction fear not O developers your tools are changing but your problems are not.
[译文] [Speaker B]: 他或他的任何同事所谈论的事情,没有一件涉及软件工程师必须处理的那些决策问题。我们在自动化领域看到的没有任何这些东西。他的工作主要集中在最低层次的自动化上,这和我说的当年编译器发生的情况类似。这就是为什么我说这是另一个抽象层级。不要害怕,噢开发者们,你们的工具在变,但你们的问题没有变。
[原文] [Speaker B]: What Daario neglects and I used a a bit of a paraphrase from from Shakespeare there are more things in computing Daario that are dreamt of in your philosophy the world of computing is far larger than web centric systems of scale.
[译文] [Speaker B]: Dario 忽略了一点——我要稍微改写一下莎士比亚的话——Dario,在计算领域中存在的事物,比你的哲学所能梦想到的要多得多。计算的世界远比那些以 Web 为中心的大规模系统要宏大。
[原文] [Speaker B]: And then second you know if you look at the kinds of systems that most of these agents deal with they are in effect automating patterns that we see over and over again for which they have been trained upon patterns themselves are new abstractions that are in effect not just single algorithms or single objects but they represent societies of objects and algorithms that work together.
[译文] [Speaker B]: 其次,如果你看看这些智能体处理的大多数系统类型,它们实际上是在自动化我们一遍又一遍看到的模式(patterns),因为它们就是基于这些模式训练的。模式本身是新的抽象,实际上不仅仅是单个算法或单个对象,而是代表了协同工作的对象和算法的社会。
[原文] [Speaker B]: Let me offer another story with regards to how we see a shift in levels of abstraction english is a very imprecise language full of ambiguity and nuance and the like though one would wonder how could I ever make that you know as a useful language and the answer is we already do this as software engineers.
[译文] [Speaker B]: 让我提供另一个关于我们如何看待抽象层级转变的故事。英语是一种非常不精确的语言,充满了歧义和细微差别之类的东西,人们会纳闷我怎么能把它作为一种有用的(编程)语言呢?答案是,作为软件工程师,我们已经在这样做了。
[原文] [Speaker B]: I'll give you a concrete example i'm working with a library I'd never touched before it's the JavaScript D3 library which allows me to do some really fascinating visualizations... I said to Cursor "Go build me the simplest one possible go do it out of you know five nodes and show me." So I could then study the code and then I could say "Well what they wanted would really wanted to do is this go make the nodes look like this depending upon their kind."
[译文] [Speaker B]: 我给你一个具体的例子。我正在使用一个我以前从未接触过的库,JavaScript 的 D3 库,它允许我做一些非常迷人的可视化……我对 Cursor 说:“去给我构建一个尽可能简单的例子,用五个节点做出来,展示给我看。”这样我就可以研究代码,然后我可以说:“嗯,他们真正想做的是这个,去把节点根据它们的类型做成这个样子。”
[原文] [Speaker B]: So just like I would do with a human I was expressing my needs in an English language that now all of a sudden I didn't need to labor to turn that into reality i could simply have a conversation with my tool to help me do that so it it reduced the distance between what I wanted and what it could do.
[译文] [Speaker B]: 就像我会对人类做的那样,我用英语表达我的需求,突然之间,我不需要费力去亲自将其变为现实,我只需与我的工具进行对话来帮我完成。所以,它缩短了我想要的和它能做的之间的距离。
[原文] [Speaker B]: Last thing I'll say is that you know what do we call a language that is precise and expressive enough to be able to build executable artifacts we call them programming languages and it just so happens that English is a good enough programming language much like Cobalt was in that if I give it those phrases in a domain that is well enough structured it allows me to have good enough solutions that I who know those fundamentals can begin nudging and cleaning out the pieces that's why the fundamentals are so important.
[译文] [Speaker B]: 我要说的最后一件事是,你知道我们把一种足够精确、足够富有表现力、能够构建可执行制品的语言称为什么吗?我们称之为编程语言。而恰好,英语已经成为了一种足够好的编程语言,就像当年的 COBOL 一样。如果我在一个结构足够好的领域内给它这些短语,它就能让我得到足够好的解决方案,而我——了解那些基本原理的人——可以开始微调和清理这些碎片。这就是为什么基本原理如此重要。
📝 本节摘要:
随着 AI 接管低代码任务(如简单的 App 开发或基础设施配置),Grady Booch 指出,未来的核心技能将不再是编写孤立的程序,而是管理系统级的复杂性。他建议工程师回归基础,研读赫伯特·西蒙(Herbert Simon)和马文·明斯基(Marvin Minsky)的经典理论,向圣塔菲研究所(Santa Fe Institute)学习复杂性科学,甚至从生物学(如蟑螂、蠕虫的神经结构)中汲取灵感。他通过自己参与 NASA 火星任务(设计类似 HAL 的系统)的经历,强调了具身认知(Embodied Cognition)的重要性——即软件不仅要在云端运行,更要能与物理世界交互。
[原文] [Speaker A]: Speaking of history rhyming one thing that happened in both the first age and the the sec second golden age or as we jumped abstractions or every time we had an abstraction is some skills became obsolete and then there was a demand for for new skills... In this jump right now where I think it's safe to say we're going from we do not need to write any more code and the computer will do it pretty good and we'll check it and tweak it what do you think will become obsolete and what will become more important as software professionals?
[译文] [Speaker A]: 说到历史的押韵,在第一时代和第二黄金时代,或者每当我们跨越抽象层级时,都会发生的一件事是:某些技能变得过时,随后出现了对新技能的需求……在目前这次跨越中,我想可以肯定地说,我们正从“手写代码”转向“计算机写得挺好,我们只需检查和微调”。你认为作为软件专业人士,什么会变得过时,什么会变得更加重要?
[原文] [Speaker B]: Great question the software delivery pipeline is far more complex than it should be... just getting something running is hard... and so there is lowhanging fruit for the automation of those i mean I don't need a human that fills in the edges of those kind of things by the way I'm talking about in effect infrastructure is software it's not just you know not just raw lines of code.
[译文] [Speaker B]: 问得好。软件交付管道比它应有的样子复杂得多……仅仅是让东西运行起来就很困难……所以那里有唾手可得的果实(low-hanging fruit)可以自动化。我是说,我不需要人类去填补那些边缘工作。顺便说一句,我这里实际上是在谈论“基础设施即软件”,而不仅仅是原始的代码行。
[原文] [Speaker B]: So there's a case where I think you're going to have the loss of jobs in those places where it's messy and complex because the automation has clear economic and you know frankly value in terms of security that's a place where people are going to need to reskill.
[译文] [Speaker B]: 所以这是一种情况,我认为在那些混乱且复杂的地方将会出现失业,因为自动化在安全性方面具有明确的经济价值——坦率地说很有价值。那是人们需要重新掌握技能的地方。
[原文] [Speaker B]: In the building of simple applications and the like well I think you know people who had uh who had skills in saying I want to build this you know thing for iOS or whatever they're going to lose you know they're going to lose some jobs cuz frankly people could do it just by you know prompting it that's great that's fine because we've enabled a whole another generation of folks to do things that professionals did in the past exactly what happened in the era of PCs themselves.
[译文] [Speaker B]: 在构建简单的应用程序之类的事情上,我想你知道,那些拥有“我想为 iOS 或其他平台构建这个东西”技能的人,他们会失去一些工作。因为坦率地说,人们只需通过提示(prompting)就能做到这一点。这很棒,这没问题,因为我们让全新的一代人能够做过去专业人士做的事情,这正如 PC 时代所发生的一样。
[原文] [Speaker B]: What should these people do move up a level of abstraction start worrying about systems so the shift now I think is less so from dealing with programs and apps to dealing with systems themselves and that's where the new skill set should come in.
[译文] [Speaker B]: 这些人该做什么?向上移动一个抽象层级,开始关心系统。所以我认为现在的转变不再是处理程序和 App,而是处理系统(systems)本身,这就是新技能集应该介入的地方。
[原文] [Speaker B]: If you have the skills of knowing how to manage complexity at scale if you know as a software engineer how to deal with all of these multiple forces which are human as well as technical your job's not going to go away if anything there will be even greater demand for what you're doing because those human skills are so rare and delicate.
[译文] [Speaker B]: 如果你拥有知道如何在大规模下管理复杂性的技能,如果你作为软件工程师知道如何处理所有这些多重力量——既有人类的也有技术的——你的工作就不会消失。如果有变化的话,那就是对你所做之事的需求会更大,因为那些人类技能是如此稀缺和微妙。
[原文] [Speaker A]: So you mentioned the importance of of having strong foundations... what foundations would you recommend people to look at both students people who are at university studying or looking for their first job and also software professionals who you know now actually want to go back and strengthen those foundations.
[译文] [Speaker A]: 你提到了拥有坚实基础的重要性……你会推荐人们去关注哪些基础知识?无论是正在大学学习或寻找第一份工作的学生,还是那些现在实际上想回去巩固这些基础的软件专业人士。
[原文] [Speaker B]: I find my my uh my happy place if you will my sweet space that I retreat back to when I'm faced with a difficult problem back into systems theory go read the work of of Simon and Newell in the the sciences of the artificial uh there's a whole set of work that's come out on complexity and systems from the Santa Fe Institute it's those kinds of fundamentals of system theory that ground me in the next set of things in which I want to build.
[译文] [Speaker B]: 我找到了我的“快乐之地”,如果你愿意这么叫的话,或者说当我面对难题时我会退回去的“甜蜜空间”,那就是回到系统理论(systems theory)。去读读西蒙(Simon)和纽厄尔(Newell)关于《人工科学》(The Sciences of the Artificial)的著作。圣塔菲研究所(Santa Fe Institute)也发表了一整套关于复杂性和系统的成果。正是这类系统理论的基础,支撑着我去构建下一代事物。
[原文] [Speaker B]: I think I mentioned to you in in one of our our previous discussions I was doing some really interesting work on NASA's mission to Mars... And so I was commissioned to go off and think about that for a while and in effect I realized NASA wanted to build a Hal and you'll notice I've got a Hal above me here yes uh this is I I'm a great one for history this is my sword of Dicles that passes behind me... for some reason NASA didn't want the kill all the astronauts use case don't understand why but we we threw that one kind of out.
[译文] [Speaker B]: 我想我在之前的讨论中跟你提过,我正在参与 NASA 火星任务的一些非常有趣的工作……所以我受委托去思考了一段时间,实际上我意识到 NASA 想要构建一个 HAL(注:电影《2001太空漫游》中的超级电脑)。你会注意到我上方有一个 HAL,是的,我是个历史迷,这是我身后的“达摩克利斯之剑”……出于某种原因,NASA 不想要“杀死所有宇航员”那个用例,搞不懂为什么,但我们把那个用例剔除了。
[原文] [Speaker B]: But if you look at the problems there this is a systems engineering problem because you needed something that was embodied in the spacecraft much of the kind of software we have today in AI is disembodied uh the cursor the copilot and like they have no connection to the physical world so our work was primarily in embodied cognition.
[译文] [Speaker B]: 但如果你看看那里的问题,这是一个系统工程问题,因为你需要某种具身(embodied)于航天器中的东西。我们今天在 AI 领域拥有的大多数软件都是非具身的(disembodied)——像 Cursor、Copilot 之类的,它们与物理世界没有连接。所以我们的工作主要是在具身认知(embodied cognition)领域。
[原文] [Speaker B]: Around the same time I was studying under a number of neuroscientists trying to better understand the architecture of the brain... taking ideas of Marvin Minsky society of mind which is a way of of systems architecting multiple agents we're in agent programming now which I think people are just beginning to tap upon how those things apply they need to go look at systems theory because that problem has been looked at with multiple agents already go read Minsky society of mine.
[译文] [Speaker B]: 大约在同一时间,我在几位神经科学家手下学习,试图更好地理解大脑的架构……借鉴马文·明斯基(Marvin Minsky)的《心智社会》(Society of Mind)中的思想,那是一种对多智能体进行系统架构的方法。我们现在正处于智能体编程(agent programming)阶段,我认为人们才刚刚开始探索其应用。他们需要去看看系统理论,因为那个问题已经在多智能体背景下被研究过了。去读读明斯基的《心智社会》。
[原文] [Speaker B]: The ideas from bears of uh which was manifest in early AI systems such as hearsay the ideas of of global workspaces blackboards and the like another architectural element the ideas of subumption architectures from uh from Rodney Brooks uh his was influenced by by biological things if you look at a cockroach a cockroach is not a very intelligent thing but we know there's there's there's not a central brain in it and yet it does some magnificent things we have been able to map the entire neural network of the common worm... biological systems have an architecture to them.
[译文] [Speaker B]: 还有来自 Hearsay 等早期 AI 系统中体现的思想,比如全局工作区、黑板模式(blackboards)等架构元素。还有罗德尼·布鲁克斯(Rodney Brooks)的包摄架构(subsumption architectures),他的思想深受生物学影响。如果你看一只蟑螂,蟑螂并不是什么很智能的东西,而且我们知道它没有一个中央大脑,但它却能做一些极好的事情。我们已经能够绘制出普通蠕虫的整个神经网络……生物系统是有架构的。
[原文] [Speaker B]: So to go back to your question by looking at architecture from a systems point of view from biology from uh neurology from systems in in the real world as Herbert Herbert Simon and New did this is what's guiding me to the next generation of systems and so I would urge you know people looking at systems now go back to those fundamentals there is nothing new under the sun in many ways we've just you know applied them in different ways those fundamentals in engineering they're still there.
[译文] [Speaker B]: 所以回到你的问题,通过从系统的角度——从生物学、神经学、现实世界中的系统——来看待架构,正如赫伯特·西蒙和纽厄尔所做的那样,这正是指引我走向下一代系统的东西。所以我强烈建议现在研究系统的人回归那些基本原理。太阳底下无新鲜事,在很多方面,我们只是以不同的方式应用它们,但那些工程学的基本原理依然存在。
📝 本节摘要:
在访谈的最后,Grady Booch 将视角从技术细节拉升至哲学高度。他指出,随着 AI 消除开发过程中的摩擦与成本,软件开发的各种硬性约束(如团队规模、资金)正在消失。我们正处在一个“以想象力为唯一边界”的时代。面对这一变革,他用“深渊”做比喻:你可以选择恐惧坠落,也可以选择将其视为飞翔的机会。这是一段充满希望的寄语,鼓励开发者利用新工具去构建以前无法企及的伟大系统。
[原文] [Speaker A]: But looking back at the previous rises of abstractions and also the previous golden ages the people who did great at the start of a new golden age or at the start of a new abstraction even if they were not amazing at the previous one what have you seen those people do like what and based on this historical lesson what would you recommend if we were just kind to kind of copy successful things that people did?
[译文] [Speaker A]: 回顾之前抽象层级的提升以及之前的黄金时代,那些在新黄金时代初期或新抽象初期表现出色的人——即使他们在前一个时代并不惊艳——你看到他们做了什么?基于这个历史教训,如果我们想复制那些成功人士的做法,你会推荐什么?
[原文] [Speaker B]: So I as I alluded to earlier the main thing that constrains us in software is our imagination well actually that's where we begin we're actually not constrained by imagination we can dream up amazing things and yet we are constrained by the laws of physics by how we build algorithms and the like ethical issues and the like.
[译文] [Speaker B]: 正如我之前暗示的那样,软件领域限制我们的主要因素是我们的想象力。实际上那是我们的起点,我们其实并没有被想象力所束缚,我们可以梦想出惊人的事物,但我们受到物理定律、算法构建方式以及伦理问题之类的约束。
[原文] [Speaker B]: So what's happening now is that you are actually being freed because some of the friction some of the constraints some of the costs of development are actually disappearing for you which means now I could put my attention upon my imagination to build things that simply were not possible before.
[译文] [Speaker B]: 所以现在发生的事情是,你实际上正在被解放,因为开发中的一些摩擦、一些约束、一些成本实际上正在为你消失。这意味着现在我可以将注意力集中在我的想象力上,去构建以前根本不可能构建的东西。
[原文] [Speaker B]: I could not have done them because I couldn't have raised a team to do them i couldn't have afforded that i could not have uh done it because I couldn't have had the reach in the world as I did before so think of it as an opportunity.
[译文] [Speaker B]: 以前我做不到,因为我无法组建一个团队来做,我负担不起;以前我做不到,因为我无法像现在这样触达全世界。所以,把它看作是一个机会。
[原文] [Speaker B]: So it's not a loss it'll be a loss for some who have a vested interest in the economics of this but it's an a net gain because now all of a sudden these things unleash my imagination to allow me to do things that were simply not possible before in the real world.
[译文] [Speaker B]: 所以这不是一种损失。对于那些在这个(旧)经济体系中有既得利益的人来说,这可能是一种损失,但这是一个净收益。因为突然之间,这些东西释放了我的想象力,让我能够在现实世界中做以前根本不可能做的事情。
[原文] [Speaker B]: This is an exciting time to be in the industry it's frightening at the same time but that's as it should be when there's an opportunity where you're on the cusp of something wonderful you should look at the abyss and say you can either take a look and say "Crap I'm gonna fall into it." Or you can say "No I'm going to leap and I'm going to soar this is the time to soar."
[译文] [Speaker B]: 这是一个身处该行业的激动人心的时刻,同时也是令人恐惧的,但这正是它应有的样子。当有一个机会,你正处于某种美妙事物的风口浪尖时,你应该看着深渊,你可以看一眼说:“糟糕,我要掉下去了(Crap, I'm gonna fall into it)。”或者你可以说:“不,我要跳跃,我要飞翔,这是飞翔的时刻。”
[原文] [Speaker A]: Grady thank you so much for giving us the overview the outlook and and for a little bit of perspective i personally really appreciate this and I hope I offered some hope as well.
[译文] [Speaker A]: Grady,非常感谢你为我们提供了概览、展望以及一点点视角,我个人非常感激。我希望我也提供了一些希望。
[原文] [Speaker B]: I think you definitely did this was a really inspiring episode thank you Grady.
[译文] [Speaker B]: 我想你绝对做到了,这是一期非常鼓舞人心的节目,谢谢你,Grady。