🛠Tools🔥

ClojureScript、コンパイラで async/await をネイティブサポート──JS 相互運用性を強化

ClojureScript 1.12.145 リリースにより、^:async メタデータと await マクロを用いた JavaScript async/await への直接コンパイルが可能になった。
リリース: 2026-05-07 · 読了 2

記事の要約

1. 核心(What)

  • バージョン 1.12.145 において、ECMAScript 2016 をターゲットとしたコンパイル設定が導入された。
  • 関数定義に ^:async を付与することで、コンパイラが JavaScript の async function を直接出力する仕組みを実装。
  • Clojure ユーザー調査で最も要望の多かった「JavaScript 相互運用における非同期サポート」に対応し、外部依存を削減。

2. 影響(Why)

  • これまで Promise 処理に必須だった core.async 等のライブラリが不要になり、ランタイムサイズと学習コストを同時に削減できる。
  • モダンなブラウザ API や npm ライブラリを、JavaScript 標準に近い直感的な記法で直接呼び出せるようになる。
  • 開発者への影響: ClojureScript 開発者は、マクロによる複雑なラップを介さず Promise ベースのエコシステムを統合できるため、コードの保守性とデバッグの容易性が向上する。
  • 日本への影響: ClojureScript を選定している国内の金融系スタートアップやデータ分析ツール開発チームは、TypeScript 向けに書かれた最新ライブラリの取り込み障壁を下げ、開発速度を改善できる。

3. 根拠・詳細(How)

  • ClojureScript 1.12.145 Release Notes (2026-05-07 公開)