PHP與Node.js:一個史詩般開發者的分享
兩個老朋友之間最終以戰斗的方式分開,這是經典的好萊塢情節,通常,摩擦開 始于一個人對另一個人的說話不感興趣時。在編程語言這部電影中,Node.js的引入使得朋友輕易地變成了怨恨對手:PHP和JavaScript,兩個 合作伙伴曾經一起統治互聯網,但現在卻彼此分開。
過 去的合作關系很簡單。JavaScript處理瀏覽器上的細節,而PHP管理80端口和MySQL之間的所有服務器端任務。這是一個幸福的聯盟,支持互聯 網的許多關鍵部分。在WordPress,Drupal和Facebook之間,人們幾乎在網絡上的每一分鐘都有PHP的參與。
然后一些聰明的開發者發現JavaScript可以用在服務器上。突然,沒有必要使用PHP來構建服務器堆棧了。一種語言既可以構建Node.js,也是客戶端運行框架所需要的?!癑avaScript無處不在”成為了一些人的口頭禪。
從那時起,兩個平臺都不斷地擴大和改進。Node.js的開發人員現在可以選擇一個不斷擴充的優秀框架集合:Express,Angular,Meteor等。列表很長,最大的問題是選擇最優秀最合適的。
PHP也加快了速度,zippy即時編譯器提供的答案比以前更快?,F在的PHP 7.0和HHVM都為Chrome和Node.js提供了相同的即時優化引擎V8。不僅如此,HHVM還有一個Hack,它對諸如lambda,泛型和集合等復雜編程特性提供完全支持。
有人稱贊Node.js和JavaScript,也有人對PHP的代碼基礎和穩定性感到滿意。JavaScript還會和它的老朋友一起實現統治世界嗎?
PHP特點:混合代碼
如果你想添加一個分支,一個if-then語句就可以,看起來也很漂亮?;蛘咭苍S你想混合文本或數據庫中的數據。使用PHP,打開PHP標簽,幾秒鐘就可以開始編寫代碼。不需要模板,因為一切都是模板!不需要額外的文件或精心設計的架構,只需要你的指尖編程。
Node特點:代碼分離
混 合代碼可能最終不是什么好事。雖然,這件事很有趣,但很快你的代碼就會變的邏輯混亂。真正的程序員會添加結構并將基礎層與邏輯層分離。這使代碼對新程序員 來說更加清晰,易于理解和維護。在Node.js上運行的框架由程序員構建,程序員知道模型,視圖和控制器分開是最好的。
PHP特點:深度代碼庫
網絡中充滿了PHP代碼。用于構建網站(WordPress,Drupal,Joomla)的最流行的平臺是用PHP編寫的。不僅平臺是開源的,大多數的插件也是如此。PHP代碼無處不在。
Node特點:更新的代碼意味著更現代的功能
當然,有成千上萬偉大的開源PHP文件,但誰想要花幾個小時,幾天或幾個星期的時間研究幾年沒有更新的代碼呢?Node.js插件不僅更新,而且是建立在最新的架構方法上的。它們由程序員構建,程序員知道現代網絡應用程序應將大部分智能推送給客戶端。
PHP特點:簡單(排序)
PHP沒有太多的東西:一些變量和基本的函數,用于編譯字符串和數字。除了將數據從80端口移動到數據庫和回來之外做的不多,PHP是一個不復雜的工作所需的。
Node特點:復雜的閉包
JavaScript可能有許多小的特性,但在大多數情況下,它是一種現代語言,運行現代語法和一些有用的功能,如閉包。你可以很容易地重新配置和擴展它,使強大的庫比如jQuery成為可能,你可以傳遞類似對象的函數。
PHP特點:新代碼正在建立
如 果你是一個程序員,想要做的不僅僅是與數據庫交互,而是對結果進行格式化,現在你可以使用PHP做很多事情。Facebook的HHVM添加了對Hack 的支持,Hack是一個完整的語言,充滿了類型注釋,泛型和lambda表達式等現代特性。使用這個會限制代碼只運行在HHVM上。
Node特點:幾十種語言選項
如果PHP用戶樂意訪問Hack,他們應該考慮遷移到Node.js世界,因為許多主要語言可以交叉編譯以在JavaScript中運行,如Java,C#或Lisp和Scala,OCaml和Haskell。
PHP特點:無需客戶端應用程序
在瀏覽器和服務器上使用相同的語言是很好的,但如果你不需要在瀏覽器上使用任何語言怎么辦? 如果以HTML格式發送數據怎么辦? 純HTML比其他任何東西都更頻繁地被使用,并且PHP已經被優化以創建它,既然如此,為什么還要在瀏覽器上使用JavaScript?
Node特點:高效交付的基礎
如果你愿意花時間創建一個漂亮的瀏覽器端網絡應用程序,Node.js經過優化,可通過Web服務提供數據。如果你的應用程序很復雜,數據豐富,這是高效交付的良好基礎。
PHP特點:SQL
PHP 被構建為與MySQL及其許多變體(如MariaDB)共存。如果MySQL不完全正確,還有來自Oracle和Microsoft的其他SQL數據庫。 代碼可以對查詢進行一些更改。 一些穩定的,開發良好的代碼將與SQL數據庫相連接,這意味著也可以輕松地集成到PHP項目中。
Node.js特點:JSON
不是說不能為PHP堆棧獲得JSON庫,但使用JavaScript時,使用JSON更簡單靈活。它是從瀏覽器到Web服務器到數據庫的一種語法。
PHP特點:編碼速度
對于大多數開發人員,為Web應用程序編寫PHP感覺更快:沒有編譯器,沒有部署,沒有JAR文件或預處理器,只是你最喜歡的編輯器和一些目錄中的PHP文件。當一個項目需要快速開發時,PHP是最好的工具。
Node.js特點:原始速度
當你算入大括號和括號時,編寫JavaScript代碼有點困難。它的核心在于精細準確。
PHP特點:內部競爭
HHVM團隊和Zend團隊正在努力為每個人提供快速代碼。出現了獨立的基準,每個人都將代碼推向極限,這意味著更好的性能。
Node.js特點:融合團結
你 真的想要兩個不同的代碼庫嗎?競爭有助于發展,但碎片化很快就會出現。如果你必須花幾個星期或幾個月重寫代碼,競爭不會有什么好處。雖然Node.js在 幾年前經歷了分裂,隨著io.js的推出,Node.js的Universe已經重新統一了,它給了PHP開發人員很久以來未曾有過的語言團結。
來自:http://www.techug.com/post/php-vs-node-js-3.html
相關文章:
