現在,Web開發公司和開發人員可以選擇多種技術棧來建構Web應用程式。早期網絡發展,不同的技術被用于前端和後端開發。但是,随着Node.js的釋出,布局發生了變化,因為它允許開發人員使用 JavaScript 編寫後端代碼。這最終催生了MEAN(MongoDB + Express +AngularJS + NodeJS )堆棧 web 開發架構,從前端到後端甚至是資料庫(MongoDB -JSON)都使用 JavaScript。在 Node.js 之前,Web 開發通常是在 PHP 的幫助下完成的,因為它很容易與 HTML 內建,幫助開發人員立即建構動态網站。在這篇文章中,我們将比較 Node.js 和 PHP,看哪一個最适合目前的行業需求。
PHP 和 Node.js 的基本差別在于 PHP 是一種程式設計語言,Node.js 是一個基于 Chrome V8 引擎的 JavaScript 運作環境。
Node.js VS PHP,哪一方可以赢得這場戰争取決于你建構的網站類型。比方說,如果你想建構一個實時的聊天應用程式,那麼選擇 Node.js 是明智的,因為它可以輕松處理大量的用戶端請求。但是,這并不意味着PHP 不可以,請看完 Node.js VS PHP 後再決定用誰建構你的網站。
1.性能:
在性能方面,Node.js 顯然赢了這一局。由于 Node.js 遵循事件驅動的非阻塞I/O模型,與傳統的後端技術相比,Node.js 能夠處理大量的伺服器請求。PHP 遵循一個阻塞模型,其中在伺服器端建立多個線程來處理多個用戶端請求,如果代碼沒有被優化,它會導緻高伺服器負載和響應時間。
2.托管和部署:
PHP 應用程式可以在包括 Nginx 和 Apache 以及 Windows 和 Linux 平台在内的任何伺服器上運作,這使得部署過程變得更容易,而 Node.js,則需要具有 SSH 通路權限的虛拟伺服器。是以,在沒有任何控制台指令和 Secure Shell(SSH)知識的情況下,用 PHP 部署小型企業和個人應用會更好。
3.外部依賴:
Node.js 依賴關系較少,用幾行代碼就可以設定一個 Web 伺服器。但運作 PHP 應用程式,就需要外部伺服器軟體。用 Node.js 的開發人員隻需要 NPM(節點包管理器)就可以下載下傳 Node 子產品,這些子產品可以輕松地內建到應用程式中,提供額外的功能。
4. CPU 擴充任務:
Node.js 可能在高吞吐量方面表現優異,但是當應用程式繁重,需要 CPU 做大量工作時,Node.js 肯定會有所欠缺。在這種情況下,PHP 最适合做 Web 應用程式的後端。
5.單頁應用程式:
如果您使用過 Gmail,那麼您可能知道什麼是單頁應用程式(Single Page Application)。Web 應用程式在初始用戶端請求時加載,之後根據用戶端請求重新整理的網頁的特定部分。Node.js 與 AngularJS 的聯合是開發單頁應用程式的完美方案。
6.開發環境:
Node.js 可以用于桌面應用程式開發(Windows,Linux和Mac),移動應用程式開發(混合和跨平台應用程式),甚至建構基于控制台的應用程式。雖然有一些也可以使用 PHP 來開發,但是大多數開發人員不會這樣做。
7.社群支援:
由于 PHP 比 Node.js 早誕生将近20年,是以在文檔,API 和代碼庫等線上資源方面更為豐富。是以很有可能其他人也嘗試了你想要用代碼完成的事情并從中獲得了幫助。另一方面,Node.js 雖然已經得到了開發者群組織的廣泛關注,但是它支援開發者開發的資源缺相當少。
8.學習曲線:
編寫 Node.js 代碼對于新手甚至是專業的 JavaScript 開發人員來說都不是件容易的事情,因為他們需要在入門之前了解一些複雜的概念,比如 web worker 和回調函數。相反,PHP是一門非常友好的程式設計語言對于開發 Web 應用程式的新手來說。
Node.js 和 PHP 戰鬥的結果是相輔相成的,因為這兩種技術都有各自的優點和缺點。這大多是相似的情況在比較或選擇用于 Web,桌面和移動開發的其他技術時。Node.js 有前途,并且肯定會占據PHP市場的一部分,但是不能完全取代 PHP。
原文釋出時間:2017-12-23