Clojure 近况:分布式、数学运算与构建的新动向

  • Werner Schuster
  • 丁雪丰

2009 年 12 月 14 日

话题:JavaRuby函数式编程DevOps语言 & 开发文化 & 方法

FlightCaster使用 Clojure 分析数据,使用 Hadoop 处理分布式相关的工作。其背后的公司现在将Crane开源出来,这个工具在 FlightCaster 处理了很多分布式相关的机制。

Crane 目前适用于 EC2;它简化了很多工作——启动 EC2 实例,向实例推送 Clojure 代码,使之能够通过ssh访问。通过 Crane,能够在主控端控制远程实例,例如,可以在实例上远程执行 Clojure 代码(取自 Readme):

(eval! socket (execute (workflow some-cascading-workflow)))

socket中持有远程实例的连接,该实例会在本地执行第二个参数。

想要获得更多信息,可以访问Bradford Croos 关于 Crane 的文章

FlightCaster 最近还向 Incanter 贡献了统计学习代码Incanter是:

[..] JVM 上的一个基于 Clojure 的,与R类似的统计计算与制图平台。

Incanter 把数学运算的 Java 库和Processing的可视化库打包在一起。该工具既能以交互的方式使用(用 Incanter 发行包里的bin/clj可执行程序),也能作为 Clojure 程序里的一个库。

正如FlgihtCaster 贡献代码的声明里提到的那样,目前他们正在着手让 Incanter 能与 Hadoop 协同工作。

最后,构建与依赖管理工具Leiningen 发布了 1.0 版本使用以下安装指令来获得 Leiningen

1. 下载脚本:http://github.com/technomancy/leiningen/raw/stable/bin/lein

2. 将它放在 path 中,并赋予可执行权限。

3. 运行:lein self-install

安装完毕后,lein new PROJECT_NAME会创建一个带有必要文件的项目框架,包括 Leiningen 的配置文件project.clj。(请注意:如果该命令出错,系统中可能没有正确的 Clojure.jar)。

Leiningen 不仅能够帮助进行构建,还可以替项目管理依赖,它和Clojars协作的很好,Clojars 是一个构建于 Maven 之上的 Clojure 库管理工具。

用 Leiningen 和 Clojars.org 来构建 Incanter 应用程序一文中提供了一个使用 Leiningen 的例子,构建了一个将 Incanter 作为依赖的应用程序。

查看英文原文:Clojure Roundup: Distribution with Crane, Mathematics with Incanter, Builds with Leiningen 1.0

JavaRuby函数式编程DevOps语言 & 开发文化 & 方法