Caleb Madrigal是來自美國密爾沃基市的一名軟件顧問。四年前,他在聽說“將JavaScript用作服務器端語言”這樣的說法時,認為那是一個荒唐的想法。有那么多服務器端語言可供選擇,為什么要選JavaScript?這是他當時的想法。但現在,他在當前的項目中選用了JavaScript/Node.js。他近日撰文對自己的這一轉變進行了解釋。
首先,許多頂級企業都使用了Node.js,并且效果非常好,其中包括PayPal、Walmart、Ebay、Groupon和LinkedIn。這些企業在生產環境中大量使用了Node.js。Madrigal舉了PayPal的例子。PayPal針對他們網站上其中一個流量最大的應用,對比了它的Node.js版本和Java版本,發現前者在多個方面優于后者,并最終決定由Java切換到JavaScript。InfoQ對此有過報道。
其次,Node.js有一個很棒的包管理系統NPM。通過運行“npm install 包名”幾乎可以安裝任何包/庫。另外,通過package.json文件可以跟蹤依賴關系。因此,Node.js庫很容易克隆,運行“npm install”可以安裝所有的依賴關系。
再次,Node.js社區異常活躍,總是有新的庫產生。這些庫非常好用,使JavaScript成為一個非常高效的平臺。
然后是Node.js 的REPL(read-evaluate-print loop)命令行。開發人員只需要在終端中輸入“node”,就可以對Node.js進行逐行測試。
最后,Node.js有一個很重要的特性:非阻塞函數。這就是為什么我們會在Node.js的代碼中看到大量的callbacks和promises。這種設計模式給Node.js帶來了非常優異的性能。
此外,Node.js的最大一個優點是:它是JavaScript。任何人都知道JavaScript,所以使用Node.js不需要學習一門新語言。有了它,開發人員可以只使用一種語言,瀏覽器端用JavaScript,服務器端用Node.js。在使用像MongoDB和CouchDB這樣存儲JSON對象的文檔數據庫時,這會極大地簡化數據庫和用戶界面之間的數據傳遞任務。