没有人知道整个系统是如何运作的

发布: (2026年2月9日 GMT+8 13:28)
7 分钟阅读

Source: Hacker News

推特倒闭后 LinkedIn 的崛起

Twitter 倒闭带来的一个让我(至少)感到意外的后果是 LinkedIn 作为社交媒体平台的崛起。我看到了一些有趣的帖子,想在此提醒大家。

Simon Wardley – “在不了解工作原理的情况下构建事物”

Simon Wardley 在 LinkedIn 上的帖子

Adam Jacob – 对 Wardley 的回应

Adam Jacob 在 LinkedIn 上的帖子

Bruce Perens – 加入讨论

Bruce Perens 在 LinkedIn 上的帖子

Louis Bucciarelli – 《设计工程师》(1994)

几年前,我参加了一个关于技术素养的全国性会议……其中一位主要演讲者——一位社会学家——以问卷调查的形式展示了他收集的数据。经过详细的统计分析后,他得出结论:我们是一个技术文盲的国家。例如,他指出我们中只有不到 20 % 的人知道电话是如何工作的。

这句话让我顿时哑口无言。我的思绪开始漂移,充满焦虑。我真的知道我的电话是怎么工作的吗?

我在座位上扭动身体,随手涂鸦,然后自问:知道电话是怎么工作意味着什么? 是指会拨打本地或长途号码吗?这点我当然知道,但这似乎不是问题的核心。

不,我怀疑这个问题应在另一个层面上理解,即探询受访者对我们可以称之为“设备物理原理”的认识。我脑中浮现出一个振膜的形象:它被说话时的压力变化激励,振动并在磁场中来回驱动线圈……如果演讲者的意思是这样,那么他说得对:大多数人并不知道电话是如何工作的。

实际上,我在想,演讲者自己知道他的电话是怎么工作吗?他了解用于实现长途通话最佳路由的启发式算法吗?他了解用于回声和噪声抑制的算法细节吗?他知道信号是如何传输到轨道卫星并从卫星返回的吗?他知道 AT&T、MCI 以及本地电话公司如何同时使用同一网络吗?他知道维持该系统运行需要多少操作员,或者这些维修人员爬上电话杆时到底在做什么吗?他了解企业融资、资本投资策略,或监管在这个庞大而复杂的通信系统中所起的作用吗?

有人真的知道自己的电话是怎么工作的吗?

有一个技术面试题大致是这样问的:“当你在浏览器地址栏输入 URL 并按 Enter 时会发生什么?”你可以从各种不同层面(例如 HTTP、DNS、TCP、IP……)来解释。但真的有人能理解所有层面吗?你知道


关于在你实际敲击 Enter 键时在操作系统内部触发的中断?你知道你的笔记本现在使用的 802.11ax Wi‑Fi 协议采用的是哪种调制方式吗?能否解释 quadrature amplitude modulation (QAM)quadrature phase‑shift keying (QPSK) 的区别,并判断你的笔记本当前使用的是哪一种?你熟悉 ARM 处理器的放宽内存模型 吗?JVM 中的垃圾回收是如何工作的?你理解芯片内部的场效应晶体管是如何实现数字逻辑的吗?

我记得曾和 Brendan Gregg 谈过他在技术面试中的做法,那时我们都在 Netflix 工作。他告诉我,他感兴趣的是找出候选人知识的极限,以及他们在达到极限时的反应。因此,他会不断追问更深入的问题,直至候选人不再知道答案。然后他会观察他们是会坦诚地说 “我不知道这个问题的答案”,还是会硬撑。他明白没有人能把系统彻底弄懂。

在各自的角度上,Wardley、Jacob、Perens 和 Bucciarelli 都是对的。

Wardley 认为在我们不了解底层机制的情况下构建东西是危险的。这正是我们行业里把 magic 当作贬义词的原因。magic 指的是那些为了让开发更容易而故意隐藏底层机制的框架。

摘自 Louis Bucciarelli 的著作 Designing Engineers,MIT Press,1994 年。


所有图片均托管在作者的博客 (surfingcomplexity.blog)。链接指向原始的 LinkedIn 帖子。

Rails is the canonical example of a framework that uses magic.  

Jacob is right that AI is changing the way that normal software development work gets done. It’s a new capability that has proven itself to be so useful that it clearly isn’t going away. Yes, it represents a significant shift in how we build software; it moves us further away from how the underlying stuff actually works, but the benefits exceed the risks.  

Perens is right that the scenario that Wardley fears has, in some sense, already come to pass. Modern CPU architectures and operating systems contain significant complexity, and many software developers are blissfully unaware of how these things really work. Yes, they have mental models of how the system below them works, but those mental models are incorrect in fundamental ways.  

Finally, Bucciarelli is right that systems like telephony are so inherently complex, have been built on top of so many different layers in so many different places, that no one person can ever actually understand how the whole thing works. This is the fundamental nature of complex technologies: our knowledge of these systems will always be partial, at best. Yes, AI will make this situation worse. But it’s a situation that we’ve been in for a long time.
0 浏览
Back to Blog

相关文章

阅读更多 »