Rust 是一门最近比较热的语言,有很多人问过我对 Rust 的看法。由于我本人是一个语言设计专家,实现过几乎所有的语言特性,所以我不认为任何一种语言是新的。一种 “新语言” 对我来说,不过是把早已存在的语言特性(或者毛病),挑一些出来放在一起。所以一般情况下我都懒得去评论别人设计的语言,甚至懒得去看一眼,除非它历史悠久(比如像 C 或者 C++),或者它在工作中惹恼了我(像 Go 和 JavaScript 那样)。这就是为什么这些人问我 Rust 的问题,我一般都没有回复,或者一笔带过。 不过最近有点闲情逸致,我想既然有人这么热衷于这种新语言,那我还是稍微凑下热闹,顺便分享一下我对某些常见的设计思路的看法。所以这篇文章虽然是在评论 Rust 的设计,它却不只是针对 Rust。它是针对某些语言特性,而不只是针对某一种语言。