-
1 # 夢良同學
-
2 # 驚蟄ins
看你的需求了,如果你要做伺服器端指令碼,偏向運維,建議python,如果是聊天室之類的開發建議nodejs。
-
3 # IT老兵666
NodeJS是隨著網際網路興起而誕生的一個為了解決高併發問題,支援非同步IO的模式,在一些大廠和初創公司有比較廣的應用,反觀python,在服務端的地位一直是不溫不火,一直在學術研究,科研領域有著比較廣泛的應用,在一些公司的內部的運維工具都是採用python進行的開發。
-
4 # 真IT小叮噹
理由如下:
1.兩者均能實現服務端的需求,不分伯仲。就像我們買車一樣,買車的目的是為了出行,python和nodejs就像是路虎和大眾,兩者都是汽車,到底誰的地位高?主要還是看車主你的喜好了。同樣,喜歡用python的人就會認為python地位高,擅長nodejs的人就會認為nodejs的地位高。但實際情況上時,截止目前兩者均在服務端發揮著重要作用,並沒有出現一個像汽車一個像腳踏車這樣的明顯可比狀態。
2.Node.js相比Python有以下優點。
快,nodejs比python快在了V8引擎和非同步執行。Node.js基於V8引擎和非同步網路和IOLibrary,和Python的Twisted很像,不同的是Node.js的eventloop是在很底層的,我們都知道越接近底層效率越高。
另外npm作為Node.js的官方packagemanagement,彙集了整個社群最集中的資源;而Python卻是easy_install和pip,還有python2和python3程式碼不通用的問題;
Windows支援:Node.js有微軟的支援,在Windows上較穩定。libuv已經可以很好的相容跨平臺,Python雖然也對Windows有官方的支援,但總時不時出些問題,例如在win10上的一些安裝包問題。
3.Python也有優於Node.js的地方:
語言本身,就單從語言本身的角度來說,Python寫起來要比Javascript簡潔省事的多。
另外Javascript有許多缺陷,因為當時設計的時候只是作為在瀏覽器中做一些簡單任務的指令碼,所以程式碼一旦龐大,維護起來相對困難。
python的框架比較穩定。Node.js的絕大多數框架都很新,有的還一直在變,沒有一個像python中Django那種給人安全感覺的框架。
4. Python和Node.js各有側重,難分高下。
Node.js使用CPS實現非同步,和瀏覽器中的Javascript很像。熟悉瀏覽器Javascript的人能很快上手,學習難度也不大。但是邏輯較為複雜,很難維護。
Python的非同步有和Node.js很像的Twisted和另一種機制coroutine,coroutine讓非同步程式碼維護起來更容易,但是較難上手。
5.Python和Node.js各有擅長解決的問題。
python擅長解決CRUD的app,而Node.js卻不行,因為絕大多數Node.js都是直接裸在外面的,而且不能放在Nginx後面,因為那將導致websocket不可用,另外node.js程式碼的不好維護才是真正的硬傷。而Python的WSGI卻很適合解決這類問題。
Nodejs偏向於解決實時問題。當想要搭建一個多人線上聊天室時,Node.js比python更加容易實現。
綜上來看,從客觀角度分析,就大陸而言python和nodejs在服務端的地位是不相上下的。
當然,如果非要分個高低的話,還是那個問題,都是汽車,效能相差都不大,至於汽車的牌子,看你個人的愛好了~
-
5 # c_b_g895
python和nodejs要看使用領域,沒有可比性;比如科學計算python比較好,在web端nodejs比較好
-
6 # 小貝的STEAM教室
至於地位,還真沒法比。為什麼這麼說?
Python 和 Node.js 很難分高下的地方:
非同步Style:Node.js的非同步Style是CPS,也就是層層callback,基於event,和瀏覽器中的Javascript很像。CPS好處是讓熟悉瀏覽器Javascript的人能很快上手,學習難度也不大。缺點是邏輯一複雜,就變得很難維護,基本上需要透過async.js這種library,或者用promise。
Python的非同步除了和Node.js很像的Twisted之外,也有基於coroutine的gevent,coroutine讓非同步程式碼維護起來更容易,不過學習曲線陡。
應用場景:如果是一個CRUD的app,那麼想都不想直接是Python,Node.js本身不擅長CRUD的app(絕大多數Node.js都是直接裸在外面的,而不是有一個Nginx在前面,否則websocket就不能用了,不過新版nginx開始支援websocket),程式碼又不好維護。
而Python的WSGI很適合,成熟的stack也有很多。如果更偏向於real-time,比如一個chat room,那麼Node.js實現更容易。這兩個應用場景還是有差別的。
如果要考慮到應用方面,我想說node.js的應用面比較窄,主要用於web後臺,python是萬金油,啥都能幹。看主要做什麼:
要是做伺服器端指令碼,偏向運維,建議python;如果是聊天室之類的開發建議nodejs.
回覆列表
nodeJS開發除錯過程中用的比較多,多用於前後端分離,但是生產環境真正做伺服器的還沒見過,不清楚實際環境用的多不多