2011-10-28 41 views

回答

1

Rich Hickey本人至少有一個ClojureCLR項目。

該項目是Clojure在公共語言運行時(CLR), 微軟的.Net框架的執行引擎的本地實現。

ClojureCLR在C#(和Clojure本身)中編程,並利用微軟的動態語言運行時(DLR) 。

5

目前的Clojure的三種實現我所知道的:

  • ClojureCLR,對於CLI的Clojure的實現,
  • ClojureScript的實現((的變體的一個子集))Clojure for ECMAScript和
  • Java平臺的Clojure實現,也被稱爲Clojure。

事實上,名稱的Clojure因爲它含有兩個字母CLR,以及信Ĵ是專門由Rich希基選擇。我聽說過有關Objective-C/Cocoa運行時,LLVM和Rubinius VM的實現的傳聞,但我不知道這些實際上是否存在。

1

我不確定Python和Ruby端口是否有意義,那些語言包含多個虛擬機/實現。如果你想在Clojure和Python或Ruby之間進行本地互操作,你可以使用Jython或JRuby並保持在JVM上。

5
" or is it too closely tied to Java and the JVM? 
    Does it make sense to build a Clojure for other platforms?"

一個Clojure的設計理念之一就是擁抱主機平臺。 JVM上的Clojure包含JVM,並可直接訪問類,數字等。

ClojureScript以完全相同的方式包含JavaScript(ECMAScript),可以直接訪問.NET對象的對象,數字等。

製作在多個平臺上運行完全相同源代碼的「跨平臺」語言是誘人的,但並非總是成功。迄今爲止,Clojure已經避免了這種誘惑,並努力保持與主人的距離。