我们不必再提供一个答案(我不希望对这个答案投票),但这里对其他几个答案进行了一些小的改进。
更新不一定更好。较新且设计不佳的不好,较新且未维护也不好,较新而没有更大(或至少不断增长的)用户社区也不好。 (新的语言经常出现,但大多数都因为废弃而被淘汰。)
我喜欢 Common Lisp。它的美丽部分在于它的古怪之处,这来自于它是由委员会设计的,其目标是向后兼容几种不兼容的方言。
我喜欢方案。这是一门优美、优雅的语言。然而,它的发展取决于委员会,也许这有时会减慢它的速度。无论如何,它的目标与 Clojure 的不同。
Common Lisp 和 Scheme 的重点是尾递归,它们不太适合 JVM 上的效率。 Clojure 从一开始就被设计为很好地映射到 JVM,并与 Java(相当)良好地互操作。 (我不确定这对 Clojurescript 和 CLR 方言意味着什么。)
Clojure 最初是由一个人 Rich Hickey 开发的,并且由他和一个小团队控制,这一事实并不一定比委员会控制的语言更好。如果那个人做出了错误的决定,Clojure 就不是一门好语言。
然而,这是重点:Hickey 设计了一种经过深思熟虑、优雅的语言,并且从一开始就包含一套系统相关的函数,可以很容易地完成很多有一点。这适用于基本的 JVM 互操作以及语言的其余部分。到目前为止,控制 Clojure 的人仍然严格遵守该语言的目标。
这是我喜欢 Clojure 的一个重要部分:它的整体设计和细节都设计得很好。这意味着一旦你习惯了它,就会很高兴在其中编程。
如果说 Clojure 具有 Common Lisp 的强大功能和 Scheme 的优雅,这只是一点点夸大(或轻描淡写?)。 Common Lisp 在语言中内置了很多你需要的东西,但它是一团糟(我很喜欢这样说),而且当你需要的东西比语言中的更多时,有时会有几个不兼容的库具有不同的权衡。设计方案很小,尽管有可用的库。 Clojure 拥有越来越多的标准 库(与 CL 不同),它们或多或少是该语言的一部分。 core.matrix 项目就是一个很好的例子,它为几种不同的矩阵实现提供了一个通用接口。这一点很重要,因为有不同的矩阵实现最适合偶尔使用小矩阵或广泛使用大矩阵。
这并不是说 Clojure 比 Common Lisp 或 Scheme 更好;它不是。这三种语言有不同的优点。