网易首页 > 网易号 > 正文 申请入驻

托尼·霍尔逝世:他发明了让无数程序员头疼的null

0
分享至

今天,计算机科学博客 Computational Complexity 披露了一则消息:图灵奖得主、快速排序算法发明人、null 引用的提出者托尼·霍尔(Tony Hoare)于 2026 年 3 月 5 日在英国剑桥安然离世,享年 92 岁。

如果你写过代码,那么一定遇到过它:一个让程序突然崩溃、屏幕上跳出红色报错的元凶——“NullPointerException”,也就是我们常说的“null”,代表“无效的,缺失的,无意义的,空值”。

这个让无数程序员头疼、让无数系统宕机的概念,正是由霍尔在 1965 年亲手引入。他后来称之为“价值十亿美元的错误”,并在 2009 年的一场软件大会上公开为它致歉。

但他的一生也成就无数,霍尔是快速排序算法、霍尔逻辑、CSP 并发理论的奠基者,也是 20 世纪最具影响力的计算机科学家之一。

从古典学到计算机:一段意外的旅程

托尼·霍尔,全名查尔斯·安东尼·理查德·霍尔(Charles Antony Richard Hoare),1934 年 1 月 11 日出生于锡兰(今斯里兰卡)科伦坡。父亲是英国殖民地公务员,母亲出身茶园主家庭。他在英国接受教育,先后就读于牛津龙校和坎特伯雷国王学校,随后进入牛津大学默顿学院。有趣的是,他主修的既不是数学也不是工程,而是古典文学与哲学。

1956 年从牛津毕业后,霍尔在皇家海军服役 18 个月,期间系统学习了俄语。这段语言训练后来成为他人生的关键转折:他以英国文化协会交换生身份前往莫斯科国立大学,师从数学家安德烈·柯尔莫哥洛夫,参与早期计算语言学与机器翻译研究,由此他真正踏入了计算机科学领域。

1960 年回国后,霍尔加入伦敦埃利奥特兄弟有限公司(Elliott Brothers Ltd),正式开启编程生涯。讣告作者吉姆·迈尔斯(Jim Miles)在回忆文章中提到,霍尔曾担任早期计算机的“演示员”,足迹遍布全球,尤其是苏联。在那个年代,既精通俄语又懂计算机原理的人,实在凤毛麟角。

就在伦敦工作期间,霍尔完成了一件改变算法史的事。

当时公司要求他实现一种排序算法。霍尔完成任务后告诉老板,自己其实知道一种更快的方法。老板半信半疑,回应说:“我赌你六便士,你做不到。”但结果,快速排序(Quicksort)果真更快,赌注也如实兑现。

霍尔晚年多次向朋友讲述这段往事,每次都绘声绘色。迈尔斯回忆,自己曾好奇这个“赌注”究竟是比喻还是真事,霍尔明确确认:那六便士他真的拿到了。

快速排序发明于 1959 至 1960 年间,霍尔当时年仅 26 岁。这个算法至今仍是全球使用最广泛的排序算法之一,几乎出现在所有计算机科学的基础教材中。毫不夸张地说,如今你每天使用的绝大多数软件系统,都在某处运行着快速排序。

凭借这项贡献,以及他在编程语言理论、操作系统、并发模型等领域的系列成就,霍尔于 1980 年获得计算机科学最高荣誉:ACM 图灵奖,表彰他“在编程语言定义和设计方面的基础性贡献”。2001 年,他因对计算机科学的杰出贡献获封爵士。

“我发明了它,我来道歉”

然而,让霍尔在程序员群体中广为熟知的,或许并非那些成就,而是一次公开的致歉。

2009 年,在伦敦 QCon 软件大会上,75 岁的霍尔站上台,以一种罕见的姿态,向全场数百名工程师正式致歉。他称 null 引用为“价值十亿美元的错误”(the Billion Dollar Mistake)。因为一个小小的 null 在过去四十年间造成了无数错误、漏洞和系统崩溃,带来的损失恐怕超过十亿美元。

null 到底错在哪里?要理解这一点,得回到 1965 年。

彼时,霍尔正在设计 ALGOL W 语言的引用类型系统。他希望系统足够安全,避免程序员因使用不存在的对象而导致程序崩溃。但在设计过程中,他引入了一个特殊值——null,用于表示“这个引用目前什么都没有指向”。逻辑上看,这似乎是个合理甚至有用的设计。但现实中,问题却像滚雪球般扩大。

因为 null 的本质是“什么都不是”,所以它基本可以出现在任何需要"某个东西"的地方,冒充任何类型的引用值。而当代码没有检查变量是否为 null 就直接使用时,程序就会在运行时崩溃,这就是所谓的“空指针解引用”。

这类错误几乎出现在所有主流编程语言中:Java 会抛出 NullPointerException,C/C++ 可能导致程序崩溃,JavaScript 甚至同时存在 null 和 undefined 两个相似概念,让人困惑。

更严重的是,null 引发的漏洞还被黑客利用,成为安全攻击的突破口。在底层系统中,如果程序在解引用指针前没有检查其是否为空,就可能触发“空指针解引用”。在某些情况下,攻击者甚至可以借此操控程序执行流程,从而实现提权或代码执行。

例如在 Linux kernel 的早期版本中,研究人员曾发现多处空指针解引用漏洞。由于当时系统允许用户程序映射地址 0,攻击者可以在该位置放置恶意代码,再触发内核错误,从而实现本地提权。

类似问题也曾出现在 Mozilla Firefox 等浏览器软件中。攻击者通过构造特定网页触发空指针访问,轻则导致浏览器崩溃,重则可能成为更复杂攻击链的一部分。

而且,有些魔幻的是,null 带来的麻烦还不只停留在代码世界里。

在美国,至今仍有许多姓 Null 的人,他们的日常生活被这个特殊字段搅得一团糟。由于 null 的特殊性,他们买机票时系统会认定为姓氏栏是空的,酒店预订表单一填完就自动清空,签证申请显示"用户不存在"。弗吉尼亚州的詹妮弗·努尔(Jennifer Null)向媒体承认说,越是重要的服务,越难跟系统讲清楚自己“真实存在”。

更离奇的遭遇者是约瑟夫·塔塔罗(Joseph Tartaro)。2016 年,他为了和妻子凑一对“NULL + VOID”的情侣车牌,向加州车管所申请了"NULL"号牌。2018 年他缴纳了一张 35 美元的普通罚单,系统由此将他的信息与"NULL"字段绑定,此后,全州所有忘记填写车牌号的空白罚单,都自动寄到了他名下。从弗雷斯诺到兰乔库卡蒙加,他从未涉足的城市接连发来罚单,累计金额超过 12,000 美元。

他在黑客大会“DEF CON”上公开讲述此事,演讲题目直接叫《去你的 NULL》。

如何消除 null

过去几十年间,语言设计者们纷纷尝试从根本上解决这个问题。Java 后来引入了 Optional 类型,Kotlin 在语法层面严格区分可空类型与非空类型,Rust 则干脆取消 null,改用 Option

枚举来表示"有值"或"无值"两种状态,并由编译器强制要求程序员处理所有可能情况。Swift、Haskell、Elm 等语言也采用了类似思路。

在这些新语言中,一个变量如果可能为空,它的类型本身就会明确标注,编译器会拒绝那些忘记做空值检查的代码通过编译。

这场语言层面的变革,在一定程度上由霍尔那次坦诚的公开道歉所推动。他的“错误”,反而成为了推动编程语言安全性进步的重要动力。

瑕不掩瑜:霍尔的其他贡献

在 null 和快速排序之外,霍尔还有许多影响深远的成就。

他提出的霍尔逻辑(Hoare Logic),是一套用数学方式验证程序正确性的公理体系。简单来说,它允许程序员用严格逻辑证明一段代码“一定会做到它声称要做的事”,而不只是靠测试碰运气。这套理论奠定了形式化验证领域的基础,今天航空、汽车、核能等安全关键领域的软件认证,仍在使用它的衍生工具。

他发展的 CSP(通信顺序进程),是描述并发程序行为的形式语言。Go 语言的 channel 机制、Erlang 的 Actor 模型,都在不同程度上受到 CSP 的影响。在多核、多线程计算早已普及的今天,这套理论的价值不言而喻。

他还参与编写了《结构化编程》一书,与迪杰斯特拉等人共同推动"结构化编程"思想的普及,终结了充斥着 goto 语句的混乱代码时代。

1977 年,霍尔受聘牛津大学,成为编程研究小组负责人,后来担任首位克里斯托弗·斯特拉奇计算教授,直至 2000 年退休。此后,他在剑桥微软研究院继续工作,将毕生所学贡献给学术社区。

迈尔斯的回忆文章中,还有一个令人印象深刻的细节。

晚年时,霍尔与友人聊到计算机的未来:关于摩尔定律是否触顶、量子计算能否破解现有加密算法。霍尔沉吟片刻,说了一句让在场所有人都不禁深思的话:

“当然,我们拥有的东西根本无法接近政府能接触到的。它们永远远远领先于你能想象的。”

当被追问是否相信量子技术已能破解大素数分解难题时,他只是耸了耸肩。

谁也不知道,这是他真实掌握的内幕,还是故意用玩笑调侃提问者。据迈尔斯形容,霍尔极具幽默感,完全有能力用一本正经的讽刺把人带进沟里,直到你恍然大悟这是个玩笑。

迈尔斯还在文章中特别提到了霍尔的谦逊。在快速排序的“六便士赌注”故事里,有个细节尤为动人:霍尔在提出自己知道更快算法之前,老老实实先把公司要求的那个较慢算法完整实现了。他认为自己是对的,但没有先叫板,而是先完成工作,再表达不同意见。

这种专业精神贯穿了他整个职业生涯。霍尔不仅愿意承认别人的贡献,也愿意公开承认自己的错误。他对 null 的那次道歉,在计算机科学界至今仍是一段佳话,不仅因为内容本身,更因为一位图灵奖得主愿意就此公开站出来说“我错了,我很抱歉”。

真正的大师,不会因为荣耀而回避错误,反而正是通过正视错误,让整个行业走得更远。霍尔或许就是一个最好的诠释。

愿他安息。

1.https://blog.computationalcomplexity.org/2026/03/tony-hoare-1934-2026.html

运营/排版:何晨龙

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
王毅同伊朗外长阿拉格齐会谈 :中伊两国是全面战略伙伴,中国也愿同伊朗加强对话合作,维护好伊朗的正当权益

王毅同伊朗外长阿拉格齐会谈 :中伊两国是全面战略伙伴,中国也愿同伊朗加强对话合作,维护好伊朗的正当权益

每日经济新闻
2026-09-17 09:11:29
49岁陈建州血管堵90%突发心梗!两个致命错误,很多人年轻人都在犯

49岁陈建州血管堵90%突发心梗!两个致命错误,很多人年轻人都在犯

消化石医生
2026-09-17 19:49:23
中美谈判结束,中方上将登机回国,台海结局已经写好,美战机折返

中美谈判结束,中方上将登机回国,台海结局已经写好,美战机折返

归史
2026-09-15 21:42:50
“土且不得体!”女中学生坚持内衣外穿,母亲做法让人无语!

“土且不得体!”女中学生坚持内衣外穿,母亲做法让人无语!

世界圈
2026-09-15 15:37:17
醉驾挪车被吊销驾照 他起诉交管支队 “是你们让我挪的” 法院:喊话挪车不等于许可醉驾 驳回!

醉驾挪车被吊销驾照 他起诉交管支队 “是你们让我挪的” 法院:喊话挪车不等于许可醉驾 驳回!

闪电新闻
2026-09-17 11:27:42
重磅:乌克兰摧毁俄南部最大的库班斯克炼油厂!

重磅:乌克兰摧毁俄南部最大的库班斯克炼油厂!

项鹏飞
2026-09-14 17:37:51
生男生女取决于父亲?错!多项研究发现:胎儿性别主要取决于母亲!爸爸发牌,妈妈是赛道设计师

生男生女取决于父亲?错!多项研究发现:胎儿性别主要取决于母亲!爸爸发牌,妈妈是赛道设计师

菁妈育儿
2026-09-17 15:54:18
大难已过,9月全面回暖!这3个生肖打破僵局,事业与财运双丰收

大难已过,9月全面回暖!这3个生肖打破僵局,事业与财运双丰收

毅谈生肖
2026-09-16 16:19:06
身价暴涨!梁文锋或将超越张一鸣,拿下中国首富

身价暴涨!梁文锋或将超越张一鸣,拿下中国首富

大厂财经社
2026-09-17 11:11:57
王志文:社会生存铁律——说好话搞定50%,给东西搞定70%,两样都做搞定90%

王志文:社会生存铁律——说好话搞定50%,给东西搞定70%,两样都做搞定90%

杏花烟雨江南的碧园
2026-09-06 15:15:03
不查不知道,一查真是没想到,原来刘翔的教练孙海平,在刘翔退役的这十多年里,一直在担任跨栏教练,一个71岁的老人,头发几乎全白了

不查不知道,一查真是没想到,原来刘翔的教练孙海平,在刘翔退役的这十多年里,一直在担任跨栏教练,一个71岁的老人,头发几乎全白了

一袭纸鸢w
2026-08-29 09:37:37
大连市委书记熊茂平被免职,去向未定

大连市委书记熊茂平被免职,去向未定

张嘴说财经
2026-09-17 16:43:09
发现一个现象:中产返贫三件套,已经升级为六件套了!

发现一个现象:中产返贫三件套,已经升级为六件套了!

番外行
2026-05-18 10:25:35
9月13日直播中衣料滑动引发弹幕提醒,镜头为何仍未及时调整?

9月13日直播中衣料滑动引发弹幕提醒,镜头为何仍未及时调整?

动物奇奇怪怪
2026-09-17 12:00:45
1-1!申花在亚冠赛“吃亏了”,对手越位进球有效,队员一声不吭

1-1!申花在亚冠赛“吃亏了”,对手越位进球有效,队员一声不吭

汪星人哟
2026-09-17 21:05:01
WTT支线赛:女单大爆冷!头号种子1:3不敌日本,国乒女单5人出局

WTT支线赛:女单大爆冷!头号种子1:3不敌日本,国乒女单5人出局

国乒二三事
2026-09-17 14:48:43
浙江一妻子伺候卧床丈夫7年,出门倒垃圾却忘带钥匙,谁料,趴窗看到屋内一幕,她当场崩溃大哭

浙江一妻子伺候卧床丈夫7年,出门倒垃圾却忘带钥匙,谁料,趴窗看到屋内一幕,她当场崩溃大哭

大爱三湘
2026-09-15 23:52:25
大开眼界!许家印当年奢靡生活曝光

大开眼界!许家印当年奢靡生活曝光

麦杰逊
2026-08-23 15:09:25
敬一丹病逝后,亿万资产的丈夫处境曝光,恩爱41年私下却分得很清

敬一丹病逝后,亿万资产的丈夫处境曝光,恩爱41年私下却分得很清

史之韵
2026-09-17 15:49:16
里程碑,山东泰山旧将格德斯打进个人职业生涯第200粒进球

里程碑,山东泰山旧将格德斯打进个人职业生涯第200粒进球

懂球帝
2026-09-17 16:35:07
2026-09-18 03:16:49
DeepTech深科技 incentive-icons
DeepTech深科技
麻省理工科技评论独家合作
17259文章数 515216关注度
往期回顾 全部

科技要闻

影视飓风Tim反掰iPhoneDuo被质疑

头条要闻

永和豆浆视频被指擦边:女子穿蕾丝吊带 脱黑丝袜洗澡

头条要闻

永和豆浆视频被指擦边:女子穿蕾丝吊带 脱黑丝袜洗澡

体育要闻

逆转朝鲜,国足亚运队“啃老”过关

娱乐要闻

rapper赵涛恋情曝光!带甜馨妈妈散步

财经要闻

缺钱的追觅 隐藏的债务?

汽车要闻

小鹏G9L限时售23.18万 旗舰级的配置/诱人的价格

态度原创

艺术
游戏
手机
旅游
健康

艺术要闻

色彩狂魔比肖夫:评论家说他与表现主义调情,野兽派看了都沉默!

TES冒泡赛前换教练,小天阿水重回巅峰晋级S16,iG只剩一条命!

手机要闻

鸿蒙7花粉Beta版有惊喜,华为Mate 60系列手机升级后新增支持眼动翻页功能

旅游要闻

让双节旅游市场活力更加充分释放

剧烈头痛伴呕吐,警惕脑动脉瘤破裂

无障碍浏览 进入关怀版