Node js 與 Python 作為後端服務的程式語言各有什麼優劣?

時間 2021-05-31 03:30:43

1樓:「已登出」

當你用這兩個語言以及其技術棧、生態等去比較效能時。

你應該用Spring,.NET Core等開發。

不論是從效能以及健壯性來說,都會好很多,不過如果個人開發後端的話,殺雞焉用宰牛刀?Node和Python足夠,並且會縮短開發周期。

2樓:xxxx

nodejs效能會高一些,但是沒高太多。python的效能跟部署和使用者的經驗有關。

nodejs不好維護,弱型別,據說最新版有強型別了。沒用過,但是感覺不太可能。這種東西應該不好改,這是語言特性啊。

另外,django也挺爛的。用他來跟nodejs比較沒意義。

nodejs是C++的方案,一般放出來的都是二進位製包,自己編譯非常難受,

對於經常在AIX之類小型機、大型機上跑程式的人來說,這玩意就是給自己找罪受。

能隨手就可以編譯出來的程式才是靠譜的程式。

因為nodejs的非同步庫在這些平台上沒有解決方案。

解決方案上,python要多太多了。nodejs能做的事情太少。

另外python有多種開發方式,nodejs只有一種非同步模式。

python本身就比js強大太多。js本身就是一種很弱的東西。其實js既不適合後端,也不適合前端。

這也是為什麼大家都實在受不了了,才發明了那麼多coffescript,dart等等一堆東西,因為js確實太爛了

3樓:雲天明

上面有人說了nodejs很重要的乙個坑就是無法控制併發量而過載但是,作為乙個server,如果你用nodejs過載,那麼基本是因為需求太多,你用別的照樣過載。

感覺過載這個坑在普通的指令碼上更坑一些啊。

另外伺服器函式很多時候可以用setTimeout自己來控制併發的,我在cli程式上的經驗是使用process.beforeExit,這個在server上不合適

另外,es6語言挺好的,不要再黑js了好麼,python寫個fp試試?js這麼優雅靈活的語言對吧,你只要放棄oop和強型別的執念就會發現js是多麼的有趣了

嗯,我也同意go是個好語言

4樓:PeytonCai

Python的gevent帶來的非阻塞IO和coroutine同步方式封裝非同步,足以完爆Twisted;

Nodejs的特性也就是非阻塞IO和更快語言直譯器,但是基於事件程式設計模式更合適對使用者響應方式的前端,不太合適大部分是RPC或迴圈方式的服務端邏輯;

現在分布式和SMP架構下 gevent多程序+coroutine+簡潔的語言特性+容易C/C++效能擴充套件絕對是理想選擇。

5樓:沈嶸

前面SUN Rouyu的回答已經很全面了。補充一句,npm和commomjs的require已經超越了乙個簡單的包管理工具,已經發展成為一種系統架構形式。

另外,我用CoffeeScript寫Node.js,可以享受兩個世界的好處。

Python雖然也有非同步庫,但是由於非同步不是它的DNA,因此不同框架和庫的實現是很不一致的。這點對Node.js來說,其非同步模式已經成為99%的Modules首先要遵守的規範,這個一致性是乙個健壯的後台程式所必須的。

6樓:尤雨溪

@SUN Ruoyu 針對說Node不擅長CRUD這一點稍微說兩句

CRUD應用和平台本身沒多大關係,更多是看上層的開源庫。express + (mongo + mongoose) || (node-mysql + sequelize) 開發CRUD也快得很,更關鍵的是Node本身非同步的資料庫I/O效能上比Python真的高很多。

有人說Node缺少「成熟」的大框架,其實這和Node社群的開發思想有關,幾個領頭的開發者都推崇「寫做好一件事的小程式,然後把它們串起來」的Unix哲學,加上npm對於包之間互相依賴處理得很好,所以靈活性其實是Node的賣點之一。在我個人看來,Node並不需要像rails/django這樣「大而全"的web框架。

7樓:

Python的作用畢竟大於Node.js前幾天看過Node.js,感覺寫起來雖然是JS的語法,可是沒有了寫JS的感覺,不過Node.

js還是比較強大的,不過Python更勝一籌,不僅僅是web端,應用端也不少,EVE Online不就是用Python寫的麼~~

8樓:

nodejs使用了libuv這個庫來實現非同步IOpython是個語言。 你可以自由使用select,poll , epoll 等非同步io方式,當然也可以使用libuv(如pyuv)

如果很熟悉js的話 nodejs更容易上手些python語法簡單,本身就容易上手

其實拿python和nodejs比還是稍不公平,python後面其實還是跟了一大堆框架的

對了python的tornado也是非阻塞的

9樓:呂坤

Node.js 的框架express 難度應該與 Python的框架 Django,Tornado,Flask等等差不多。已經熟悉了js,不如還是從Node.js入手。

nginx與Node js的優缺點是什麼?

已登出 ngx相對node有這麼幾個較大的優點 1.效能更高,畢竟C寫的,而且ngx的epoll是裸的,node的epoll是libuv封裝的。2.完備的靜態資源支援 這個就不說了,你用node寫乙個和ngx工作完全一致的靜態資源庫試試 當然npm上有現成的庫,但是ngx比那個庫做得還要好,而且ng...

請問grasshopper與Python的結合能做建築的自生成嗎?像是這樣的平面形式?

木木木 建築自生成,把筆全部交給電腦?如果你把計算機看成是一種輔助是可以的,Python能處理的事情是在功能類資料上,更加整體更加全面的將資料權重,選擇權還是抓在自己手上好。其實grasshopper本身也可以完成。 Sheldon.HE 有兩個思路,第乙個是機器學習,可以用gh裡的owl.lear...

python之中特性(attribute)與屬性(property)有什麼區別?

粒粒羅 在Mark Lutz的書 Learning Python 4th Edition裡對attribute是這麼解釋的 An attribute is simply a variable name that is attached to a specific object like a modu...