一般社団法人 全国個人事業主支援協会

COLUMN コラム

Clojure というプログラミング言語を聞いたことはあるでしょうか?
全員が知っているような有名な言語ではないですが、とても興味深い特徴を持っています。今まで類似の言語をやったことがない人は、やってみると新しい考え方を取り入れられること間違いなしです。

Clojure の主な特徴・魅力を挙げると次のとおりです:

言語・設計思想

  • Lisp系言語であること
    • S式(リスト構文)を基本とし、コードとデータの同一性(homoiconicity、同図像性)を持つ
  • 関数型プログラミングを重視している
    • 副作用を抑え、純粋関数・高階関数を多用
  • 言語のコアがシンプルである
    • 機能は小さく、ライブラリで拡張する思想

データと不変性

  • デフォルトで immutable(不変)である
    • リスト、ベクタ、マップ、セットはすべて不変

並行・並列処理

  • 強力な並行処理モデル
    • atom / ref / agent / var など、用途別の状態管理

JVM(Java仮想マシン)との関係

  • JVM上で動作する
    • Javaの成熟した実行環境・GC・JITの恩恵を受けられる
  • Java資産をそのまま利用可能
    • 既存のJavaライブラリやフレームワークと相互運用

メタプログラミング

  • マクロが強力
    • 言語機能そのものを拡張できる
    • DSL(ドメイン特化言語)を作りやすい

動的型付け

  • REPL駆動開発
    • 実行中のシステムにコードを注入・評価できる
  • specによる後付け検証
    • 型の代替としてデータ仕様を定義可能

エコシステム・開発体験

  • REPL中心の対話的開発
  • 関数合成・パイプラインが書きやすい

 

特徴としては以上ですが、おそらく「なんのこっちゃ」という感じですよね。
このあとの何回かの記事で、それぞれの特徴について紹介していきます。

The following two tabs change content below.

松村 雅之

最新記事 by 松村 雅之 (全て見る)

この記事をシェアする

  • Twitterでシェア
  • Facebookでシェア
  • LINEでシェア