The third golden age of software engineering – thanks to AI, with Grady Booch

The third golden age of software engineering – thanks to AI, with Grady Booch

软件工程的第三个黄金时代:感谢 AI | Grady Booch

The Pragmatic Engineer11 位订阅者

77 分钟阅读AI

【时代见证】Grady Booch:欢迎来到软件工程的第三个“黄金时代” 当 AI 遇上软件工程,我们正站在一个新的巅峰。Grady Booch 认为,AI 不是软件工程的终结者,而是开启第三个黄金时代的加速器。他详细描绘了人机协作下的新型开发范式,并鼓励开发者利用 AI 释放被琐碎语法束缚的创造力。 🎙️ 访谈/主讲人介绍 Grady Booch:IBM 院士,软件工程领域的泰斗级人物,见证并主导了过去数次软件技术革命的演进。 核心议题:软件工程的三大黄金时代、AI 辅助开发的本质变革、从手工编码到意图对齐、未来开发者的角色重定义。 关键词:Grady Booch、软件工程黄金时代、AI 编程、行业愿景、技术革新

章节 1:软件工程的定义与本质

📝 本节摘要:

本节追溯了“软件工程”这一术语的起源,由玛格丽特·汉密尔顿(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]: 所以,正是这些事物的集合——某种程度上,不,是绝对地——构成了压在软件工程师身上的静态和动态力量。这也是为什么我说我们是工程师,因为就像其他类型的工程师一样,我们构建系统来平衡这些力量,而且我们是在一种绝对奇妙的媒介中进行这项工作。这就是软件工程。

  1. 章节 2:第一黄金时代——算法与计算的黎明 (1940s-1970s)
  2. 章节 3:软件危机与范式转移
  3. 章节 4:第二黄金时代——个人计算与平台的崛起 (1980s-2000s)
  4. 章节 5:第三黄金时代——抽象阶梯的跃升
  5. 章节 6:开发者的“存在主义危机”
  6. 章节 7:反驳“软件工程消亡论”
  7. 章节 8:未来的核心技能——系统思维
  8. 章节 9:结语——以想象力为边界的时代

正在加载后续章节…