TL;DR

2007 年に Rich Hickey が開発した、動的型付けの関数型プログラミング言語。Lisp の方言であり、JVM 上で動く。

なぜ必要か

関数型言語でありながら、Java や JavaScript の資産をそのまま利用できる。並行処理のために設計されており、Web 開発に必要なライブラリも一通りそろっている。

仕組み

Clojure 本体は JVM 上で動き、ClojureScript を使えば JavaScript 環境でも動く。.NET 上で動かす ClojureCLR も公式に提供されている。

プロジェクトの構築には、Leiningen か Clojure CLI を使う。最近は Clojure CLI が使われることが多い。cli-new を使うと、Leiningen のテンプレートから Clojure CLI のプロジェクトを作成できる。

例

日本でも複数の会社が採用している(採用企業の一覧)。たとえばトヨクモでは、めだかのclojure.core学校を執筆したエンジニアが働いている。

自分の理解

Common Lisp なども触ったが、Clojure が一番好きである。関数型であること、let や関数の引数の書き方など可読性が高いこと、Java や JavaScript の偉大な資産の恩恵を受けられることが理由である。

Web 開発に必要なライブラリが一通りそろっていることは、学習のモチベーションを上げる上で大事である。マイグレーションまわりも言語レベルで統一したいので、Flyway は使いたくない。

関連

出典