2009年11月1日 星期日

Kawa

以 Java 寫成的 Scheme,可以在 JVM 上執行。因此我忍不住將它和 plt-scheme 及 rhino 比較,以瞭解它的優劣定位。

相較於 rhino:
  1. 同樣可在 JVM 上執行。
  2. 援用 java 的 class 時,沒 rhino 那麼方便,必須定義要使用的 method,若使用某個 method 眾多的類別如 JOGL 時,會帶來一些困擾。
  3. 因為是 scheme,比 rhino 更適用於開發 Domain specific language (DSL)。
相較於 PLT-SCHEME
  1. 可在 JVM 上執行,因此,可以和使用 rhino 的程式整合在一起,提供 rhino 欠缺的 DSL 能力。
  2. 缺少 PLT-SCHEME 的龐大功能及其健康的社群。
Kawa 被用於 Google 的 App Inventor,被使用的原因就是因為 Scheme 的 DSL 能力。

依我的觀點,Scheme 的 DSL 能力最適合用在當 Domain specific language 尚未定型,正在成長時。

沒有留言:

張貼留言