如果 Lisp 如此出色

2003年5月

如果 Lisp 如此出色,为什么没有更多人使用它?最近我在一次演讲中被一位听众中的学生问到这个问题。而且这也不是第一次被问到。

在语言方面,就像在很多其他事情上一样,流行程度和质量之间没有太大关系。为什么 John Grisham(《律师事务所》销量排名第 44 位)比 Jane Austen(《傲慢与偏见》销量排名第 6191 位)卖得更好?即使是 Grisham 也会声称这是因为他是一位更好的作家吗?

这是《傲慢与偏见》的第一句话:

凡是有钱的单身汉,总想娶位太太,这已经成了一条举世公认的真理。

“这已经成了一条举世公认的真理?”对于一个爱情故事的第一句话来说,这些词语太长了。

像 Jane Austen 一样,Lisp 看起来很难。它的语法,或者说缺乏语法,使它看起来完全不像大多数人习惯的语言。在我学习 Lisp 之前,我也害怕它。我最近偶然发现了一本 1983 年的笔记本,我在里面写道:

我想我应该学习 Lisp,但它看起来太陌生了。

幸运的是,当时我 19 岁,对学习新事物没有太大的抵触情绪。我当时太无知了,以至于学习几乎任何东西都意味着学习新事物。

被 Lisp 吓到的人会编造其他不使用它的理由。当 C 语言是默认语言时,标准的借口是 Lisp 太慢了。现在 Lisp 方言是更快的可用语言之一,这个借口已经消失了。现在标准的借口是公开的循环论证:其他语言更受欢迎。

(提防这种推理。它会让你得到 Windows。)

受欢迎程度总是自我延续的,但在编程语言中尤其如此。更多库是为流行的语言编写的,这使得它们更加流行。程序通常必须与现有程序一起工作,如果它们是用同一种语言编写的,这会更容易,因此语言像病毒一样从一个程序传播到另一个程序。而且,管理者更喜欢流行的语言,因为它们让他们对开发人员有更大的控制权,开发人员可以更容易地被替换。

事实上,如果编程语言或多或少是等价的,那么除了最流行的语言之外,几乎没有理由使用任何其他语言。但它们并都是等价的,差得很远。这就是为什么不太流行的语言,比如 Jane Austen 的小说,仍然能够生存的原因。当其他所有人都在阅读最新的 John Grisham 小说时,总会有一些人阅读 Jane Austen 的小说。