8.1 Software architecture with Grady Booch

这篇文章通过对Grady Booch的访谈,深入探讨了软件架构的演变及其对现代软件开发的影响,尤其是UML的创建和大型语言模型(LLMs)的未来。作为风险投资人,这让我意识到在软件开发领域,尤其是与AI和云计算相关的技术,仍然存在巨大的投资机会。Grady对软件架构的三维分析(仪式、风险、复杂性)为我提供了新的视角,帮助我更好地评估潜在投资项目的价值和可行性。

ONE SENTENCE SUMMARY:

与软件工程传奇人物Grady Booch的对话,探讨软件架构的演变、UML的创建及其对大型语言模型的看法。

MAIN POINTS:

TAKEAWAYS:

现在可以在 Apple Spotify YouTube 上收听。 请在本页顶部查看本集的文字记录。

由以下公司赞助:

WorkOS — 现代B2B SaaS身份平台。
Sevalla — 部署从预览环境到Docker镜像的任何内容。
Chronosphere — 为控制而构建的可观测性平台。

在我们开始之前:Alex Xu的新书 《Coding Interview Patterns》 现已出版。该书帮助理解技术面试中常用的编码问题。Alex是畅销书《Systems Design Interview》的作者。我们之前曾介绍过该书的整整一章: 设计支付系统 。Alex花了1.5年时间撰写这本书,其中包含超过1000个插图。

欢迎来到 《实用工程师》 !今天,我很高兴邀请到软件开发领域的传奇人物Grady Booch。Grady是 IBM 的软件工程首席科学家,领导着在具身认知领域的开创性研究。

他是多个面向对象设计概念的创始人之一,还是统一建模语言的共同作者,以及敏捷联盟和Hillside Group的创始成员。

Grady撰写了六本书,数百篇文章,并拥有多个荣誉头衔,如 IBM ACM IEEE Fellow ,以及 Lovelace Medal (授予对计算机科学进步有杰出贡献者的奖项)的获得者。在本集中,我们讨论了:

要点

从这次引人入胜的对话中,我最大的收获是:

1. 令人惊讶:美国国防部和军方在70年代和80年代构建了一些最复杂的软件系统。 在70年代,这些组织可能拥有全球最多的代码量!分布式计算等技术正是由于这些应用场景而得以开创。

2. 软件架构的三个轴。 Grady认为,在谈论软件架构时,我们应该关注这三个维度:

3. 软件和软件架构的经济学始终是相互关联的。 在20世纪60年代和70年代,机器时间非常昂贵,软件必须从头开始编写。良好的架构意味着编写高性能的代码以利用这些相对有限的机器。

然而,如今机器时间已经变得非常便宜,我们也有很多“构建模块”可供使用:从框架到云服务。软件架构仍然经常与成本相关:在决定使用哪些服务和技术时,需要考虑成本因素!

4. 软件工程中曾经出现过与我们现在看到的LLMs类似的大变革。 Grady举了两个他认为比今天的LLMs更具颠覆性的例子:

5. 软件工程的前两个“黄金时代”发生在1990年代之前。 Grady将20世纪70年代末和80年代初称为“软件工程的第一个黄金时代”,当时的重点是用算法解决问题,系统主要是单体架构。

他将“第二个黄金时代”称为20世纪80年代末,当时系统工程成为焦点——可读性变得比性能更重要——这是面向对象编程兴起的时期。

时间戳

( 00:00 ) 介绍

( 01:56 ) 成为IBM Fellow的意义

( 03:27 ) Grady与遗留系统的工作

( 09:25 ) Grady贡献过的一些领域示例

( 11:27 ) 软件开发领域的演变

( 16:23 ) Booch方法概述

( 20:00 ) Booch方法之前的软件开发

( 22:40 ) 与Paul和Mike成立Rational Machines

( 25:35 ) Grady与Bjarne Stroustrup的合作

( 26:41 ) ROSE与商业部门的合作

( 30:19 ) Grady如何与Ibar Jacobson和James Rumbaugh一起构建UML

( 36:08 ) 对UML的解释以及将其转变为编程语言的错误

( 40:25 ) IBM的收购以及Grady为何拒绝比尔·盖茨的工作邀请

( 43:38 ) 为什么UML不再被业界使用

( 52:04 ) Grady对形式化方法的看法

( 53:33 ) 软件架构师角色的演变

( 1:01:46 ) 软件开发中的颠覆性变化和重大飞跃

( 1:07:26 ) Grady早期在人工智能领域的工作

( 1:12:47 ) Grady与约翰逊航天中心的合作

( 1:16:41 ) Grady对大型语言模型(LLMs)的看法

( 1:19:47 ) Grady认为我们距离拥有感知能力的AI还有很长的路要走

( 1:25:18 ) Grady对经验较少的软件工程师的建议

( 1:27:20 ) Grady的未来计划

( 1:29:39 ) 快问快答环节

参考资料

与本期节目相关的《实用工程师》深度探讨:

现代后端实践的过去与未来

计算50年来的变化

软件工程师的AI工具:现实检验

Grady Booch的联系方式:

• X: https://x.com/grady_booch

• LinkedIn: https://www.linkedin.com/in/gradybooch

• 网站: https://computingthehumanexperience.com

节目中提到的内容:

• IBM: https://www.ibm.com

• Rational Software: https://en.wikipedia.org/wiki/Rational_Software

• Alan Kay: https://en.wikipedia.org/wiki/Alan_Kay

• IBM Basic assembly language and successors: https://en.wikipedia.org/wiki/IBM_Basic_assembly_language_and_successors

• SAGE: https://en.wikipedia.org/wiki/Semi-Automatic_Ground_Environment

• NATO: https://www.nato.int

• James Webb Space Telescope: https://science.nasa.gov/mission/webb

• UML: https://en.wikipedia.org/wiki/Unified_Modeling_Language

• Fortran: https://en.wikipedia.org/wiki/Fortran

• COBOL: https://en.wikipedia.org/wiki/COBOL

• Lisp: https://en.wikipedia.org/wiki/Lisp_(programming_language)

• ARPANET: https://en.wikipedia.org/wiki/ARPANET

• Simula: https://en.wikipedia.org/wiki/Simula

• Smalltalk: https://en.wikipedia.org/wiki/Smalltalk

• Ada: https://en.wikipedia.org/wiki/Ada_(programming_language)

• David Parnas: https://en.wikipedia.org/wiki/David_Parnas

• The Booch Method: https://en.wikipedia.org/wiki/Booch_method

• 柏拉图对话录: https://www.amazon.com/Dialogues-Plato-Enriched-Classics/dp/1439169489

• 抽象数据类型理论: https://en.wikipedia.org/wiki/Abstract_data_type

• Barbara Liskov: https://en.wikipedia.org/wiki/Barbara_Liskov

• Edsger W. Dijkstra: https://en.wikipedia.org/wiki/Edsger_W._Dijkstra

• Tony Hoare: https://en.wikipedia.org/wiki/Tony_Hoare

• Mike Devlin: https://en.wikipedia.org/wiki/Mike_Devlin_(entrepreneur)

• Arthur Rock: https://en.wikipedia.org/wiki/Arthur_Rock

• Hambrecht & Quist: https://en.wikipedia.org/wiki/Hambrecht_%26_Quist

• Rational R1000: https://en.wikipedia.org/wiki/Rational_R1000

• Bjarne Stroustrup: https://en.wikipedia.org/wiki/Bjarne_Stroustrup

• Rational ROSE: https://en.wikipedia.org/wiki/IBM_Rational_Rose

• Pure Atria: https://en.wikipedia.org/wiki/Pure_Software

• Reed Hastings: https://en.wikipedia.org/wiki/Reed_Hastings

• James Rumbaugh: https://en.wikipedia.org/wiki/James_Rumbaugh

• Dr. Ivar Jacobson: https://en.wikipedia.org/wiki/Ivar_Jacobson

• Philippe Kruchten: https://en.wikipedia.org/wiki/Philippe_Kruchten

• Winston Royce: https://en.wikipedia.org/wiki/Winston_W._Royce

• Walker Royce的《软件项目管理》: https://www.amazon.com/Software-Project-Management-Walker-Royce/dp/8177583786

• 大科技漫画背后的人: https://newsletter.pragmaticengineer.com/p/manu

• Redis: https://redis.io/

• NVIDIA: https://www.nvidia.com/en-us

• Dr. Mary Shaw: https://s3d.cmu.edu/people/core-faculty/shaw-mary.html

• 《软件架构:新兴学科的视角》: https://www.amazon.com/Software-Architecture-Perspectives-Emerging-Discipline/dp/0131829572

• Linux内核: https://en.wikipedia.org/wiki/Linux_kernel

• Linus Torvalds: https://en.wikipedia.org/wiki/Linus_Torvalds

• 林肯图书馆时间线: https://timeline.ll.mit.edu/timeline

• Andrew Ng: https://en.wikipedia.org/wiki/Andrew_Ng

• David Ferucci在LinkedIn上: https://www.linkedin.com/in/david-ferrucci

• 构建Watson:DeepQA项目概述: https://research.ibm.com/publications/building-watson-an-overview-of-the-deepqa-project

• Aldebaran: https://corporate-internal-prod.aldebaran.com/en

• 约翰逊航天中心: https://www.nasa.gov/johnson

• 心智社会: https://www.amazon.com/Society-Mind-Marvin-Minsky/dp/0671657135

• 子层架构: https://en.wikipedia.org/wiki/Subsumption_architecture

• 我是一个奇异的环: https://www.amazon.com/Am-Strange-Loop-Douglas-Hofstadter/dp/0465030793

• 约翰·卡梅隆: https://www.imdb.com/name/nm0131625

• Yann LeCun 在 X 上: https://x.com/ylecun

• 人工神经元: https://en.wikipedia.org/wiki/Artificial_neuron

• Grady 关于 LLMs 的推文: https://x.com/Grady_Booch/status/1697346790679593349

• Alphafold 源代码: https://github.com/google-deepmind/alphafold

• 宇宙:个人旅行: https://en.wikipedia.org/wiki/Cosmos:_A_Personal_Voyage

• Python: https://www.python.org

https://penname.co/ 负责制作和营销。如需咨询赞助播客事宜,请发送电子邮件至 [email protected]

文章来源:Software architecture with Grady Booch

关键问题与行动计划

关键问题 1: 如何评估大型语言模型(LLMs)在软件开发中的实际应用潜力?

行动计划:

  1. 进行行业分析:研究团队将针对软件开发行业,分析当前使用LLMs的案例,评估其在代码生成、错误检测和自动化测试等方面的实际应用效果。
  2. 收集开发者反馈:数据团队将通过调查问卷和社交媒体分析,收集开发者对LLMs的使用体验和需求,识别潜在的改进方向和市场机会。

关键问题 2: 软件架构的演变如何影响新兴技术的投资机会?

行动计划:

  1. 研究软件架构趋势:研究团队将分析过去50年软件架构的演变,特别是从单体架构到分布式系统的转变,识别出新兴技术(如微服务、容器化等)带来的投资机会。
  2. 评估技术整合:数据团队将评估当前市场上不同软件架构技术的整合情况,寻找能够提升效率和降低成本的创新解决方案,作为潜在投资标的。

关键问题 3: 如何利用经济学原理优化软件开发的成本结构?

行动计划:

  1. 成本效益分析:研究团队将对比不同软件开发方法(如敏捷开发、传统开发等)的成本效益,识别出最具经济效益的开发模式。
  2. 数据驱动决策:数据团队将收集和分析行业内的项目成本数据,建立模型预测不同开发策略的经济影响,为投资决策提供数据支持。

请告诉我们你对此篇总结的改进建议,如存在内容不相关、低质、重复或评分不准确,我们会对其进行分析修正