寫後端 Python,nodejs和php哪個更好一些?


沒有最好,只有更好,熟悉哪個就用哪個。

目前web開發新趨勢:微服務化,後台用自己最熟悉的編程語言實現RESTFUL API。

前端Javascript 框架調用API ,html5 展示數據。


如果真的有一門語言每個方面都不如其他語言,它肯定已經被淘汰了


Node.js 偏前端,甚至很多社區將其並為前端開發的一種技術。要知道,後端開發可不是簡單做幾個介面,查查資料庫,返回幾個 JSON 這麼簡單。很多大型系統的後端都需要十分健壯,能夠處理複雜的業務,或者執行特定的演算法,而這些 Node.js 或者 Python 都做不到,就算做到了調試也累死你。所以你會看到很多大型網站或服務都使用 C++ 或者 Java 來編寫後端。

Node.js 註定不是計算密集型項目的菜,其實它的角色應該是瀏覽器端與後端之間的媒介或者說橋樑,簡化前端請求的邏輯,將複雜業務通過消息隊列或者其他方式轉交給真正的後端去處理,它只負責一些 I/O 密集的工作。

至於 Python,個人了解不多,但腳本語言寫後端,項目規模肯定大不了哪去。

PHP 沒用過。


如果你需要後端渲染HTML,需要後端支持熱部署,需要後端內置大量Web開發庫函數,那就用PHP.因為Python和Node都不支持熱部署,都需要手動或自動重啟服務進程才能使代碼更新生效,而且其語言自帶的庫函數並不如PHP豐富,而且Python和Node默認沒有模板引擎的功能,PHP則天生就支持嵌入到HTML中的模板功能.就算你需要後端只寫介面,PHP同樣適用,區別在於PHP不再輸出HTML而是輸出JSON罷了,PHP中用內置的json_encode就能輕鬆把PHP數組(資料庫查詢結果)編碼為JSON.

性能方面 Nginx+PHP7-FPM 的組合足夠,PHP-FPM容器在底層用C實現了一套多進程架構,利用多核應對並發不是問題.而且PHP-FPM還有進程池機制,運維和開發人員可以把存在嚴重IO阻塞操作的腳本請求放到一個單獨的動態進程池中處理,避免阻塞到其他進程池,也就是說,PHP-FPM能在腳本級別的粗粒度上分離IO阻塞.

基於PHP7+Swoole,可以用PHP進行高性能網路編程.

比如開發即時通訊軟體,開發消息推送服務,以及開發傳統的HTTP服務.

因為Swoole內置了HTTP/WebSocket/MQTT/TCP/UDP等協議的非同步編程支持.

PHP有了Swoole,根本不用羨慕OpenResty(Nginx+Lua)和Node.js(libuv+V8).

因為PHP本就不比Lua和JS差,而且Swoole非同步的澎湃動力也不遜色於Nginx和libuv.

而對於機器學習(ml)和人工神經網路(fann)方面,PHP也有相關支持:

https://github.com/php-ai/php-ml
https://github.com/bukka/php-fann


會php的程序員很多,好招人

技術不是瓶頸,因為99%的公司和項目在技術成為瓶頸之前都死了


這種釣魚貼我才不會上當

(哼


用python寫過web,用go寫過api(部署起來真是簡單),現在想學node……這個問題看需求,個人寫著玩,哪個寫著爽用哪個;如果是產品級應用,每個公司應該都有自己的技術棧吧,什麼,你就是選技術棧的那個人,先膜拜下,然後……那還不是你熟悉哪個用哪個!


初學的話建議用node吧,主要是以下幾個原因:

1、環境部署簡單。初學web後端調試的時候node算是三者中安裝、配置、啟動最為簡單的,方便入門

2、學習的性價比較高。當你想做前端的時候不用再學一遍js(畢竟js中的坑比較多)

3、容易出結果。如果做半天沒有結果出來是很容易放棄的

——————————

為什麼是初學?因為非初學不會提這樣的問題

為什麼是web?因為有php這個選項


既然有更好了,另外兩個還有存在的價值嗎?


越來越感覺到PHP比較好

TIOBE - The Software Quality Company


推薦閱讀:

IP地址為什要分類?就是a類,b類,c類。。。?
對於網路「故意錯別字」現象有什麼看法?
HTTP/2正式發布可能會使WEB開發領域產生哪些趨勢?
在網路條件下,議程設置會失效嗎?為什麼?
子網掩碼怎麼理解?

TAG:Python | PHP | Nodejs | 計算機網路 |