2

私はいくつかの「ビルダー」Groovy DSL を FactoryBuilderSupport で作成しました (標準的な例はSwingBuilderです)。これは主にパフォーマンスの問題のためです (また、Groovy の将来について心配しているためです。たとえば、Groovy 3 には新しい MOP が含まれますか?)。 JVM ベースの内部 DSL の代替フレームワークを検討しています。

Clojure にはクロージャーとマクロの両方があるため、有力な候補ですが、Groovy スクリプトのように動的にバインドされた Java オブジェクトを操作することが Clojure でどれほど簡単かはわかりません (ところで、私は LISP 言語ファミリには精通していますが、Clojure の言語ファミリには精通していません)。特定の機能)。

また、十分に待てば、Java 8 の Nashorn が別の候補として Javascript を追加することになると思います。

では、Groovy と比較して、Clojure (あるいは JavaScript でさえも) は、その種の DSL をどの程度サポートできるでしょうか?

4

1 に答える 1

2

Clojure はマクロを備えているため、おそらく DSL を作成するのに最適な JVM 言語です。あなたにインスピレーションを与えるかもしれないいくつかの例 ( https://stackoverflow.com/a/3968289/476116から取得):

そしてもちろん、swing DSL の例としてのシーソー。

于 2013-12-11T16:00:53.880 に答える