iT邦幫忙

9

PHP+Apache vs. Node.js大車拼

文章出自:PHP + Apache Stack vs Node.js

這是一位具有PHP 5認證的開發人員所寫的文章,他自承是PHP的粉絲,在實務上也是使用PHP開發過數百個網站,用過各式各樣的CMS和PHP框架。

而他近來開始使用Node.js在一些專案上,累積了一些經驗,因此作了一些比較。
PHP的優點:
眾所皆知PHP廣泛使用在網路世界,有許多知名的站都是採用PHP,像是facebook、Wikipedia,而且要找到hosting的方案也很容易。對內容網站來說,使用PHP有其優點。

PHP的缺點:
PHP無法處理耗時較久/記憶體耗用大的工作
PHP無法平行執行程式碼
Apache+PHP的環境設定較複雜,作URL maping需要.htaccess輔助
官網很醜
套件管理程式不優
處理完資料後,無法儲存在記憶體中(雖然有第三方的工具可以支援)

Node.js的優點
Node.js最強的就是它的事件驅動設計,簡單、威力強大而且有一致的介面。

作者說有人認為Node.js內建Server是壞事,他覺得說這些話的人瘋了。Node.js和Server一體的好處,是每個request都知道在相同的處理程序中,知道該往哪走,而不需要.htaccess這些額外的設定來處理。

Web應用程式瓶頸通常出現在network的I/O,而Node.js的強項正在這裡。

Node.js採用JavaScript,因此對Web開發人員來說通常已經很熟悉,要入門很快。

Node.js的套件管理系統NPM做的相當好,而且每個人都可以輕易的將自己開放的東西放上去。

Node.js將資料存放在記憶體中相當然容易,便於讓不同的client存取。

Node.js的缺點
Node.js的缺點就是新,還不夠穩定,API經常在更新,如果要開發大型的應用程式,也許Node.js不是一個最佳選項。

如果要處理大量的靜態檔案,也許Node.js也不是最佳選擇,它必須回到利用檔案系統來檢查檔案是否存在。

另外JavaScript對Class based和不熟悉非同步的開發者來說,也有適應上的痛苦。

另外雖然讓資料常駐在記憶體中雖然很容易,不過同時也招來風險,除了有可能導致記憶體洩露,也可能導致Node.js炸掉。

至於該學哪一個,作者的建議是如果你是server side開發的完全初學者,PHP還是相當值得學的,不過如果你想要做一些較特別的應用,也許Node.js就值得一試。

但如果是以Single Page Application來說,Node.js是比PHP佔優勢,但Node.js是不是最後的贏家,作者也有所保留,他認為JavaScript一些先天上的缺點,讓其它語言有機會迎頭趕上(作者比較狠,用easily kick its ass)

最後,作者打趣的說,用PHP要作出Node.js的機制,必須要用一堆東西才戸兜得出來;而Node.js要模擬PHP,只需要改用同步機制就行了。


1 則留言

0
ted99tw
iT邦高手 1 級 ‧ 2012-07-25 17:16:59

讚讚!簡短一篇文就讓人茅塞頓開,絕對要推的啦~讚

我要留言

立即登入留言