回覆列表
-
1 # 零點程式設計師
-
2 # 宇2228099
看你做什麼吧,nodejs可做的東西很多,前端後端都可以,php主要做後端,目前我覺得後段用php還是比較多的。我建議你都學一下沒有壞處。
-
3 # 碼譜
Node.js 是一個基於 Chrome V8 引擎的 JavaScript 執行環境,而 PHP 是一門程式語言,二者的學習難度和適應場景不盡相同。時常將它們對比,是因為 PHP 和 Node.js 都是最廣泛使用的兩種伺服器端技術。先出現的 PHP 與遲到的 Node.js早在 1995 年,PHP 就有了雛形,不過那時是為了製作“個人主頁”。當然,現在它有了更深層次的含義——超文字預編譯器,服務能力也遠不止部落格站點,很多公司都使用過 PHP 構建大型企業級應用,比如早期的淘寶網使用的技術正是 PHP。
PHP 本是指令碼語言,但是在 ".php" 擴充套件檔案中,你可以寫任何的 CSS、HTML、Javascript 甚至是純文字。也可以說,PHP 是不純粹的指令碼語言。
Node.js 首次公開是在 2009 年,比 PHP 整整晚了十年。設計的出發點,是用來建立可以在 web 瀏覽器環境之外執行純 JS 應用程式。這也意味著,玩轉 Node.js 需要對 Javascript 有一定的理解。應用領域不同對於客戶端和服務端通訊少、互動不頻繁的應用,使用 PHP 更加便捷。如個人部落格之類的內容管理系統(Wordpress),大都使用 PHP 構建。如果客戶端和服務端需要頻繁通訊,使用Node.js
更容易發揮性能。如單頁面應用,聊天室應用,或者影片播放應用,可以充分利用 Node.js 非阻塞的特性和 I/O事件驅動。響應速度有要求如果不顯示地使用非同步程式設計方式書寫 PHP 程式碼,PHP 預設是同步執行的,僅當上一行程式碼執行完成後,下一行程式碼才能執行。如果中間出現消耗時間長的業務邏輯,整個執行時間是累加計算的。
Node.js 程式碼天生是非同步執行的,在多核 CPU 的伺服器中,能“同時”執行多行程式碼,而不必等待上一行程式碼的執行結果。因此,使用 Node.js 往往比 PHP 有更加好的響應速度。當然,你也可以讓Node.js
以同步方式執行,只需要 async、await 關鍵字標識即可。相對應地,讓 PHP 程式碼非同步執行,可是要複雜很多。技術棧PHP 在領域定位上屬於後端,而 Node.js 確不是那麼明確,雖然 Node.js 使用的語言是 Javascript,但是大多數人認為它屬於後端,不同的定位會導致技術棧差別很大。使用 PHP 開發時,程式設計師經常在不同語言之間切換,常見的搭配組合——LAMP,即Linux,Apache HTTP Server,MySQL 和 PHP。也就是說 PHP 開發者需要對上面這幾個技術棧有所涉獵。Node.js 開發則只需要精通 JavaScript,常見的搭配組合——MEAN,即MongoDB,Express.js,AngularJS 和 Node.js。其中,AngularJS 還可以是 React 或者 Vue,總之,需要對 JavaScript 有廣而深的理解。甚至有言論稱:Node.js 在網站方面相當於一個可程式設計的 Apache 伺服器。在資料庫方面,PHP 最常搭配 MySQL 這樣的傳統關係型資料庫,在業界的解決方案最為成熟。而 Node.js 的最佳合作伙伴是 NoSQL,在業界使用 Node + MongoDB 的解決方案最為常見。優劣得所每一項技術存在即是合理的,PHP 發展這麼多年,成熟度不言而喻,經歷過各大公司的廣泛採用,並且如今還有大量基於 Wordpress 的網站在執行,短時間不可能被歷史淘汰。不成熟的程式設計師是見異思遷的,只考慮技術問題。市場是理性的,考慮語言的生態,部署難易,解決方案成熟度,招聘成本等因素。在前後端分離的大背景下,選定一個方向對於新入行的程式設計師也是一種引導。要是選定了大前端,Node.js 是避不開的技術。真正讓 Node.js 成為一個龐大生態的,反而是 npm 的出現,可以說,Node.js 與 npm 是相互成就,二者要是各自發展,反而可能都是不溫不火的狀態。
在業務面前,技術或者語言只是工具,Node.js 也好,PHP 也罷,很多設計思想是統一的。當掌握了一門程式語言,會發現很容易觸類旁通,那時也不會糾結到底學習哪門技術了。
表面上看,nodejs更有前景,這只是表面上看,因為在實際的場景下,兩者不能放在一起比,沒有任何意義,就像面和米一樣,你能說哪個更有前景嗎?
我理解你的意思,就是哪個更好找工作,哪個工作需求比較大,對於這個問題很簡單,你到招聘網站看看就知道了,沒什麼好解釋的;關鍵是,如果你只掌握了其中之一,找工作都不好找,現在對開發人員的要求是懂的越多越好,特別是前端,即使只是做前端,如果你不懂後端,你找工作的面還是很窄的,你肯定不是一個好前端。
任何語言的存在都有它存在的意義,看待問題不要看它所謂的“先不先進”,“高不高階”,而是要看它存在的意義,這個搞明白了,你就知道如何選擇了。
給你的建議,如果時間允許,兩個都要學,都要熟練掌握,PHP在當下,應用的面還是非常廣的,而nodejs是現在非常流行的技術,也是必須要掌握的。
一句話,市場決定應用!