Go 実装 Clojure 方言 let-go 公開──起動 7ms・10MB の単一バイナリで動作
JVM 不要で Clojure の表現力を Go の軽量・高速な実行環境へ持ち込み、CLI や WASM への AOT コンパイルにも対応した。
リリース: 2026-05-10 · 読了 3 分記事の要約
1. 核心(What)
- Go で実装された Clojure 方言であり、JVM を介さず約 10MB の単一バイナリとして動作する。
- コールドスタートが約 7ms と極めて高速で、Babashka (18ms) や Joker (12ms) を上回る起動速度を誇る。
- jank-lang テストスイートで 95.4% の互換性を達成し、core.async や transducers などの主要機能をサポートする。
- Go との双方向相互運用(関数・構造体・チャネル)が可能で、スタンドアロンバイナリや WASM への AOT コンパイルに対応する。
2. 影響(Why)
- JVM の起動遅延やメモリ消費を理由に Clojure を敬遠していた開発者が、Go のデプロイ容易性と Lisp の生産性を両立できる。
- 10MB 以下のバイナリでマクロや非同期処理が完結するため、コンテナランタイムやエッジデバイス向けの軽量な拡張言語として実用性が高い。
- 開発者への影響: Go プロジェクトのテックリードは、柔軟なロジックが必要な部分に let-go を組み込むことで、Go の型安全性と Clojure の動的な表現力を低コストで共存させる選択肢を得る。
- 日本への影響: 国内の SaaS 開発やインフラ自動化を担うエンジニアチームは、運用スクリプトを Bash から let-go へ移行することで、Go エコシステムとの親和性を保ちつつ、不変データ構造による堅牢な自動化ツールを構築できる。
3. 根拠・詳細(How)
- nooga/let-go GitHub Repository (2026-05-10 公開)