為什么不做JavaScript服務端開發(fā)
沒有合適的JavaScript Runtime(JSR ?)
現(xiàn)在JS之所以能夠流行,很大程度上取決于瀏覽器的普及.瀏覽網頁的時候需要計算一道簡單的四則混合運算,你會怎么做?心算?打開計算器然后點幾個按鈕?我的方法是在瀏覽器地址欄輸入"javascrit:alert(1+2+4*5);".很方便不是么.
但是服務端的情況就不容樂觀,除了少數幾個解析器能夠勉強運行單薄的JS語法,似乎很難讓他在服務端大展拳腳.V8?嗯,確實很快,不過還只是個跑在客戶端的小伙子.Node.js?嗯,的確提出了很多特性,不過就拿這些特性想征服服務端的開發(fā)還是不容樂觀.RingoJS?JVM的龐大,讓JS無法靈巧的伸展.IronJS?無案例,無圖,無真相.
沒有成熟的類庫
你愿意在一片荒蕪的土地上開荒,還是在肥沃的農田揮鋤?
JS在客戶端確實意氣風發(fā),jQuery,Prototype,YUI,Ext,Dojo等等.無數的框架,為我們的網頁動態(tài)化提出了解決方案之道.在這百家爭鳴的日子里,眾多特性,理念,被提出來,鏈式操作,函數式編程....一片繁華.
反觀JS在服務端的表現(xiàn),集合操作停留在增刪改,沒有filter,沒有order.字符串只能拼接,沒有格式化.文件讀寫就一個CommonJS標準.數據交互的確得益于JSON的流行,很方便,但是數據存儲似乎又回到了ASP/VBScript時代.
標準
就像客戶端瀏覽器對JS的支持參差不齊,服務端對于CommonJS標準也是有待加強.所幸服務端JS沒有跨"瀏覽器"之憂.
效率
開發(fā)效率頂呱呱的JS在服務端由于缺少類庫的支持,使得服務端開發(fā)相比現(xiàn)存的幾個平臺(JVM,.NetFX),慢了不止幾個檔次.客戶端就備受詬病的執(zhí)行效率放到服務端仍舊是一個不可忽視的問題.
為什么要看好JavaScript服務端開發(fā)
靈巧
沒人否認JS本身強大的靈活性,強大的自解析,原型鏈和弱類型衍生出的種樣繁多的開發(fā)方式.實在是讓人愛不釋手.
普及
JSON確實有XML不可比擬的潛質,體積瘦小,方便傳輸.眾多語言中都有支持.客戶端無需插件就能原生解析.還有什么比這更棒的么?
活躍的社區(qū)
一個籬笆三個樁,一個好漢三個幫.活躍的JS社區(qū)不會甘心JS止步與客戶端,必然會向服務端虎視眈眈.
js 在對文件操作,網絡傳輸等方面都沒有成熟的解決方案,我認為,至少目前是 js 之所以流行是因為他和dom和瀏覽器結合的比較好,如果脫離了 瀏覽器這個運行環(huán)境 ,js 和其它服務器端編程語言相比,基本沒有競爭性。
玩家完全可以選擇 IDE 更成熟,開發(fā)、執(zhí)行效率更高的語言來替代。但我看好 json數據, 在具有一定可讀性,且體積較xml更小,關鍵是可直接當做js中的對象來使用。我們應該發(fā)揮其所長,讓其成為客戶端編程的不二選擇或許才是一個明智之舉。