世界を動かす技術を、日本語で。

公式Clojureドキュメンタリーページ - 動画、ショーノート、リンク付き

2026年4月17日原文(clojure.org)

概要

ClojureやLispに関する主要な用語とその定義を簡潔に解説。 プログラミングスタイルやデータ構造、開発ツールについて説明。 Clojure特有の概念や利点に着目。 用語ごとに短く分かりやすく要点を整理。 初心者にも理解しやすい構成。

ClojureとLisp関連用語解説

  • Lisp

    • プログラミング言語ファミリー
    • コードを 入れ子のリスト (括弧で囲む)で表現
    • Clojure はLispの方言
  • REPL (Read-Eval-Print Loop)

    • 式を読み取り・評価・結果出力 を繰り返す対話型セッション
    • Clojure開発者 がプログラム構築・テストに活用
  • 関数型プログラミング

    • 関数中心 のプログラミングスタイル
    • 受け取った値を返し、 可変状態や副作用を最小化
  • 値 (Value)

    • 作成後に変化しないデータ (数値・文字列・永続コレクションなど)
    • Clojureは値がデフォルト、必要な場合のみ明示的に可変状態を選択
  • 永続データ構造 (Persistent data structure)

    • 変更時に前バージョンを保持するコレクション
    • 要素追加で 新しいコレクション を返し、元は不変
    • 「永続」は バージョン保持 の意味(ディスク保存ではない)
  • 偶発的複雑性 (Accidental complexity)

    • ツールや設計選択 によるソフトウェアの難しさ
    • 問題自体の本質的複雑性(essential/incidental complexity)と対比
  • STM (Software Transactional Memory)

    • トランザクション で共有状態変更を調整する並行処理モデル
    • ロックの代わり にトランザクションを利用
  • ホステッド言語 (Hosted language)

    • 既存プラットフォーム上で動作 する言語
    • Clojureは JVM 上、ClojureScriptは JavaScript にコンパイル、ClojureCLRは .NET CLR をターゲット

Hackerたちの意見

前の人生では、毎日Clojureを書いていて、Clojure/Conjに参加したことや、ディナーでRich Hickeyや他のClojureの偉人たちと隣に座ったことを懐かしく思い出します。最初のスタートアップは全部Clojureでした。AWSにはまだ十数個の製品しかなくて、私たちがClojureをJSにコンパイルして、Lambdaで本番運用した最初のチームだったと思います(当時の唯一のランタイムはNode.js 0.10でした)。とにかく、これを見るのが待ちきれません!

今はどう感じてる?全体的に見て。

今は何を使ってるの?Clojureについてはどう思ってる?

エージェント的なコーディングの現実が、ほぼすべての難解な言語をみんなに開放した今、Clojureはまだ relevan tなのかな?昔はフィンテックアプリを書くのにClojureを使ってたけど、今でも他の言語と比べて使い道があるのかはわからないな。

Clojureはおそらく、最も難解ではない言語だと思う。関数を呼び出して、値を得るだけ。

Clojureは不変性とREPLのおかげで、エージェント的なコーディングの後でもますます relevan tだと思う。エージェント的なコーディングの2つの大きな問題は、コンテキストが無限に成長することと、エージェントが自分のやっていることについて迅速にフィードバックを得られないことだ。メインストリームの言語はどちらも失敗しているけど、Clojureはエージェントを軌道に乗せるのにぴったりだった。もっと詳しく書いたので、興味があればこちらを見てね:https://yogthos.net/posts/2026-02-25-ai-at-scale.html

モデルコーディングに関して私が抱えている主な問題の一つは、フィードバックループが生成からかなり遅れていること。Pythonではフックが動いている時にコミットの境界で出てくるか、モデルがPRをプッシュしたいと思う時点で出てくる。REPLは生成中にそれを可能にして、他の安全対策も大いに役立つ。不変データ、STM、Clojureの開発者にスーパーパワーを与えたすべての機能が、今ではモデルにも同じことをしているんだ。

Clojureのエラーメッセージはひどいけど、エージェントがそれをうまく処理してくれるんだ。Clojureは、今まで見た中で最も濃密なコードを生成できるから、手動のコードレビューはボトルネックになりがち。レベルアップが目的じゃない限りね。

実際、AIツールを書くのに最適な基盤だと思ってる。俺のカスタムMCPは全部Clojure(bb)で書いてるんだ。エージェントをREPLに接続して、自由にさせると、いいものができるよ。それに、Clojureはトークン効率が非常に良いプログラミング言語の一つだね。

nREPL機能とAIエージェントが接続できるようになったことで、Clojureはこのユースケースに最も適した言語かもしれないね。

すごい!NuBankが最初にDatomicを発見したなんて知らなかったし、それがClojureに導いたんだね。1億人以上の顧客を持って、最終的にはCognitectを買収したんだ。デイビッド・ノーレン(通称「swanodette」)がドキュメンタリーにも出ているのを見るのは嬉しいね。おまけに、デイビッド・ノーレンがClojure/ClojureScriptとReactの代わりにDOMモーフィングを使うことについての最近のトークもあるよ。全部見るのは大変なら、23分15秒から25分15秒までの2分だけでも見てみて。ブラウザのCPUとRAMリソースを全部吸い取る巨大なものと、13KbのJavaScript + WebコンポーネントとDOMモーフィングを比較しているよ:https://youtu.be/BeE00vGC36E 彼のトークはEmacsから発表されてて、それもいいね。

今もそうかはわからないけど、昔のClojureのカンファレンスやミートアップ、職場ではEmacsが前提条件で、みんな使ってた(しかも楽しかった)。

Hacker Newsで議論の続きを見る