如果Lisp如此伟大
2003年5月
如果Lisp如此出色,为何使用者寥寥?最近在一次演讲后,一位学生听众向我提出了这个问题。这并非首次被问及。
在语言领域,如同许多其他事物,流行程度与品质之间并无太大关联。为何约翰·格里森姆(《侵权之王》销售排名44)能比简·奥斯汀(《傲慢与偏见》销售排名6191)畅销?恐怕连格里森姆本人也不敢声称是因为自己文笔更胜一筹吧?
《傲慢与偏见》的开篇第一句便是:
凡是有钱的单身汉,总想娶位太太,这已经成了一条举世公认的真理。
“举世公认的真理”?爱情故事的开篇用词未免过于庄重。
正如简·奥斯汀的文字,Lisp看起来艰深难懂。它的语法,或者说是缺乏传统语法结构,使它看起来与多数人熟悉的语言截然不同。在学习Lisp之前,我也曾对它心生畏惧。最近我偶然翻到1983年的一本笔记,上面写着:
我想我应该学Lisp,但它实在太陌生了。
幸运的是,那时我才19岁,对新事物的接受度还算高。当时我无知得很,学几乎任何东西都意味着接触新领域。
被Lisp吓住的人会编造各种理由来回避它。在C语言为主流的年代,最常见的借口是Lisp运行太慢。如今Lisp方言已成为较快的语言之一,这个借口便站不住脚了。现在最常见的借口则变成了明显的循环论证:因为其他语言更流行。
(要警惕这种思维。它会让你最终用上Windows。)
流行往往自我强化,在编程语言领域更是如此。流行的语言会吸引更多人编写库,使其更加流行。程序常常需要与现有程序协同工作,若能使用相同语言编写则更为便捷,因此语言就像病毒一样在程序间传播。管理者也偏爱流行语言,因为这样他们对开发者有更大的控制力,毕竟替代者更容易找到。
诚然,如果所有编程语言都大同小异,那除了最流行的语言之外,使用其他语言就缺乏理由了。但事实远非如此,各种语言千差万别。这正是那些不那么流行的语言,如简·奥斯汀的小说一般,得以持续存在的原因。当众人都在追捧约翰·格里森姆的最新小说时,总会有一些人选择读简·奥斯汀。