2010-10-13 67 views
4

由於背後蘊藏着巨大的資源,JavaScript似乎很快成爲應用程序(尤其是那些具有Web前端的應用程序)的腳本語言選擇。我有一個應用程序需要在前端和後端都具有可擴展性。 Javascript或像CoffeeScript這樣的薄包裝,看起來像是一個優秀的,面向未來的選擇。與JVM和CLR具有良好互操作性的Javascript引擎

我使用Javascript作爲目標的問題是與現有服務器端庫的互操作性。 V8需要自定義的C++代碼。我更願意利用JDK/.NET類庫的大量資源以及將API公開給這些語言的代碼。

是否有任何強大的努力,允許用戶從Javascript調用JVM/CLR庫,類似於IronPython-CLR和Jython-JVM鏈接的優雅性?

另一種方法是使用類似IronPython/Jython的東西,但這兩個項目只有一小部分專用於Javascript的資源,它使得客戶端可擴展性故事非常困難。

有沒有人成功地面對類似的問題?

+0

這可能不存在問題,但您可以使用.NET即時編譯JScript,同時利用語言和.NET框架。 http://msdn.microsoft.com/en-us/library/49zhkzs5.aspx – 2010-10-13 18:48:18

回答

1

您是否嘗試過使用JDK 6(Rhino)附帶的Javascript解釋器?

我的意思是,如果你問我,與核心JDK一起發貨是非常具有互操作性的。您可以從Javascript上下文訪問Java服務,並且從Java端可以將對象引入到Javascript全局上下文中。也可以(使用ScriptEngine的東西)使用Javascript代碼作爲Java接口的實現。

現在,它當然不能與CLR互操作。

0

JavaScript編譯器已在 中發佈了從開始的MS CLI實現 以及從1.6.0開始的Sun Java實現。

MS的效率很高,並且使用DLR,因此它可以與其他動態語言的實現(如IronPython)互操作 。

Sun的是基於1998年廢棄的Mozilla「Rhino」。 如果您必須具有一致性或必須具有開放源代碼,您可以通過IKVM在MS .net上運行Rhino。

有關詳細信息,請參閱:

Is there a port of the Rhino JavaScript engine for .NET

的網頁瀏覽器大戰已導致他們的JS實現(在C++) 是從根本上更快&更高達最新比所有其他人。 Mozilla的TraceMonkey沒有Java綁定。但Google的V8(Chrome,Android;反正速度更快)的確如此。

如果你對某些疼痛準備:

http://code.google.com/p/jav8/

http://rbackhouse.blogspot.com/2011/03/using-google-v8-javascript-engine-in.html

或者您可以使用MessagePack RPC調用到node.js的(谷歌V8)。

0

是否有強勁的努力,將允許用戶調用JVM/CLR庫從Javascript

如果你不介意使用打字稿,嘗試1c,這也允許JVM類型檢查和自動完成庫。