作者通过创建一种树重写转换,探索了在 TypeScript 编译器中加入 Go 风格 `defer` 语句的可能性。通过解析 `defer` 并将其转译为执行闭包栈的 `try...finally` 块,该实现成功模拟了 Go 语言“后进先出”(LIFO)的清理行为以及立即求值的参数传递机制。 然而,作者最终认为 `defer` 并不适合 TypeScript。在 Go 中,`defer` 的优雅源于其将错误视为返回值的处理方式;而在 TypeScript 中,异常和异步控制流使得清理工作变得极为复杂。特别是处理清理过程中可能出现的多个错误时,需要使用繁琐的 `AggregateError` 逻辑,这与 JavaScript 标准的错误处理方式并不协调。 相反,作者主张采用 ECMAScript 的“显式资源管理”(Explicit Resource Management)提案。尽管它并不完美——作者不喜欢必须显式声明变量(如 `using _ = ...`)——但相比于通过修改编译器强行引入 `defer`,它提供了一种更符合惯用方式且原生的资源清理方案。
苹果的 Mac OS X “雪豹”(Snow Leopard)于 2010 年发布。当时苹果将其营销为一次专注于优化的更新,宣称“零新功能”,旨在优先提升系统稳定性并修复漏洞,而非加入华而不实的新特性。尽管该版本在现实中却以多 Bug 著称,甚至导致包括作者在内的许多用户选择降级,但“雪豹”这一概念仍作为一种强有力的文化符号留存了下来。
如今,每当用户对臃肿、不稳定的软件感到沮丧时,科技界(从 Linux 发行版到移动操作系统)便常会引用这个词。在软件不断追求功能叠加、导致体验“平庸化”(enshittification)的时代,它成为了人们渴望改善生活质量、追求系统可靠性的一种缩写。即使十六年过去了,“雪豹”的神话依然存在,因为它代表了一种专业理想:一个无需额外改动负担,就能稳定运行的系统。即便实际的软件未能达到其声誉的高度,苹果当年的营销也成功地塑造了一个持久的愿景。