Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

如果 Lisp 这么伟大

原文:If Lisp is So Great
作者:Paul Graham 发表:2003-05
译者:Claude(baoyu-translate)

2003 年 5 月

如果 Lisp 这么伟大,为什么用的人不多?最近一次演讲上,台下一位学生这样问我。这并不是第一次有人问。

在编程语言上,跟在很多事情上一样,流行度和质量之间几乎没有什么相关性。为什么 John Grisham(美国畅销法庭小说作家)的《侵权之王》(销量排名第 44 名)卖得比简·奥斯汀的《傲慢与偏见》(销量排名第 6191 名)好?连 Grisham 自己会主张这是因为他写得更好吗?

《傲慢与偏见》的开篇第一句是这样的:

凡是有钱的单身汉,必定想娶位太太,这是一条举世公认的真理。

“举世公认的真理”?对一部爱情小说的开篇句而言,用词长了点。

像简·奥斯汀一样,Lisp 看起来很难。它的语法——或者说“几乎没有语法“——让它看上去与多数人熟悉的语言完全不一样。在我学 Lisp 之前,我也怕它。最近我翻出 1983 年的一本笔记本,上面写着:

我大概该学一下 Lisp,但它看起来太陌生。

幸运的是,我那时 19 岁,对学新东西没什么抵触。我无知到这种程度——几乎学任何东西都意味着学新东西。

那些被 Lisp 吓住的人,会编造别的不用它的理由。当 C 还是默认语言时,标准借口是 Lisp 太慢。如今 Lisp 的方言已经跻身可用语言中速度最快的那一档,这个借口失灵了。今天的标准借口是直接循环论证:别的语言更流行。

(小心这种推理——它会给你带来 Windows。)

流行度总是自我加强的,编程语言尤其如此。流行的语言会被写更多的库,反过来让它更流行。新写的程序常常要和已有的程序协同,而用同一种语言写起来更容易,于是语言像病毒一样在一个又一个程序间扩散。管理者也偏好流行的语言——这给了他们更多对开发者的议价权,毕竟开发者更容易被换掉。

确实,如果所有编程语言都大致等价,那除了最流行的那一两种之外,用别的语言就几乎找不到什么理由。但它们并不等价——差远了。这正是为什么那些不那么流行的语言,像简·奥斯汀的小说一样,至今依然存活着。当其他人都在读最新一本 John Grisham 时,总会有少数几个人选择去读简·奥斯汀。