1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Clojure のポート、処理系

Last updated at Posted at 2023-05-27

babashka を誰かに説明するとき JVM の Clojure の話から順を追って話すことが多いので簡単に羅列する。処理系によってはまったく知らないものも多いので、そういうのは ? が付いていたり空欄になっている。

名前 登場時期 アウトプット 実行環境 拡張子 用途
Clojure 2007 Java Byte code JVM (Java Virtual Machine) や GraalVM .clj ウェブアプリケーションのサーバーサイド、データ分析など多岐。汎く Java の用途をカバー。
ClojureScript 2011? Javascript コード Browser, Nodejs などの Javascript が動くところ .cljs フロントエンド JS、Nodejs アプリケーションなど多岐。汎く Javascript の用途をカバー。
ClljureCLR 2009? CIL コード .NET, mono .clj ? あんまり知らない。まだ触ったことがない。ごめんなさい。
ClojureDart 2022? Dart  コード 今は Flutter をメインターゲットにしている .cljd Flutter モバイルアプリ
Babashka (SCI) 2019 スタンドアロンのバイナリ .bb, .clj Shell script の用途をカバーするところからスタートして Make のようなタスクランナー機能も組み込みで実装されたり、用途は広がっているように見える。
nbb (SCI) 2021 Javascript コード? Nodejs .nbb Nodejs で動く Babashka のようなの。処理系として Babashka と同じ SCI (Small Clojure Interpreter) が使われていて作者も同じ。 ClojureScript のライブラリが一部使えたりするようだけどまだ試したことがない。
  • もうメンテされてないようだが Ruby 環境で動く Rougeとか他にも色々ありそう。

  • Clojure Conj 2023 では LLVM で動いて C++ との interop が可能な Clojure Dialect jank のセッションがあった。 "How to build a Clojure dialect" by Jeaye Wilkerson - YouTube

  • Python エコシステムとのからみでいえば Hylibpython-clj がある。拡張子に言及すると .cljc もある。いずれも記事のタイトルのスコープとは違うので触れてない(というかさらに詳しくない)。

単に clojure と言った場合に、処理系を指すのか、エコシステムを全体的に指すのか、言語を指すのか色々な気がする。ただ、明示したい場合は JVM の Clojure とか ClojureScript とかより修飾したり正確な名前を用いるので、コミュニケーションで困ったことは自分はない。

参考: 日本での採用例 - https://github.com/athos/japanese-clojure-companies

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?