学习clojure已有数月,总感觉那个地方不太对劲。原先看clojure的书,读clojure的文章,只是泛泛的读,粗略的看,没有仔细的、深入的读它的代码,所以总是进步不大,只学了一些皮毛的东西。
现在想看clojure中的几个框架和库,比如compojure,clj-record,conjure,leiningen,因为想用它们做个小东西,也想趁此机会仔细的研究一下clojure及其他。这时才发现没有Java基础读Clojure的代码来真的很累。因为Clojure完全基于JVM,而且能够很自然的使用那些数目繁多的各式各样的Java库。之所以有很多的Clojure源文件看起来很短,实际上就是因为它的很多的功能其实就是直接的引用了相应的Java类库。而它只是起了一个重新包装的作用,在这一方面它绝对是扮演了一个纯粹的glue-code角色。
第二点就是Clojure的书很少,正式出版的只有Programming Clojure和Practice Clojure。The Joy of Clojure 和 Clojure in Action 还处在MEAP阶段。网上有关Clojure的文章还很多,推荐http://en.wikibooks.org/wiki/Learning_Clojure、http://en.wikibooks.org/wiki/Clojure_Programming,还有Clojure的官方网站、以及它在github的repository,还有最后一个好地方就是google group,真的不错。刚刚看到一个新网站http://clojuredocs.org/,有example。
第三就是Clojure的完整的参考就是它的官网,非常全面,但是所有的API有源码没有example。这一点我不太喜欢。有些API的解释就一句话。所以当遇到一个form或者fn时,经常是现在clojure.org查一下,如果解释的很少,一般也很少,就去google一些sample回来,差不多了再回到clojure.org,仔细体会它的解释,或者实在没辙了就去读源码,一个字”累“。但是另外一个就是”值“
先写到这儿吧,待续...