clojure
约翰·史蒂文森(John Stevenson)在他的
Developer的
这本产品中帮助我们使用功能性和动态JVM语言迈出了第一步。
我真正喜欢Clojure作为软件开发语言的原因有很多。 其中最重要的是简单性。 语言的语法以及软件的整体设计方法都体现了简洁性。
Clojure鼓励采用模块化的软件方法,以分解复杂性以明确定义数据结构和可组合的行为。 如果您想到一些小行为行为,它们共同作用会产生比自身更大的东西; 这就是Clojure库和应用程序的设计方式。
用Clojure构造事物使我想起了Unix设计。 它的每个方面都做得很好,使您可以轻松地将它们链接在一起。 这种语言的性质鼓励开发人员使用高度模块化的方法来创建Clojure库和应用程序,从而提供了一种简单地构建复杂系统的好方法。
功能设计优雅
在Clojure中,您调用的任何函数在求值时都会返回一个值,即使该值为null。 这意味着函数可以用作其他函数的参数,从而帮助您设计一些非常优雅的模块化解决方案。
函数调用函数为开发人员提供了一种以简单方式处理复杂性的方法。 这可以通过将行为分解为可以轻松协同工作的轻松组件来实现。
函数和数据结构由相同的语法(同质性)表示,这有助于使您的代码更简单,更简洁,并鼓励开发人员快速提高工作效率。
动态二重奏
Clojure带有一个动态的运行时环境,称为REPL。 这种动态环境使您可以在编写代码时定义和运行代码,从而使该语言更易于学习和尝试。
加上Clojure语言的动态类型性质,这使开发真正飞起来。 您可以在REPL中快速定义和重新定义函数,如果有价值的话,可以将它们添加到代码库中。 REPL可以加载您的项目代码,并帮助您找到快速扩展和改进代码的方法,而无需花费较长的构建周期。
利用Java平台
在Java虚拟机(JVM)上使用功能语言可以通过使用开发人员已经熟悉的大量库来快速交付项目。
Clojure不必是一门庞大的语言,因为它可以使用许多久经考验的库。 范围从其自身不断增长的库集到数千种现有的Java,Groovy和JRuby库。
由于语言的设计,使用Clojure的许多Java库通常会更容易。
例如,在进行挥杆编程时,使用
Clojure中
的
doto
函数
来链接方法调用
会更简单
,从而避免了很多管道代码。
经过一些非常聪明的人(包括Scala的Martin Odersky和Java Collections的成名)近二十年的编译器和运行时优化之后,JVM是一个非常快速的环境。 在性能方面,Clojure具有典型的C / C ++应用程序,对于大多数类别的应用程序,性能没有明显的区别。
部署Clojure与部署Java一样容易。 一切都被编译为字节码到JVM。 您可以创建jar或war文件,然后将它们放入环境中,就像放置其他Java包一样。 如果未为Clojure设置环境,则可以创建一个uberjar,它是一个包含Clojure应用程序和Clojure库本身的jar。 由于Clojure很小,因此uberjar的大小仍然可以控制。
Clojure的第一步
开始使用Clojure就像启动浏览器并将其指向
Try Clojure
网站一样简单,
如图1
所示。 该网站为您提供了一个动态的运行时环境,您可以在其中立即开始编写Clojure。 输入的任何代码都会