JavaScript in Seriver-side 發展現況, Rhino 和 wxJavaScript
去年6月, Google 員工 Steve Yegge 指出他打算開發一套基於 JavaScript 語言的 'on Rails' 框架,主要選定的工具是以 Java 實作的 JavaScript 引擎, Mozilla Rhino。故計劃定名為 Rhino on Rails。隔月,又有一個使用 Rhino 實作的 Web 應用開發框架 Helma 釋出。這讓我開始注意到 JavaScript 在 server-side 的開發工作。
前幾天又讓我找到一套將 JavaScript 應用於 server-side 的開發工具: wxJavaScript (See also: 《wxJavaScript - 以 JavaScript 開發視窗與 Web 應用程式的工具》)。Rhino, wxJavaScript 再加上 JScript.Net ,顯示 JavaScript 在 server-side 開發工作上的基礎工具已經漸趨成熟,現在就缺少一個殺手級的應用開發框架了。
Rhino on Rails 目前為止只聞樓梯嚮,事實上連提出者 Steve 也說自己沒有太多時間投注在這方面,同時也有其他的 JavaScritp server-side framework 在發展。他也隨時在評估那些框架的進展。如果有其他發展成熟的框架,那麼也就不需要再另行發展 Rhino on Rails 了。
Helma 目前看來並沒有 Ruby on Rails 的風格。不過它確實發揮了採用 Rhino 的好處: 可以調用 Java 即有的 class library。試想,可以調用現成的 Java class library 以及公司中已經寫好的 Java components,又可以用敏捷的 JavaScript 撰寫程式碼。這是多麼吸引人的特點啊。另可參考 纯java 的javascript引擎 rhino ,這是純粹展示在 Rhino 中如何調用 Java class 的例子。
說到這,就不得不吐槽一下微軟了。我在ECMAScript 各實作版本應用於程式設計工作之現況中說: 雖然 JScript 可能搭 .Net Framework 的順風車而享用豐富的 class library 。只可惜微軟的重心從不放在 JScript 身上
。目前看來,不但要看到 JScript.Net 出現輕量級開發框架的日子遙遙無期,連在 JScript.Net 中要調用 .Net Framework 的方式,都顯得非常不合 JavaScript 風格。至於 ASP.Net 這個框架,老話一句,微軟沒有關心過 JScript.Net 。一個程序員要在 ASP.Net 框架上以 JScript.Net 為編寫語言,能得到的參考資料並不多。很多時候看得是 C# 或 VB.Net 的範例。
wxJavaScript 目前提供了簡單的 Web 應用開發工具,嚴格說來還是處於 工具(ToolKit) 的階段,尚未具有框架(Framework)。理論上,它可以運行純粹基於 JavaScript 語言開發的框架,所以那些在 Rhino 上發展的 JavaScript 框架,應該是可以運行的。前提是: 使用 Java class 的部份需要封裝良好,才能移植到 wxJavaScript 上。
wxJavaScript 是使用 C/C++ 開發的,它承接的資源也來自於 C/C++ 原有的開發資源。這點是它吃虧之處。因為要讓 wxJavaScript 新增一項功能模組/元件,並不像 Rhino 可以直接調用 Java class 那麼方便。
不過,wxJavaScript的優點也來自於 C/C++: 它夠小。以 Windows 平台的預先編譯版包裝為例,binary 含 modules 的部份僅佔不到 9MB。又是 Apache module 的形式,可直接由 Apache httpd server 載入運作,不需經過 FastCGI 等調校技術。嗯... 似乎挺有意思的。只是,雖然 MySQL, SQLite, GD, Expat 和 TPL 這幾個模組足以應付大部份的軟體設計需求,但它現有的資源還是太少了。
樂多舊回應