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