Clojure程序设计
上QQ阅读APP看书,第一时间看更新

第1章 启航

有许多因素共同促成了Clojure的快速崛起。不妨在网络上进行一次快速搜索,会看到人们是这样描述Clojure的。

● 是一种函数式语言。

● 是一种为Java虚拟机设计的Lisp。

● 具备处理并发问题的特殊能力。

所有这些特征都很重要,但却不是Clojure思想的核心。在我们看来,是这两个至为关键的概念驱动着Clojure的一切:简单、强大。

简单,在软件开发中被赋予了许多含义。但这里我们想要表达的,是它最初,也是最佳的定义:简单,就是不复杂。采用简单的组件,能让系统的设计者专注于他们手边的任务,从而免受各种无关杂事的打扰。以我们的经验来看,无关复杂性很快就会演变为危险复杂性。

强大,同样也具有很多含义。此处我们尤其关心,它是否足以完成我们将要承担的任务。作为一名程序员而言,强大,意味着你需要在一个功能丰富,且得到广泛部署的基础(例如Java虚拟机)之上构建应用。然后,你使用的工具必须能让你完全不受限制地访问这个平台。对于那些必须充分发挥平台能力的项目而言,这通常是决定性的需求。

作为程序员,我们年复一年地忍受着那些巴洛克式的复杂工具,仅仅因为这是我们获取必需的力量的唯一途径。如若不然,我们就不得不接受一个固然能使头脑保持清醒,但却弱小得多的简化编程模型。诚然,有一些取舍是无法回避的,但强大和简单绝不属于此列。Clojure向我们表明,强大与简单完全可以齐头并进。