cof*_*der 77 javascript python comparison tornado node.js
除了node.js是用JS和Tornado用Python编写的,这两者之间有什么区别?它们都是非阻塞的异步Web服务器,对吧?除了语言之外,为什么选择其中一个?
Mik*_*bov 96
node.js的主要优点是它的所有库都是异步的,所以你不必担心阻塞.有mysql,postgres,redis等的异步库.默认情况下,所有都是异步的.
Python有一个适用于任何东西的库 - 但是大多数这些库都不是异步的.为了利用龙卷风(而不是阻止这个过程),必须使用特殊的库(例如,你不能只是'pip install redis'并使用它,你需要像brukva这样的东西),而且要少得多龙卷风库比node.js库.例如,目前没有可用的异步mysql龙卷风驱动程序(或者至少我不知道它).
但是你仍然可以使用龙卷风的许多python库(那些不做i/o的龙卷风),龙卷风社区正在筹集并填补空白.
根据我的经验,使用node.js编写应用程序比使用龙卷风更容易.我个人从node.js切换到龙卷风,因为它更适合我的python项目的现有基础设施(服务html页面的django站点和提供实时功能的龙卷风服务器之间的集成非常轻松).
Mor*_*sen 13
正如Rich Bradshaw所指出的,Node.js是用JS编写的,这意味着你可以将前端和后端保持为相同的语言,并可能共享一些代码库.对我来说这是Node.js的巨大潜在好处.Node似乎也提供了更多的异步库.
V8应该使JS比Python更快,至少这是基准测试所表明的,但它可能并不重要,因为Node.js和Tornado(以及大多数其他Web框架)都使用本机库的包装器.很多Python标准库都是用C语言编写的,或者可以用更快的替代方案替代,这样可以进一步减少潜在的差异.
Web服务通常受I/O限制,因此这意味着我们花时间等待数据存储而不处理数据.这使得JS和Python之间的合成速度差异在许多应用程序中无关紧要.
Ric*_*haw 10
node.js使用V8编译成汇编代码,龙卷风还没有这样做.
除此之外(实际上似乎并没有对速度产生太大影响),它就是生态系统.您更喜欢JS的事件模型,还是Python的工作方式?你是否更喜欢使用Python或JS库?
| 归档时间: |
|
| 查看次数: |
28235 次 |
| 最近记录: |