错误处理为何分裂五十年:从PL/I的ON语句到Rust的Result类型
1964年,IBM在设计PL/I语言时引入了一个被称为"ON语句"的构造。这个看似简单的语法元素,开创了编程语言中结构化错误处理的先河。六十年后,当Rust的?操作符和Go的显式错误检查成为现代语言的主流选择时,我们不禁要问:为什么错误处理这个问题困扰了语言设计者如此之久? ...
1964年,IBM在设计PL/I语言时引入了一个被称为"ON语句"的构造。这个看似简单的语法元素,开创了编程语言中结构化错误处理的先河。六十年后,当Rust的?操作符和Go的显式错误检查成为现代语言的主流选择时,我们不禁要问:为什么错误处理这个问题困扰了语言设计者如此之久? ...
1964年,IBM开始设计PL/I语言,并引入了一个名为ON的语句。程序员可以用ON ENDFILE(SYSIN) GO TO LABEL;来指定当文件结束时跳转到特定标签。这是编程语言史上第一次将"异常情况处理"作为一等语言特性。 ...
1964年,Peter Landin在一篇题为《The Mechanical Evaluation of Expressions》的论文中首次提出了"闭包"(closure)的概念。他将闭包定义为一个包含λ表达式及其相关环境的"信息束"。六十年后,这个概念几乎出现在所有现代编程语言中——JavaScript、Python、Rust、Go、Swift、C++、Java——但每种语言的实现方式却大相径庭。 ...
2025年6月,Go团队在官方博客发表了一篇题为"[On | No] syntactic support for error handling"的文章,宣布了一个意味深长的决定:停止追求错误处理的语法级改进,关闭所有相关的开放提案。这不是一次普通的功能延期,而是Go语言诞生十六年来,在错误处理这个核心议题上的彻底认输。 ...