一项覆盖 900 万份死亡证明的研究发现,出租车和救护车司机死于阿尔兹海默症的比例,是全部 443 种职业里最低的。研究者认为,真正起作用的不是“开车”这件事本身,而是大脑里持续运转的那张实时地图。这让我们联想到另一群每天都在脑子里“画图”的人:手写 Rust 代码的程序员——所有权、借用、生命周期,这些概念逼着你在脑内维护一张动态更新的内存关系图。这算不算一种“认知锻炼”?云栈社区今天就来聊聊这个脑洞。
文章要点
- 一项覆盖 900 万份死亡证明、443 种职业的研究显示,出租车和救护车司机死于阿尔兹海默症的比例是所有职业中最低的,关键变量不是“开车”,而是“持续实时的空间导航”
- 由此引出一个类比推论:Rust 语言强制程序员在脑内持续构建并维护一张“内存所有权地图”——这种心智活动,会不会也是一种认知锻炼?
- 这只是一个基于类比的推论,目前没有任何直接证据证明“手写 Rust 能防痴呆”,本文会把这个类比拆开,看它哪里站得住、哪里站不住
一个反直觉的研究结果
2024 年,一组研究者做了一件挺“笨重”但很有说服力的事:把 2020 年 1 月到 2022 年 12 月、美国近 900 万份死亡证明拿出来,按照 443 种职业分类,统计每种职业死于阿尔兹海默症的比例。
结果出人意料:死亡率最低的两个职业,是出租车司机和救护车司机。
在做完年龄、性别、种族、教育程度等变量的调整之后,出租车和救护车司机死于阿尔兹海默症的比例大约是百分之一,而全体职业的平均水平是六十分之一。
更值得玩味的是:这个“保护效应”没有出现在其他驾驶类职业身上。公交司机、货运司机并不享有同样的低风险。也就是说,起作用的显然不是“坐在方向盘后面”这件事本身。
研究者给出的解释是:出租车和救护车司机每天都在做同一件别人不常做的事——持续的、实时的、不依赖导航软件的空间定位。你要在脑子里随时确认自己在哪、目的地在哪、路况变了要怎么改路线。这是一种不停歇的“建图—更新—重建”过程。
配合这个结论,还有一项 2023 年的研究:研究者用机器学习模型分析了两万两千多人的数据,发现仅凭“居住环境的空间复杂程度”(街道网络密不密、路口多不多、地标和可选路径丰不丰富),就能以 84% 的准确率预测某个邮编区域阿尔兹海默症的发病率高低。街道越“绕”,大脑好像被迫锻炼得越多。
一句话总结:不是开车本身在保护大脑,是大脑里那张不断被重新计算的地图在保护大脑。
转场:程序员脑子里也有一张地图
看到这个结论时,很容易联想到另一群人——程序员,尤其是写 Rust 的程序员。
这里要先说清楚为什么单拎 Rust 出来讲,而不是“程序员整体”。
因为大多数带垃圾回收(GC)的语言,比如 Java、Python、JavaScript、Go,恰恰是把“内存去哪儿了”这件事从程序员的脑子里拿走了。
你分配一个对象,用完就撒手不管,剩下的交给 GC。这当然解放了生产力,但从“要不要在脑内建图”这个角度看,GC 语言更接近“打车软件帮你规划路线”——你不需要自己记路。
Rust 反过来,它的编译器逼着你做另一件事:任何时刻,你都必须在脑子里清楚地知道,每一块内存现在“属于谁”、“谁在借用它”、“这个借用还能活多久”。 这不是比喻,是 Rust 的核心机制——所有权(Ownership)、借用(Borrowing)、生命周期(Lifetime)。
写下面这样几行代码时,脑子里实际发生的事情,和一个出租车司机在脑内更新路线,其实有点像:
fn main() {
let city_map = String::from("上海"); // city_map 拥有这块内存
let route = describe(&city_map); // 把"借用权"临时递给 describe
println!("{}: {}", city_map, route); // city_map 依然有效,因为只是借用
}
fn describe(name: &String) -> String {
format!("目的地是 {}", name)
}
编译器不会替你记住这些关系,它只会在你违反这些关系时报错——于是你被迫在心里一直挂着一张“资源归属—借用链—有效期”的动态图,稍有疏忽就会被编译器拦下来重新规划。
这和出租车司机“实时更新路线图”的相似之处,在于两者都要求持续的、不可外包的、动态更新的空间/关系推理,而不是一次性记住一张静态地图就完事。
下面这张图,试着把两种“心智地图”并排放在一起:

两个循环长得很像:都是“当前状态 → 检测变化/冲突 → 重新建模 → 回到循环起点”。这正是研究者所说的“持续实时更新”的核心特征。
拆开看:借用检查器到底逼你做了什么
如果只看变量和箭头还是有点抽象,不妨看一段更贴近真实场景的心智活动。假设你在写一个多个模块共享同一份数据的程序,脑子里实际要维护的关系大概是这样:

这张图里的每一条线,Rust 程序员在写代码的当下,都不能“想过就算了”——编译器会在编译期替你核对这张图有没有逻辑错误(比如同一时刻既有只读借用又有可变借用),一旦对不上就报错,你就得回到脑内那张图重新设计结构。
这种“编译器不允许你偷懒、必须持续维护一份内部一致的关系图”的体验,跟带 GC 语言“运行时兜底、脑内地图可以模糊一点也没关系”的体验,确实是两种不同强度的认知负荷。
这个类比,成立在哪里?
从认知科学的角度,出租车司机的空间导航和程序员的所有权推理,至少在几个维度上有共通之处,值得认真列出来:
- 都是“动态图结构”推理,而不是死记硬背。 记住一张固定地图和实时更新路线是两回事,前者更像背单词,后者更像下棋。所有权系统同理:记住语法规则和实时追踪每个引用的生命周期,也是两个难度级别。
- 都涉及“自我定位 + 关系追踪”的双重任务。 出租车司机要同时知道“我在哪”和“目的地关系如何变化”;Rust 程序员要同时知道“这块内存现在归谁”和“还有谁在借用它”。研究里提到,大脑处理空间地图时既有“第一人称沉浸式”视角,也有“上帝视角的全局地图”,这两种视角在海马体里是有重叠机制的——而写代码时,你既要看局部这一行怎么写(第一人称),也要看整个所有权结构有没有冲突(上帝视角),某种程度上也是双视角切换。
- 都是“不能外包给工具、必须自己扛”的认知负荷。 用导航软件开车和自己认路,对大脑的锻炼效果显然不同;同理,用 GC 语言写代码和手写 Rust 管理内存,对大脑的锻炼效果大概率也不同。原文里也明确提到,研究者自己也在问:通过屏幕做空间推理,和真实走在城市里做空间推理,锻炼的是不是同一套神经回路?这一点目前没有定论。 这一点对我们的类比同样成立——在 IDE 里“走位”和在真实街道上“走位”,到底是不是同一件事,同样没有定论。
这个类比,漏洞在哪里?
这里必须诚实一点,把话说完整——这个推论目前只是一个类比,没有任何直接研究支持“写 Rust 能降低阿尔兹海默症风险”。至少有这几个明显的漏洞:
- 样本完全不存在。 出租车司机的研究是拿 900 万份真实死亡证明做的流行病学统计;“Rust 程序员患病率更低”目前是零样本、零数据的纯推测,连一个像样的相关性研究都还没有。
- 认知负荷高≠对大脑有保护作用。 高强度脑力劳动和“锻炼大脑对应的保护性机制”不是一回事。程序员长期高压、久坐、睡眠不足,这些负面因素同样会影响大脑健康,甚至可能抵消掉“心智建图”带来的好处。
- 其他编程语言的程序员也在做复杂心智建模。 写分布式系统的 Java 程序员要在脑内维护并发时序图,写函数式代码的 Haskell 程序员要在脑内维护类型和单子链条,这些认知负荷未必比 Rust 的所有权系统轻。把“防痴呆”的功劳单独记在 Rust 头上,本身就是一种“幸存者偏差式”的归因。
- 原研究强调的是“真实空间导航”,而写代码是一种抽象符号操作。 论文原文特别提出了一个尚无答案的问题:通过屏幕做空间推理是否等同于走在真实城市里做空间推理。 这个问题目前没有答案,直接把结论从“真实街道导航”平移到“IDE 里的抽象所有权图”,中间跳过了一大截还没被验证的逻辑链条。
所以严谨地说,“古法 Rust 程序员更不容易得阿尔兹海默症”目前只能算一个尚待验证、大概率无法验证(样本、对照组都极难设计)的有趣类比,不是可以拿去当健康建议的结论。
比“选哪种编程语言”更靠谱的推论
如果把这次类比往回收一收,能提炼出一条相对站得住脚的推论,其实来自原文反复强调的一点:
真正可能起保护作用的,不是某个具体职业或某种具体语言,而是“认知复杂度”本身——持续的、不能自动化、不能外包给工具的心智建模活动。
原文也提到,认知复杂的职业和延缓认知衰退、降低痴呆风险之间,此前已经反复被研究关联到,即便把教育水平这个变量控制住,这个关联依然存在。这背后常被提到的机制叫“认知储备”(cognitive reserve)——大脑长期被高强度使用后,会积累出一定的“缓冲能力”,让它在面对病理性损伤时,功能维持得更久。
对应到程序员群体,与其纠结“选 Rust 还是选 Go 更防痴呆”,更靠谱的推论可能是:只要你的工作长期需要你在脑内主动建模、主动推理关系、而不是把这件事全权交给工具(无论是 GC、AI 代码生成,还是任何“帮你想”的自动化手段),大概率都在做类似“认知锻炼”的事情。 这也是为什么标题里特意强调“古法”——不用 AI 生成、自己一行行在 IDE 里写代码的这个过程,本身可能比“写的是哪种语言”更关键。
小结:脑洞归脑洞
出租车司机的研究给了我们一个挺扎实的启发:大脑喜欢的不是“知道答案”,而是“持续解题”。 一张固定不变、可以彻底记熟的地图,锻炼不了大脑;真正有用的,是那种必须不断重新计算、随时可能被打破重建的动态关系图。
程序员每天面对的 Bug、架构调整、编译错误,某种意义上也是这样一种“随时被打破重建”的心智地图训练——Rust 只是把这个过程做到了极致,强制你时刻保持清醒。但这仅仅是一个类比,能不能真正防痴呆,得靠未来真正的流行病学研究去验证,而不是靠一篇脑洞文章下结论。
在那之前,能确定的大概只有一件事:下次编译器又因为借用检查报错而把你搞崩溃的时候,你至少可以安慰自己一句——这可能是在给大脑做免费的体检。
参考资料
本文核心推论部分为作者基于类比的思想实验,不构成医学建议,亦未经过同行评审的科学验证。