Clojureは1.0リリースに向けて動いているが、言語に対する関心は他のプラットフォームにも達した。
今や、Clojure-contrib(リンク)は別のプラットフォームにおける2つのClojureの実装がある。Clojureの大部分は、Clojureで記述されるので、実装は多数のコードを共有することができる。
- ClojureCLR(リンク)は.NETに対するClojureのポートである。
- ClojureScript(リンク)はJavascriptへのClojureのサブセットをコンパイルし、以下に挙げるような興味深い機会を開放する。アプリケーションのサーバサイドとクライアント(ブラウザ)サイドで、同じClojureコードを共有する。
Clojureユーザは、JVMライブラリおよびフレームワークで実験している。Clojureは、1つのJVMでの同時並行性にフォーカスしており、分 散作業向けの特別サポートがない。Terracottaはテクノロジであり、同一マシンや分散マシンにJVMを結合させることを可能にする。Paul Stadig氏は、ClojureがTerracottaの機能を使用できるように実験をしている(リンク)。(同様のプロジェクトが、JRubyで試された(リンク))。最 近の進捗報告では、以下のことが見込まれている(リンク)。
ClojureをTerracottaと動作させる際に取り組んだ最大の問題点の3つが、Terracotta側で解決されるようである。これは、わたし が記述したTerracotta Integration Moduleが詰まるところ構成ファイルということになることを意味する。
最終的に、新たなClojureリリースが以下の変更で利用可能(リンク)である。
最近の追加のすべてを統合する - 完全なlazy seqs、doseq/for向け:letオプション、互いに再帰的なローカルfns向けletfn、同期ウォッチ、multi-arg セット/結合/差異/共通部分、counted?、per- defmulti 階層、#_ ignore形式リーダーマクロ、future-calls、futureおよびpcalls/pvalues、defmulti docstringsおよびメタデータ、マルチメソッドリフレクション向けメソッド、 atoms/refs/agents/vars/namespaces向け統一メタデータ処理、condp、リリースの保留送信、アプレットおよび AndroidをサポートするためのAOT tweak。以上の他、多くのバグ修正および機能拡張。
変更には、シーケンスのアップデートされた怠惰な振る舞い(リンク)が含まれる。マルチメソッドリフレクションサポートは、ディスパッチ値および関数のマッピングの検討を可能にする(メソッド(リンク)関数を使用)。