當前位置:編程學習大全網 - 編程語言 - ...與 Python 作為後端服務的編程語言各有什麽優劣?

...與 Python 作為後端服務的編程語言各有什麽優劣?

Node.js相優於Python的地方:

快:這個快有兩方面,第壹是V8引擎快,第二是異步執行,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的

module很大的改善了這個問題),不過用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實現更容易。這兩個應用場景還是有差別的。

來源於知乎:/question/20961574

  • 上一篇:英文名字怎麽起 我起的是叫joy。我本人姓冉 象我的用戶名那樣好嗎?
  • 下一篇:我需要需要自我介紹的範文,各位幫幫忙哈!我只需要範文,不要教我這麽寫哈!
  • copyright 2024編程學習大全網