Clojureとは?プログラミング言語を初心者にもわかりやすく解説

Clojureとは

Clojure(クロージャー)は、2007年に公開された関数型プログラミング言語です。Clojureは、Lispの方言です。関数型言語のLispをベースにして、“シンプル”に改良したものが Clojureです。

Clojureの作者Rich Hickey(リッチ・ヒッキー)氏は、2005年に開発を開始して、2007年の終わりごろに最初のバージョンをリリースしました。Clojureの最新版は、2019年にリリースされたバージョン1.10系です。

Clojureの特徴

Clojure には、以下の特徴があります。

  • Lispを改良したLisp方言
  • 関数型プログラミングの汎用言語
  • プログラムは、関数とデータで構成される
  • Java環境が利用でき、Javaと連携して開発できる
  • シンプルで実用的な言語仕様
  • 並行処理(マルチスレッド)が可能

Clojureは、Lispを“シンプル”に改良したLisp方言です。関数型プログラミングによる汎用言語であり、様々な目的に利用できます。Clojureのプログラムは、関数とデータ(リスト、ベクタ、マップ、集合)で構成されます。

Clojureは、言語開発当初からJVM(Javaプログラムを実行するソフトウェア)上で利用されることを意図しており、Javaプラットフォーム上で動作します。 Clojure側からJava APIが呼び出せたり、反対にJava側からClojureのプログラムが呼び出せるなど、Javaと連携して開発できます。

Clojureでは、シンプルさが重視されています。例えば、関数に与える引数を一度作成したら、後から引数のデータ型を変更することはできません。データ型が変更されないというルールを持つことで、全体のシンプルさが保たれてコードへの信頼が高まります。

Clojureの特徴のひとつに、並行処理(マルチスレッド)があります。並行処理とは、ひとつのプログラムから複数のスレッドを並行して実行することです。 Clojure で並行処理が可能なのは、不変性に由来するシンプルさと関連しています。状態が変化しないので、ひとつの状態に対して複数の操作を並行して行えます。

Clojure はこんな場面で使われている

Clojureは汎用言語であり、 ソフトウェア開発、ウェブサービス開発、データ分析など、様々な場面で利用されます。

例えば、ウェブ上の販売予測、フライト遅延予測、ソーシャルネットワーク、ビッグデータのプロジェクト、などの目的に利用されることがあります。

Clojure を学ぶメリット

Clojureの求人を検索すると、ソフトウェア開発、ウェブサービス開発、データサイエンティストなどの募集を確認できます。

Clojureの技術者を募集している職場において、他にある方が望ましいスキルとして、Scala、Haskell、Erlang、Common Lispなどの関数型言語、あるいは、Java、C++、C#などの汎用言語、あるいは、Ruby、JavaScriptなどのウェブ系の開発言語、などが挙げられています。