Glean 拾遗
专辑 / Paul Graham 文集 / 如果Lisp那么棒,为什么用的人不多?

如果Lisp那么棒,为什么用的人不多?

原文 www.paulgraham.com 收录 2026-07-07 16:33 阅读 3 min
AI 解读

Paul Graham 在这篇经典短文中回应了一个反复被问到的问题:如果 Lisp 那么好,为什么不用的人不多?他通过文学作品的质量与流行度类比,指出语言的流行度与质量之间没有必然联系,并剖析了流行度自我强化的机制(库生态、项目兼容性、管理者偏好)。他强调,尽管 Lisp 语法看起来陌生,但它依然在性能、表达力等方面具备显著优势,因此会像简·奥斯汀的作品一样,被少数真正欣赏的人持续使用。适合对编程语言设计、技术选择哲学感兴趣的读者。

原文 3 分钟
原文 www.paulgraham.com ↗
§ 1

If Lisp is So Great

如果 Lisp 如此伟大

§ 2

May 2003If Lisp is so great, why don't more people use it? I was asked this question by a student in the audience at a talk I gave recently. Not for the first time, either. In languages, as in so many things, there's not much correlation between popularity and quality. Why does John Grisham (King of Torts sales rank, 44) outsell Jane Austen (Pride and Prejudice sales rank, 6191)? Would even Grisham claim that it's because he's a better writer?

2003年5月,如果Lisp这么好,为什么没有更多人使用它?最近在一次演讲后,台下的一名学生向我提出了这个问题。这也不是第一次了。在编程语言中,就像在许多其他事物中一样,流行度和质量之间并没有太多关联。为什么约翰·格里森姆(《侵权之王》销售排名第44位)比简·奥斯汀(《傲慢与偏见》销售排名第6191位)更畅销?就连格里森姆本人会声称这是因为他是更好的作家吗?

§ 3

Here's the first sentence of Pride and Prejudice: It is a truth universally acknowledged, that a single man in possession of a good fortune must be in want of a wife. "It is a truth universally acknowledged?" Long words for the first sentence of a love story.Like Jane Austen, Lisp looks hard. Its syntax, or lack of syntax, makes it look completely unlike the languages most people are used to. Before I learned Lisp, I was afraid of it too. I recently came across a notebook from 1983 in which I'd written: I suppose I should learn Lisp, but it seems so foreign. Fortunately, I was 19 at the time and not too resistant to learning new things. I was so ignorant that learning almost anything meant learning new things.

以下是《傲慢与偏见》的第一句话:凡是有钱的单身汉,总想娶位太太,这是一条举世公认的真理。‘举世公认的真理?’用来作为爱情故事的第一句话,词儿是不是太大了。像简·奥斯汀一样,Lisp看起来很难。它的语法,或者说缺乏语法,使它看起来完全不像大多数人习惯的语言。在学习Lisp之前,我也害怕它。最近我偶然发现了一本1983年的笔记本,上面写着:我想我应该学Lisp,但看起来太陌生了。幸运的是,当时我只有19岁,对学习新事物没有太多抵触。我是如此无知,以至于学习几乎任何东西都意味着学习新东西。

§ 4

People frightened by Lisp make up other reasons for not using it. The standard excuse, back when C was the default language, was that Lisp was too slow. Now that Lisp dialects are among the faster languages available, that excuse has gone away. Now the standard excuse is openly circular: that other languages are more popular. (Beware of such reasoning. It gets you Windows.) Popularity is always self-perpetuating, but it's especially so in programming languages. More libraries get written for popular languages, which makes them still more popular. Programs often have to work with existing programs, and this is easier if they're written in the same language, so languages spread from program to program like a virus. And managers prefer popular languages, because they give them more leverage over developers, who can more easily be replaced.

害怕Lisp的人会编造其他理由来抵制它。在过去C语言是默认语言的年代,标准的借口是Lisp太慢了。如今Lisp方言已经跻身较快的语言之列,这个借口已经消失了。现在标准的借口变得公然循环论证:其他语言更流行。 (当心这种推理,它给你带来了Windows。) 流行度总是自增强的,在编程语言领域尤其如此。为流行的语言编写的库更多,这使得它们更加流行。程序常常需要与现有程序协作,如果用同一种语言编写就更容易,因此语言像病毒一样在程序间传播。而且经理们更喜欢流行的语言,因为这让他们对开发者有更大的控制力,开发者更容易被替换。

§ 5

Indeed, if programming languages were all more or less equivalent, there would be little justification for using any but the most popular. But they aren't all equivalent, not by a long shot. And that's why less popular languages, like Jane Austen's novels, continue to survive at all. When everyone else is reading the latest John Grisham novel, there will always be a few people reading Jane Austen instead.

确实,如果编程语言都大致相当,那么除了最流行的语言,使用其他语言就几乎没什么理由了。但它们并不相当,远非如此。这就是为什么不那么流行的语言,比如简·奥斯汀的小说,仍然能够存活下来。当所有人都在读约翰·格里森姆的最新小说时,总有少数人在读简·奥斯汀。

打开原文 ↗