Clojure

Table of Contents


1. Rich Hickey访谈:Clojure的优势在哪里?

下面文字摘抄自《七周七语言》

Bruce:很多Lisp方言在获取更广泛的成功方面都败下阵来,Clojure如何能成功?

Rich:这是个非常重要的问题!我不否认主要Lisp方言(Scheme和Common Lisp)已经完成了它们的使命。。Scheme的目的是通过一个很精炼的语言来捕捉计算的本质,而Common Lisp则致力于标准化科研中所用到的各种Lisp方言。但它们都没能够作为一种实用工具成为业界开发者所使用的通用编程语言,实际上这也不是它们的设计目标。

另一方面,,Clojure是设计用来作为一种实用工具,为业界的开发者所使用的一种通用生产性编程语言,为此在传统的Lisp上加入了这些新的目标。它更适于团队开发,擅长和其他语言相互协作,而且还解决了一些传统的Lisp问题。

Bruce:为什么Clojure在团队开发中表现更好?

Rich:某种意义上说,有些Lisp最关心的是如何挖掘个体开发者的最大力量,而Clojure认为开发是一项团队活动。例如,它不支持用户自定义的宏读取器,因为这样做会导致代码被写成一堆互不兼容的微方言。

Bruce:为什么Clojure选择运行在现有的虚拟机上?

Rich:现如今,全世界已经积累了大量有价值的、使用其他语言编写的代码,而这种情况在Lisp刚被开发出来的那个年代还没出现。因此在今天能够调用其他语言和被其他语言调用的能力必不可少,尤其是在JVM和CLR上。

剥离宿主操作系统的标准多语言平台,在在Lisp被发明的那个年代几乎不存在。整个业界比以前大出好几个量级,事实标准也已经诞生。从技术角度讲,类似复杂、精密的垃圾收集器,以及HotSpot这样的动态编译器,都是支持重用核心技术的技术层工具。因此,Clojure更强调语言在平台上(language-on-platform),而非语言即平台(language-is-platform)。