计算机界痛失泰斗!92岁图灵奖得主去世,打赌赢了老板6便士
【导读】巨星陨落!图灵奖得主、快速排序之父Tony Hoare逝世,享年92岁。这一生,他都在对抗计算复杂性,用六便士的「豪赌」创造出影响世界的经典算法。
计算机科学界,再次失去了一位巨人!

3月5日,图灵奖得主、牛津大学前教授Tony Hoare教授在英国剑桥辞世,享年92岁。

直至今天,Hoare生前密友Jim Miles一篇悼念长文,才向世人揭开了这个令人心碎的消息。
一时间,这篇发表在Computational Complexity上的文章,登上了HK热榜第一。

Tony Hoare的一生,不仅定义了现代编程的基石,更以其谦逊而深邃的人格魅力,影响了无数后辈。
大多数数学、计算机本科生认识他,是因为那行云流水般的「快速排序」(Quicksort)算法。

一大批计算机学生在评论区中纷纷缅怀
除此之外,Hoare还在ALGOL语言、霍尔逻辑、并发系统理论(CSP)、管程(Monitor)概念,以及经典的「哲学家就餐问题」等领域留下了开创性成就,共同构成了现代计算科学的基石。
凭这些成就,Hoare在1980年拿下了「图灵奖」。
此后四十余年,京都奖、骑士勋章、皇家学会院士、皇家奖章……荣誉接踵而至,一路追到他92岁。
在宏大的学术光环之外,真实的Hoare是一位怎样的人?
用哲学逻辑,重构计算世界
在计算机科学的星河中,Tony Hoare是一颗独特的恒星。
他并非出身于工程门第,而是带着拉丁文、希腊文与哲学的深厚积淀步入数字领域。
透过好友Jim Miles笔下那些尘封的往事,我们得以窥见老爷子背后的另一面:
一个谦逊、幽默且真实动人的内心世界。

从古典文学到「机器翻译」跨界传奇
1934年,Hoare出生于锡兰(今斯里兰卡)的科伦坡。
少年时代,他先后在牛津的Dragon School和坎特伯雷的King's School接受教育,随后进入牛津大学默顿学院,研读古典学与哲学(即牛津著名的「Greats」课程)。
正是对现代哲学和逻辑学的探索,为他日后理解程序语义埋下了伏笔。
Hoare的学术起点并非计算机,他大学时代深耕于古典文学和哲学。
这段看似「不务正业」的经历,赋予了他逻辑严密且极具人文关怀的思维方式。
退伍后,凭借在「三军语言学校」(JSSL)练就的流利俄语,Hoare接下了一份向全球展示早期计算机的工作。
他谦虚地称这些展示场所为「交易会」(fairs),实际上他不仅是演示员,更是深度参与设备代码开发的工程师。
在那个时代,想要演示好机器,必须对底层架构了如指掌。
「快速排序」的诞生
1956年毕业后,Hoare曾在皇家海军服役两年,随后前往莫斯科大学,追随数学大师Andrey Kolmogorov学习机器翻译。
正是在为字典排序的过程中,Hoare脑中闪现了一个天才的想法——快速排序(Quicksort)。

回到英国后,在Elliott Brothers公司工作的他,通过学习Edsger Dijkstra等人提出的递归概念,终于为快速排序找到了最简洁、明晰的表达方式。
六便士,赌赢了整个代码界
关于快速排序的诞生,流传着一个富有传奇色彩的「赌约」。
当年,Hoare在Elliott工作时,曾告诉老板——自己能写出比现有程序更快的排序算法。
老板打趣道,「我跟你赌六便士,你肯定写不出来」。

果不其然,Hoare做到了,他写出的「快速排序」从此改变了世界。
Hoare曾亲口证实,他确实赢到了那枚六便士硬币。
但在这种自信背后,藏着一种极高的专业素养:即便他确信新算法更优,也依然先严谨地完成了老板交代的旧算法开发任务,随后才提出改进方案。
值得一提的是,在Elliott Brothers工作这段经历,不仅让Hoare收获了事业的起点,还让他与团队里的女同事Jill Pym喜结连理,两人相伴了一生。


奠定现代编程基石
Hoare的贡献远不止一个排序算法,他的研究深刻改变了人类开发程序的方式:
霍尔逻辑(Hoare Triples)
1968年进入贝尔法斯特女王大学任教后,Hoare不满于当时含糊的程序文档。
他受Robert W. Floyd的启发,开发了一套逻辑系统,即著名的「霍尔三元组」概念:
在某种前提条件下,执行一段程序代码,会产生特定的结果。

这让程序员能够通过数学逻辑证明程序的正确性,而不是在错误发生后才去修补。
这一理论让「证明程序的正确性」变得像解数学题一样严谨。
通信顺序进程(CSP)
在艾略特公司时期,Hoare曾因未能成功交付Mark II操作系统的「并行处理」(Concurrency)功能而深感遗憾。
这促使他在牛津大学期间发奋钻研。
1978年,他提出了CSP理论,主张进程间通过「预设的通信」而非「共享内存」来交互。
这一理论直接启发了后来的Go语言、Erlang,以及Transputer架构。

而在并发领域,Hoare还有一个几乎所有操作系统课本科生都绕不开的经典贡献——「哲学家就餐问题」(Dining Philosophers Problem)。
这个问题最初由Dijkstra在1965年以学生考题的形式提出,但正是Hoare将它改写成了我们今天熟知的版本:
五个哲学家围坐圆桌,每人之间只有一把叉子,必须同时拿到两把才能吃饭。
它精准地描述了并发系统中的死锁、饥饿和资源竞争问题,至今仍是全球CS课堂的必讲案例。
管程(Monitor),并发编程的守护者
除了CSP,Hoare还提出了「管程」(Monitor)概念,用于构建计算机操作系统的并发控制机制。
如果你写过Java,用过synchronized关键字,那你其实就是在使用Hoare思想的后裔。
管程为共享资源的访问提供了一种结构化的同步方式,避免了程序员直接操纵低级锁和信号量时容易犯的错误。
这与CSP一起,构成了Hoare在并发领域的「双子星」贡献。
ALGOL 60编译器,坦诚十亿美元错误
在Elliott期间,除了排序算法,Hoare另一重大的贡献是,带队开发出ALGOL 60语言的编译器。
在当时,ALGOL 60是一种非常先进且复杂的语言,他却成功做到了。但这在后来,又发生了一些小插曲。

Hoare曾在晚年坦诚,自己在1965年设计ALGOL W语言时,引入的「Null Reference」是一个巨大的失误。
这导致了后来数十亿美金的系统崩溃和安全漏洞。
2009年,他在伦敦QCon大会上,发表了主题为Null References: The Billion Dollar Mistake的演讲,全程充满了懊悔和歉意。

这种勇于反思的科学态度,更显其大师风范。

失败中淬炼的「简单哲学」
很多人只知道Hoare的荣耀。但少有人知道,他也经历过职业生涯的「至暗时刻」。
成功开发ALGOL 60编译器后,Hoare被提拔为首席工程师,领导Elliott 503 Mark II操作系统项目。
结果项目彻底失败,而他也被「下放」做了两年小客户定制软件。
多年后回忆,他说转折点是上司的一声怒吼:「你放任你的程序员做你自己都不理解的事情!」
一语惊醒梦中人。他意识到自己偏离了「简单性」这条路。
这次惨痛教训,直接催生了他最广为流传的格言:
「构建软件设计有两种方式:一种是让它足够简单,以至于明显没有缺陷;另一种是让它足够复杂,以至于没有明显的缺陷。前者要困难得多。」
这句话出自他1981年发表的图灵奖演讲《皇帝的旧衣》(The Emperor's Old Clothes),至今仍被无数程序员奉为圭臬。
追求「优雅」的斗士
46岁那年,Hoare获得了1980年的图灵奖,其授奖词特别强调了他对编程语言设计的卓越贡献。
他的一生都在与「复杂性」作斗争。

他曾发出著名的警示:软件设计的核心在于简单与优雅。
简洁与优雅是控制软件复杂性的唯一途径。 只有当软件结构在人类的理智控制范围内,它才是安全的。
Hoare直言不讳地指出,现代软件中的许多安全漏洞(如病毒、恶意软件)其实源于编程语言设计的缺陷。
他那篇经典的《编程语言设计提示》,至今仍是程序员和语言设计师的必读手册。

论文地址:https://flint.cs.yale.edu/cs428/doc/HintsPL.pdf
2000年,他不仅荣获了被誉为「日本诺贝尔奖」的京都奖。
还因其在教育和计算机科学领域的杰出贡献,被英国女王亲自授勋,封为骑士(这也是为什么很多人尊称他为 Sir Tony Hoare)。
此外,他还是英国皇家学会和英国皇家工程院的双料院士。

微软「翘班」看电影
活成了最有趣的天才
即便步入耄耋之年,Hoare依然保持着敏锐的洞察力和孩子般的幽默感。
1999年,从牛津大学退休后加入剑桥微软研究院,他并没有养老,而是出版了重要的《统一理论》(Unifying Theories)。

同时,还牵头发起了「大挑战」(Grand Challenges)和「验证软件」(Verified Software)的国际合作项目。
这能更好地呼应,他「一生都在与复杂性作斗争」的斗士形象。
有趣的是,在微软工作期间,他有时会在下午「翘班」去当地艺术电影院看电影。
当这个小秘密被同事识破时,他坦然承认了这一爱好。
而在讨论技术前沿时,他偶尔会故作神秘地调侃政*掌握着领先时代的黑科技,配合一个意味深长的耸肩,常让晚辈分不清他是在严肃讨论还是在风趣「钓鱼」。
不仅如此,Hoare对好莱坞式的美化有着清醒的认知。
他曾探讨过电影《心灵捕手》对「天才」的误读:电影里的天才总能在瞬间解开难题,而现实中的天才往往需要为了一个问题苦思冥想数年。
在他看来,抽象领域的突破源于无数小时的专注思考,而非某种毫无征兆的凭空赋予。
这种务实的科学观,贯穿了他的一生。


Tony Hoare走了。
他用一生告诉我们:
真正的优雅,不在于从未犯错,而在于永远有勇气面对错误、追求更简洁的答案。
参考资料:
https://blog.computationalcomplexity.org/2026/03/tony-hoare-1934-2026.html
https://amturing.acm.org/award_winners/hoare_4622167.cfm
https://x.com/btaylor/status/2031403214046888321?s=20
https://www.bcs.org/media/1wrosrpv/facs-jul24.pdf#page=5
声明:本文转载自新智元,转载目的在于传递更多信息,并不代表本社区赞同其观点和对其真实性负责,本文只提供参考并不构成任何建议,若有版权等问题,点击这里。
游客
- 鸟过留鸣,人过留评。
- 和谐社区,和谐点评。
AI 中文社