⑴ Node.js 與 Python 作為後端服務的編程語言各有什麼優劣
Node.js > Python 的地方
快:這個快有兩方面,第一是引擎快,在V8引擎背後操刀的是Lars Bak大神,他創造過高性能SmallTalk引擎和Java Hotspot引擎(現在Java的默認VM),他帶領下的V8引擎讓Javascript速度達到了一個新的階段。第二是非同步執行,Node.js功能上是一個基於V8引擎的非同步網路和IO Library,和Python的Twisted很像,不同的是Node.js的event loop是很底層的深入在語言中的,可以想像成整個文件在執行的時候就在一個很大的event loop里。
npm:npm可以說是用起來最順手的package management了,npm作為Node.js的官方package management,匯集了整個社區最集中的資源。不像Python經歷過easy_install和pip,還有2to3的問題。
Windows支持:Node.js有微軟的加持,Windows基本被視為一等公民來支持,libuv已經可以很好的做到統一跨平台的API;而Python雖然也對Windows有官方的支持,但是總感覺是二等公民,時不時出些問題。
Python > Node.js 的地方
語言:就單純從語言的角度來說,Python寫起來要比Javascript舒服很多。Javascript設計本身有許多缺陷,畢竟當時設計的時候只是作為在瀏覽器中做一些簡單任務的script,所以代碼一旦龐大,維護還是有困難(不過Node.js的mole很大的改善了這個問題)。不過用Coffeescript可以很大的改善Javascript,幾乎可以和Python等同。
成熟:成熟包括語言本身已經成熟,還有Framework和ecosystem也很龐大。Node.js的絕大多數framework都很新,有的API一直在變,有的感覺已經不在維護,總之沒有一個像Django那種百足之蟲感覺的framework。Python的主流ORM SQLalchemy也很成熟。
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 與 Python 優劣勢分別有哪些
聲明:沒有一種絕對好的語言。
Node.js > Python 的地方
快:這個快有兩方面,第一是V8引擎快,在V8引擎背後操刀的是Lars Bak大神,他創造過高性能SmallTalk引擎和Java Hotspot引擎(現在Java的默認VM),他帶領下的V8引擎讓Javascript速度達到了一個新的階段。第二是非同步執行,Node.js功能上是一個基於V8引擎的非同步網路和IO Library,和Python的Twisted很像,不同的是Node.js的event loop是很底層的深入在語言中的,可以想像成整個文件在執行的時候就在一個很大的event loop里。
npm:npm可以說是用起來最順手的package management了,npm作為Node.js的官方package management,匯集了整個社區最集中的資源。不像Python經歷過easy_install和pip,還有2to3的問題。
Windows支持:Node.js有微軟的加持,Windows基本被視為一等公民來支持,libuv已經可以很好的做到統一跨平台的API;而Python雖然也對Windows有官方的支持,但是總感覺是二等公民,時不時出些問題。
Python > Node.js 的地方
語言:就單純從語言的角度來說,Python寫起來要比Javascript舒服很多。Javascript設計本身有許多缺陷,畢竟當時設計的時候只是作為在瀏覽器中做一些簡單任務的script,所以代碼一旦龐大,維護還是有困難(不過Node.js的mole很大的改善了這個問題)。不過用Coffeescript可以很大的改善Javascript,幾乎可以和Python等同。
成熟:成熟包括語言本身已經成熟,還有Framework和ecosystem也很龐大。Node.js的絕大多數framework都很新,有的API一直在變,有的感覺已經不在維護,總之沒有一個像Django那種百足之蟲感覺的framework。Python的主流ORM SQLalchemy也很成熟。
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實現更容易。這兩個應用場景還是有差別的。
⑶ python與NodeJS推薦學哪個
這個關鍵取決你自身的基礎條件和興趣方向。
Python是個比較成熟的跨平台的通用型腳本語言,回有非常完善龐答大的內置模塊和第三方擴展模塊。
Python幾乎什麼都能幹,但是自身性能較低。IT自動化運維,網路爬蟲,數據分析是優勢的領域
Node.js採用事件驅動、非同步編程,為網路服務而設計
"Node.js 是伺服器端的 JavaScript 運行環境,它具有無阻塞(non-blocking)和事件驅動(event-driven)等的特色,Node.js 採用 V8 引擎,同樣,Node.js 實現了類似 Apache 和 nginx 的web服務,讓你可以通過它來搭建基於 JavaScript 的 Web App。"
⑷ 2020年node.js、python、golang、java、c++,rust如何選擇
什麼方向,選什麼語言。
主流的就c++ Python java
寫底層,要效率的就c++
人工智慧就Python
網路開發就java
小程序就node.js
另外兩個太小眾。。
⑸ python和node.js哪個好,哪一個好學!
看你的需求了,如果你要做伺服器端腳本,偏向運維,建議python,如果是聊天室之類的開發建議nodejs。
如果解決了您的問題請採納!
如果未解決請繼續追問!
⑹ web自動化測試,使用node.js 與python哪個語言更合適
Node.js是現在WEBAPP快速開發的標配。python的WEB框架還有模板很多。這個取決於你習慣什麼方式開發。
如果熟悉 python使用node.js沒有壓力,可以完美融合。 如果對python不熟悉,node.js可以給你驚喜。
不過就我個人而言python很熟練,python給我的自由度與支撐力度遠遠大於node.js。 node.js是一些喜歡javascript的極客做的js的後台執行程序。 支持力度顯然遠遠比不上有10幾年WEB開發歷史的python。
node.js有一個最大的好處是前端與後端的融合比較好。都是JS開發的。有利於前端人員快速開發後台伺服器。
再加上node.js大量爆發的各種工具。所以node.js很有前途。 相對python的架構不溫不火。
從開發速度來看。兩者差不多。從系統維護性上。 python要好很多。
從最高性能上看,python也要好很多。 著名的某團隊聊天軟體就是node.js架構。
但是限於javascript語言本身的性能以及執行方式,支持力度。 後台開發還是不建議用node.js,除非你有足夠的理由 。比如快速開發,比如缺少足夠 的後台開發人員,或者是團隊成員整體偏前端等。
node.js真的很適合初學者。 特別是正在學習javascript人。 不過node.js想做好就不容易,特別是團隊規模超過10個人時,代碼很難維護。
v8引擎很強大,大多數測試結果顯示node.js比python性能高。這個感覺挺無語。 js在v8上的優化效果的的確確比python解釋器要強。這是事實。 不過python如果你用得很熟練的情況下,有很多技巧可以將這些差距縮小,以至於超過,完全沒有壓力。
比如我這邊做一個伺服器,通常性能要求很高的情況下,不會使用python做前端,而是使用java+cache做後台伺服器前端。 這樣性能就遠遠超過其它的WEB後端伺服器了。
python在後處理,批處理,數據處理,快速開發很強大。 WEB方面就當是玩具吧。 算是一種快速 開發的補償。 做做膠水,連接不同系統的介面還是可以的。
⑺ 股票交易系統用nodejs開發靠譜嗎
如果用nodejs,也只能做前端,後端要考慮性能的問題,基本上都是用C/C++。
⑻ 想自學後端,Nodejs 和 Python 哪個更值得一薦
1參數,來和 return語句都不是必須的自
2縮進需要注意
3局部變數函數內部使用的變數,不影響外部的變數,即使變數同名。
4全局變數就是在所以函數外部定義的變數。函數內部可以使用全局變數, 但要使用 global聲明。
⑼ node.js可以和python交互嗎
1. 把 Electron 當做純瀏覽器用,Python 端可以用 web.py 或者 flask 等做一個伺服器,使用 Ajax 在前端 JS 和 後端 Python 之間通信。專
2. 使用 Socket 跨進程屬通信: Python socket Low-level networking interface,Node.js net。
3. 使用父子進程的 stdin/stdout...Child Process
Electron 的 Renderer 端默認情況下融合了 NodeJS 環境,也就是可以直接在頁面裡面使用 net 模塊創建 Socket,相比之下 2 應該是最優解。
⑽ Python和nodeJS哪個更適合做爬蟲
我覺得第二個更適合做爬蟲