3 ポイント 投稿者 GN⁺ 13 일 전 | 6件のコメント | WhatsAppで共有
  • Clojureがグローバルなフィンテック企業のインフラ言語へと成長した過程を扱う、1時間の公式ドキュメンタリー映像を公開
  • Clojureの独特な起源価値中心のコミュニティソフトウェアの考え方に与えた影響をたどって紹介
  • YouTubeリンク: あるプログラマのペットプロジェクトが、ソフトウェアに対する私たちの考え方をどのように変えたのか
  • ショーノートには、Clojureの基盤となった中核論文、書籍、講演、企業事例が整理されている
  • Clojure、ClojureScript、ClojureCLRなどのランタイムと、Babashka、Jank、ClojureDartのような拡張プロジェクトもあわせて紹介
  • 公式ページは、AIツール、データサイエンス、エディタ統合、コミュニティチャネルまで含むClojureエコシステムの総合ハブとして機能

ドキュメンタリー概要

  • Clojureドキュメンタリーは、Rich Hickeyの2年間のサバティカルと、ひとつの頑固なアイデアから始まり、世界最大級のフィンテック企業のひとつのエンジニアリングスタックを支えるまでに至った過程を扱う
  • Rich Hickey、Alex Miller、Stuart Hallowayら主要人物が登場し、Clojureの非伝統的な起源価値中心のコミュニティ、そしてソフトウェアの考え方に与えた影響を探る
  • ドキュメンタリーはNubankの支援で制作された

ショーノート

  • 基礎研究論文

    • Out of the Tarpit (2006) — Ben Moseley & Peter Marks、ソフトウェアにおける可変状態が偶発的複雑性の主因であると指摘
    • Ideal Hash Trees — Phil Bagwell、Hash Array Mapped Tries (HAMTs)の研究により、Clojureの永続データ構造へ直接的な着想を提供
    • Composable Memory Transactions (2005) — Tim Harris ほか、**ソフトウェアトランザクショナルメモリ(STM)**の概念を提示し、Clojureの並行性モデルに影響
    • Paper Bibliography — Rich HickeyがClojure開発時に参考にした論文一覧。Michael Fogusが整理
  • 影響力のある書籍

    • On Lisp — Paul Graham、先進的なLisp技法を扱う代表的著作で、オンラインで無料提供
    • Programming Clojure (4th ed.) — Alex Miller、Stuart Halloway、Aaron Bedraの共著。初版はClojure 1.0とともに刊行
    • The Joy of Clojure — Michael Fogus & Chris Houser 著
  • Rich Hickeyの主要講演

    • Simple Made Easy (2011) — "simple"と"easy"の違いを定義した代表的講演
    • Clojure at LispNYC (2007) — Clojureの最初の公開発表
    • Are We There Yet? (2009) — Clojureの状態モデルと、プログラミングにおける時間の概念を分析
    • Hammock Driven Development (2010) — コードを書く前に問題を深く考えるアプローチを強調
    • The Value of Values (2012) — **不変値(immutable values)**の重要性を強調
    • Writing Datomic in Clojure (2012) — DatomicをClojureで書いた理由を説明
    • Effective Programs - 10 Years of Clojure (2017) — Clojureの10年間の発展と、実問題の解決を中心にした機能優先順位を振り返る
    • Talk Transcripts — Rich Hickeyとコミュニティ講演の記録アーカイブ
    • Rich Hickey Talks — Richの講演動画をまとめた再生リスト
  • Paul Grahamのエッセイ

    • Beating the AveragesRevenge of the Nerds、その他のエッセイ集
  • 主要企業とプロジェクト

    • Cognitect — 長年にわたりClojureを管理してきたコンサルティング会社
    • Nubank — 世界最大の独立系デジタル銀行で、ClojureとDatomicにより中核インフラを運用。2020年にCognitectを買収後、Clojure開発を主導
    • Datomic — **不変の事実(immutable facts)**に基づく分散データベース。Rich HickeyとCognitectが設計
  • コミュニティとアーカイブ資料

    • Java.next Blog Series (2008) — JVM言語の動向を扱うStuart Hallowayのブログシリーズ
    • Clojure IRC Log Archive — 初期Clojure IRCチャンネルの保存記録
    • Clojure Etiquette — Richのメーリングリスト投稿に由来するコミュニティ礼儀ガイドライン

Clojureの方言とランタイム

  • 中核

    • Clojure — JVM上で動作。公式スタートガイドと無料入門書 Brave Clojure を提供
    • ClojureScript — JavaScriptへコンパイルされ、ReagentRe-frameなどのフロントエンドライブラリをサポート
    • ClojureCLR — .NET CLR上で動作するClojure
  • 拡張

    • Babashka — JVM起動時間なしの高速スクリプティングをサポート
    • Jank — LLVMを対象とするネイティブコンパイラ
    • ClojureDart — Flutterベースのモバイルアプリ開発向け
    • Squint / Cherry — ESモジュールへコンパイルされるClojureScript派生
    • Other Clojure-like projects — その他の類似プロジェクト一覧を提供
  • データサイエンス

    • libpython-clj — ClojureからNumPy、pandas、scikit-learnなどのPythonライブラリを直接呼び出し
    • NojSciClojが開発したClojureネイティブのデータサイエンスツールキット。データフレーム、可視化、機械学習を統合
    • Tablecloth — Python連携とClojureデータフレームを組み合わせる
  • ClojureとAI

    • ECA (Editor Code Assistant) — コード編集支援ツール
    • Backseat Driver — Copilot向けClojureツール
    • ClojureMCP — Claude、Codex、GeminiなどのAIアシスタントとREPLを接続するMCPサーバー
    • MCP-nREPL — Babashkaベースの最小MCPサーバーで、コーディングエージェントにnREPLアクセスを提供
    • clojure-mcp-light — LLMコーディングアシスタント向け軽量CLIツール
    • #ai-assisted-coding (Clojurians Slack) — AIとClojure開発に関する活発なコミュニティチャネル

はじめ方

  • 全体を体験 — macOS、Linux、Windows向けのインストール動画を含む公式ガイドを提供。VS CodeではCalvaを使用
  • 最短ルートBabashkaをインストールすれば即座にスクリプティング可能。JVM設定は不要
  • Web/フロントエンドClojureScript + Shadow CLJSで開始
  • モバイルアプリClojureDartでFlutterアプリを開発
  • Pythonユーザーlibpython-cljでPythonライブラリを直接呼び出し
  • エディタCalvaはVS CodeでREPL、構造的編集、**AI統合(Backseat Driver)**をサポート。エディタガイドを参照

用語集

  • Lisp — 括弧で囲まれた入れ子リストの形でコードを表現する言語系統で、ClojureはLispの方言
  • REPL — Read-Eval-Print Loop。式を読み、評価し、結果を出力する対話型セッション
  • 関数型プログラミング — 可変状態と副作用を最小化し、関数中心で構成するプログラミング手法
  • 値(Value) — 生成後に変更されないデータ。Clojureは基本的に不変値を使う
  • 永続データ構造(Persistent Data Structure) — 変更時に以前のバージョンを保持するコレクション。ここでの"persistent"はバージョン保持の意味
  • 偶発的複雑性(Accidental Complexity) — 問題そのものではなく、ツールや設計選択によって生じる複雑さ
  • STM (Software Transactional Memory) — ロックの代わりにトランザクションで共有状態の変更を調整する並行性モデル
  • ホスト型言語(Hosted Language) — 独自ランタイムではなく既存プラットフォーム上で動作する言語。ClojureはJVM、ClojureScriptはJS、ClojureCLRは.NET上で動く

Clojureのフォローとコミュニティ

  • YouTubeRedditSlackLinkedInなどの公式チャネルを運営
  • Clojure/Conj Conference 2026 — 2026年9月30日から10月2日まで、米国ノースカロライナ州シャーロットで開催予定

6件のコメント

 
runableapp 12 일 전

Clojureが登場してからかなり長い年月が経っていますが、ここにきてまたClojureの話題が出てくるのはなぜなのか、気になります。
Clojureが出た初期に、ある本をレビューしたことがあります。その後、それを使おうと試みた企業をいくつか見ましたが、企業で使うには簡単ではない、というのが結論でした。そしてこのまま埋もれていくのかと思っていましたが、また話題になる理由は何なのだろうと思います。

私はJavaを初期から長年使ってきましたが、JVMはいまでも、大企業ですでに開発された多くのソフトウェアがJavaであること、(アメリカの場合)インド系の人材の多くがJavaを扱うこと、高校から大学までJavaを教えていることなどの理由で、依然として広く使われています。ただ、私見では今の時代にはもはや合っていないと思います。Lispは好きですが、かなりマイナーな言語であり、しかも衰えつつあるJVM方式が、いまのAI時代に再び取り上げられるにあたって、どの点が利点として再評価されているのか、上の記事からは見いだせませんでした。

 
chebread 12 일 전

関数型プログラミング言語をきちんと学んだことがないので、Clojureから始めてみようかと思っているのですが、どのように学習していけばよいでしょうか? 開発者の皆さんのアドバイスをぜひお願いします。

 
runableapp 12 일 전

私の経験や多くの人の結論では、関数型言語は純粋関数型言語で学ぶべきだ、というのが定石でした。
関数型言語が注目され始めた当時や、大きな関心を集めていた時期に語られていた話で、私も共感していました。私は Erlang が出た初期にそれで学びましたが、当時はかなり衝撃的で驚くような体験でした。

 
chebread 12 일 전

では、純粋関数型プログラミング言語はどのように学習されましたか? 私はこれまでプログラミング言語(C、Go、Python など)を技術書+サイドプロジェクトで学習してきたのですが、関数型プログラミング言語もこのような学習方針で進めて問題ないでしょうか?

 
runableapp 12 일 전

人それぞれだとは思いますが、コンピュータ関連の学習はおっしゃるような方法で進めることが多いのではないでしょうか。最近は動画で学ぶという選択肢もありますし、自分に合った学習方法でやるべきでしょう。

 
GN⁺ 13 일 전
Hacker News の意見
  • Clojure は自分のキャリアで起きた最高の出来事だった
    この言語のおかげで年収が2倍になり、より安定した業界へ転職できた
    Heart of Clojure カンファレンスの包摂的な雰囲気は本当に驚くほどだった。今もコミュニティは活発で、特に低レベル作業向けの Clojure 方言を作っているJank コミュニティの情熱が印象的だ
    問題は、ほとんどの企業が言語の安定性や本質よりも開発者の入れ替えやすさを重視していることだ。結局は品質が落ち、AI に置き換えようとして自ら会社を壊していく悪循環を生む
    商用で Clojure を使っていて驚いたのは、多くの開発者が言語の哲学や Rich Hickey の講演、REPL の使い方すら知らないことだった。それでも彼らが Clojure のコードベースを管理する立場にいるのは疑問だった

    • 自分もそこはずっと引っかかっている。Clojure 開発者の中に、REPL の代わりに JVM プロセスを何度も再起動する人があまりに多い
      自分が Clojure に移った理由はまさに短いフィードバックループだったので、それを活用しないならなぜこの言語を使うのか分からない
  • Clojure のおかげで、この10年間一人創業者として持続可能なビジネスを運営できた
    クライアントとサーバーがビジネスロジックの大半を共有するので、複雑なコードベースも管理しやすかった
    何より言語と環境が安定性重視なので、他の言語のように数年ごとに足元が揺らぐことがなかった
    Clojure は新しくも派手でもないが、長期的に信頼できる伴走者

  • 昔は毎日 Clojure でコードを書いていて、Clojure/Conj で Rich Hickey と夕食を共にしたこともある
    最初のスタートアップもすべて Clojure で作り、AWS にまだサービスがほとんどなかった時代に Clojure を JS にコンパイルして Lambda で動かしていた初期の実験者だった
    今でも関連動画を見るのが楽しみだ

    • 今はどの言語を使っているのか、Clojure をどう考えているのか気になる
    • 全体として、今の Clojure をどう感じているのか知りたい
  • 2013年から Clojure を使っていて、自分の人生に非常に良い影響を与えてくれた言語だ
    自分はやや非典型的なユーザーで、芸術作品の大半を Clojure で作ってきた
    スタートアップを運営していたときも、Clojure のおかげでバーンアウトを避けられた
    コミュニティ活動も大きな喜びで、多くの人たちの献身に感謝している

    • あなたのウェブサイトは本当に美しく、作品も印象的だ
  • Clojure は素晴らしい言語でありエコシステムだ
    初期には Rich のプロジェクトに寄付もしたし、数年間は Clojure 開発で収入を得ていた
    今は以前ほど頻繁には使わないが、2時間前にも昔の Clojure 本のサンプルを更新しながら楽しんでいた

    • なぜ今は Clojure をあまり使わなくなったのか気になる。仕事の問題だろうか?
      また、Clojure はML/AI アプリケーションに向いていると思うか、Python との interop も良いのになぜもっと広く使われないのか気になる
  • JVM 上では、Clojure は自分が最も好きな代替言語
    Lisp の伝統を受け継ぎつつ、JVM を作り直すといった大げさな話ではなく、ホストプラットフォームを受け入れる哲学が魅力的だ

    • 昔はこのアプローチが負担に感じられたが、今では Clojure がニッチ言語として定着した理由の一つだと思う
      Zig も似たアプローチを取っていて、こうした統合の哲学こそが採用率と実用性を高める重要なポイントだと感じる
  • 本当に素晴らしい。ただ、borkdude が含まれていないのは残念だ

    • その通り、ヨーロッパ側の人物が抜けているのは惜しい。Metosin, Juxt, Borkent, Gaiwan(Arne), Flexiana, Peter Strömberg(Calva), Dustin Getz(hyperfiddle/electric), Christophe Grand(ClojureDart), Bojidar(CIDER), Renzo など、素晴らしい人たちがたくさんいる
  • jwr の「stable long-term companion」という表現が心に残った
    自分が働いた会社のうち新しさばかり追いかけていたところは、結局マイグレーションにより多くの時間を費やしていた
    安定性は退屈に聞こえるかもしれないが、小さなチームが長く生き残るための唯一の方法だ

  • Clojure は好んで使っていたが、自分の仕事の大半はC 言語との相互運用を必要とするので、メイン言語にするのは難しかった

    • Janet を見てみるといい。Clojure ほど強力ではないが、プロトタイピングとスクリプティングには素晴らしい
    • Jank も興味深い。まだ初期段階だが、C/C++ interop を目指している
    • Coffi は Java 22(Project Panama) の C FFI の上に構築されていて、C とのバインディングをずっと楽しいものにしてくれる
    • 自分も C/C++ とよく相互運用しているが、最近はClaude で Project Panama ラッパーを生成して、その上に Clojure レイヤーを載せればかなり楽にできる
  • Datomic が今やライセンス無料だとは知らなかった。以前はコストが高すぎて使わなかったが、興味深い

    • そう、そして Datomic は複数のClojure ベースの Datalog データベースにインスピレーションを与えた
      例: Datalevin, Datahike, Asami
      XTDB もあるが、Datalog を捨てて別の方向へ進んでいる
      比較サイトもある: Clojurelog(少し古い)