Chinaunix首页 | 论坛 | 博客
  • 博客访问: 51481
  • 博文数量: 6
  • 博客积分: 66
  • 博客等级: 民兵
  • 技术积分: 78
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-02 09:49
文章分类

全部博文(6)

文章存档

2013年(4)

2012年(2)

我的朋友

分类: Java

2013-06-01 23:51:39

第一次正式接触Clojure时是在《七周七语言》这本书中。当然,是作为兴趣和爱好学习的。对于普通人来说,听到Clojure后的第一反应是:Clojure有什么用,我为什么要学习Clojure抛开出版社那些连自己都不相信的宣传标语。我想这个问题最根本的答案还是——兴趣。

关于Clojure,无论是一些这本书中,还是Clojure的社区、及一些资料中,都会介绍Clojure的主要特性。比如:


  • Clojure 是运行在 JVM 上的一种语言
  • Clojure 是 Lisp的方言之一;
  • Clojure 是一种函数式编程语言
  • Clojure 提供了进行并行、并发编程的创新式解决方案
  • Clojure 是一种动态编程语言
  • Clojure 是动态的,同时也是强类型的(PythonRuby类似)


在我看来,Clojure最大的优势在于其是在JVM上运行的带有LISP血统的函数式编程语言,同时更加适合于并行和并发。

ClojureJVM上运行,所有的Clojure代码都编译成JVM上的字节码。虽说如此,但所有Clojure支持的属性在运行时也被支持。在JVM上运行,意味着Clojure可利用现有的Java类库。许多新语言最大的缺陷就是缺乏完善的类库,这一点Clojure完全不用担心。

LISP是一种传奇般的语言,但人们对其更多的了解是那个传奇般的括号。

这本书涵盖了Clojure编程的方方面面。是一本百科全书类型的,而不是简介类型的。相比之下人民邮电另一本《Clojure程序设计》在量上稍有不足。

从我看来,学习Clojure目的在于能拓宽视野,毕竟,计算机语言并不只有命令式这一种。同时众多函数式语言中,Clojure算是目前实用性较强的一门。而且Clojure也像时光机一样,透过她,可以了解到上实际50年代末诞生的LISP的一点情况。

另外,许多朋友也知道JVM上还有另外一种函数式编程语言——Scala。曾经看过一篇文章,说Scala的处理能力比不上Clojure。这一点,笔者没测试过。但感觉Clojure的接受程度比Scala还稍弱一点。而从语言的成熟度上,Clojure毫不逊色。
在笔者看来,Clojure推广的一个优点和缺点就是她有LISP的血统。如前所述,拥有LISP血统是其有点。但LISP拥有众多方言,这些方言又不完全兼容。在接触到Clojure之后,初学者最喜欢做的事情之一就是比较各个LISP方言,然后,就没有然后了。许多人可能因为理不清之间的关系,就丢掉了Clojure。其实这不是Clojure的错。。。

阅读(2720) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~