Node.js 与 Python 作为后端服务的编程语言各有什么优劣

 我来答
我本为佳人
2017-09-19 · TA获得超过333个赞
知道小有建树答主
回答量:402
采纳率:0%
帮助的人:353万
展开全部
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实现更容易。这两个应用场景还是有差别的。
匿名用户
2017-09-19
展开全部
Node.js相优于Python的地方:快:这个快有两方面,第一是V8引擎快,第二是异步执行,Node.js功能上是一个基于V8引擎的异步网络和IOLibrary,和Python的Twisted很像,不同的是Node.js的eventloop是很底层的深入在语言中的,可以想象成整个文
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式