本文作者Paul Bauer连续三年为Clojure写年终总结,梳理每一年Clojure所取得成就,例如他给Clojure编写的2011年和2012年的总结。作为一个Clojure倡导者,感觉为Clojure撰写年终总结是一件很有趣的事情,可以对Clojure的发展有更加深入的了解。对于Clojure在2013年里的表现,作者主要以褒奖为主,一起来梳理一下2013年和Clojure有关的大事件。(以下为编译内容)
自身发展和在行业里的位置
从最基本的说起,经过多年的密切合作,Relevance在今年终于和Rich Hickey、Datomic成立了Cognitect。这样的合作就增加了引进企业级技术来支持Clojure,ClojureScript,Datomic和Clojure堆栈的可能性。很多大型企业在投身Clojure开源生态系统之前最关心的就是安全保证措施。这也说明,在2014年,Clojure一定能在更多、更大的领域内有较好的表现。
来自其它行业的Clojure消息:
- Staples acquired Runa是Clojure早期的使用者,接下来,他们将继续利用Clojure的一些功能来完成自定义提供和其它方式的零售服务。
- Clojure的邮件列表已经有超过8500个会员了。
- 在Chas Emerick所撰写的2013年Clojure状态调查表里,有超过一半的受访者表示在日常工作中使用Clojure,事实上在过去的一年里,这一人数已经达到了另一个高度。Alex Miller通过挖掘自由形态的回复来确定在所需特性和感知问题领域这两者之间,搞清楚Clojure的发展趋势。
- 一批新的Clojure书籍也问世了,尤其值得关注的是O'Reilly编写的第一本Clojure Cookbook。
- 目前想要学习Clojure的话,是可以享受到一些免费资源的:Daniel Higginbotham的Clojure for the Brave and True;Kyle Kingsbury的Clojure from the Ground Up。
- 多样的实效会议:像比较专业的Clojure/West大会、Clojure/conj大会和第二届EuroClojure大会。另外,在澳大利亚举办的YOW! Lambda Jam大会、芝加哥举办的Lambda Jam大会,还有比较正式的Strange Loop大会上,Clojure作为重要部分被重点讨论。观看视屏到ClojureTV on YouTube、InfoQ Clojure presentations或者是其它频道。
- 花大力气去教初学者编程并不那么简单,受此启发,一些热心的朋友成立了ClojureBridge。并将第一次研讨会定于2014年春季,部分志愿者正在开发课程和文档。
- 目前的两大编程竞赛:Clojure Cup和Lisp in Summer Projects,正在全球范围内展示他们的编程天赋。
编程语言和贡献类库方面的Clojure
- Clojure 1.5已发布,新的版本带有Reducers、改善了阅读文字的样式,还增加了新的EDN阅读器。有关详细信息,请参阅Clojure change log。
- Clojure1.6 alphas和一个新的公共API进行合并,这样就可以从Java里直接调用Clojure。
- 在core.async类库alphas横空出世之后,它所带来的影响是巨大的,同时也进一步加快了利用Clojure和ClojureScript来实现并发异步编程的步骤。
- ClojureScript发展速度是很快的,在这期间开发者添加source maps到浏览器里,可使得浏览器的性能得到很大的提升。David Nolen的博客里也展示了一些ClojureScript和core.async之间可能会出现的种种可能性。除此之外,目前还出现了一个不可忽视的、比较专业的ClojureScript组织:ClojureScript Google Group。
- Stuart Halloway已经公布了公开发行的data.fressian版本,这是一个使用Datomic上的Clojure数据结构里高效二进制编码完成的产品。详情看这里data.fressian talk。
- 在同样的运行过程里增加额外的funding from Cognitect有助于Nicola Mometto在基于Clojure-in-Clojure端口的实验基础上发布新的类库:tools.analyzer、tools.analyzer.jvm、 tools.emitter.jvm和tools.reader。
- 参与者在Clojure.org JIRA上面收到了562张投票(不包括重复或被拒绝的投票),这其中就包括68种核心语言。
- Contrib类库tools.cli、java.jdbc和math.combinatorics已经发布了比较重要的新版本。
软件和工具方面
- Datomic团队发布了用于对大型分布式系统的模拟测试的Simulant,具体信息可以在InfoQ看Stuart Halloway撰写的Simulant情况介绍。
- Relevance/Cognitect发布了Pedestal,这是一个主从式架构Web工具包,能在服务器上展示Clojure程序,在浏览器上展示ClojureScript编写的应用。
- nrepl.el已经变成了CIDER,也就是Clojure IDE和Emacs的REPL。
- Chas Emerick所拥有的Austin使得ClojureScript REPLs操作起来更加简单。
- New IDEs致力于将Clojure展现出来:Nightcode和Cursive for IntelliJ。
- Prismatic发布了他们的Plumbing / Graph类库,和用于运行时对类型进行验证的Schema。
- Immutant是一个基于JBoss的Clojure应用程序服务器,目前Immutant 1.0版本已经发布。
- Mark Engleberg发布了Instaparse――一个 分析程序的生成程序,它可以理解标准的EBNF/ABNF符号。
- 我自己在博客上也记录了有关实验性质框架的大量资料,还对利用Clojure编写的模块的使用进行了全程跟踪记录。(详情点My Clojure Workflow. Reloaded)
搜集信息的博客和播客
发生在2013年的有趣的事情真的很多,无法同时捕捉到所有的信息。不过,以下所列举的是一些比较有价值的、有趣的Clojure新闻:
- Relevance Podcast已更名为Cognicast
- Mostly Lazy播客
- Planet Clojure博客聚集器
- #clojure IRC log
- Clojure Google Group
总结完Clojure在2013年的大事件之后,除了能从当中获得感悟和动力之外,我们要做的就是大步向前,和Clojure一起迎接2014年的新的机遇和新的挑战! (编译/薛梁 责编/付江)
原文:Stuart Sierra