【问题标题】:What are the use cases of Node.js vs Twisted?Node.js 与 Twisted 的用例是什么?
【发布时间】:2011-03-28 13:18:28
【问题描述】:

假设开发人员团队对在服务器端编写 Javascript 和使用 Python 和 Twisted 一样自如,那么 Node.js 什么时候会比 Twisted 更合适(反之亦然)?

【问题讨论】:

  • 截至 2013 年,其中两个框架的现状如何。似乎使用 Node.js 的人比使用 Twisted 的人多。如果我错了,请纠正我
  • 做出明智的决定并开始。 – 在你通过了几个问题之后,你会更清楚地知道要寻找什么来做出更好的决定。也许改变你的工具并重做它。

标签: javascript python twisted node.js


【解决方案1】:

截至 2012 年,Node.js 已被证明是一个快速、可扩展、成熟且广泛使用的平台。 Node.js 的创建者 Ryan Dahl 引用:

如今,大量初创公司和成熟公司都在使用 Node 世界各地,从 Voxer 和 Uber 到沃尔玛和微软。可以肯定地说 每天有数十亿的请求通过 Node。随着越来越多的人 来到项目中,可用的第三方模块和扩展越来越多 在质量上。尽管我曾经保留将其推荐给关键任务 应用程序,我现在衷心推荐 Node 用于最苛刻的服务器 系统。

更正式地说,Node 的优点可以归类为:

  • 很棒的社区: 可以说没有其他平台能在这么短的时间内获得如此大的社区号召力,它在 GitHub 拥有数百名贡献者和数千名观察者,并且是被雅虎等巨头使用! (曼哈顿项目)、e-bay、LinkedIn、Microsoft 和 Voxer。

  • NPM:虽然 Node 的核心相对较小,但有很多包可用于将其功能扩展到您可能考虑的任何东西!它全部自动化并且正在积极开发和扩展,想想 PyPI (pip)。

  • 可扩展性和速度: Node 的架构和单线程特性可实现高可扩展性和速度。特别是 0.8 版本之后,它的速度真的变快了(benchmarks),这一点可以被很多使用 Node.js 的大企业所证实。得益于当前的浏览器大战,它的 V8 核心也在不断完善。

  • JavaScript: Node (JS) 的核心语言更适合这种服务器端使用,特别是 lambda 函数、动态对象和简单的 JSON 序列化是 JS 的亮点,非常适合速度和可扩展性很重要的案例。 (Python 拥有所有这些,但这些在 JS 中确实更好、更强大)。

  • 部署:由于其广泛使用,许多非常好的网站都提供了用于轻松且强大的 Node 部署的工具,包括:Heroku、Joyent、Cloud9 等等。 p>

因此,Node 似乎更强大,未来更光明,所以如果使用它没有任何限制(如现有代码、服务器、团队能力),建议用于任何新的协作网络项目,目标是高速和可扩展性。

【讨论】:

  • 听起来你不知道 Twisted 的成熟程度。您强调的支持 Node 的点实际上都不是 Twisted 独有的(除了“JavaScript”点,它是列表中最脆弱的项目)!
  • @Jean-PaulCalderone 快速浏览一下右边的 tagstats 支持他的第一点:node.js × 11239 twisted × 1021
  • 如果您认为规模是衡量社区的唯一指标,那当然。
  • 大小不是唯一的指标,但它可能是最重要的。
  • 只是因为有更多关于它的问题,并不意味着它使用较少或社区较小。想想文档。
【解决方案2】:

Twisted 更加成熟——它已经存在了很长时间,并且有很多花里胡哨的东西,以至于让你头晕目眩(实施最奇特的协议,将反应堆与各种其他事件集成循环,等等)。

据说 Node.js 更快(我自己没有测量过)并且可能更易于使用(如果您不需要额外的花里胡哨)正是因为那些额外的东西不存在(有点像Python 世界中的 Tornado —— 再说一次,我从未测量过相对性能)。

所以,如果我需要 Twisted 的任何额外功能,或者想通过使用更成熟的包来感受更坚实的基础,我绝对会使用它。如果这些考虑不适用,但最高性能是项目的关键目标,那么我会在 Twisted 中编写一个简单的基准测试(但仍代表我的实际项目的至少一两个关键性能需求情况), Node.js、 Tornado,并在我决定总体采用哪种方式之前进行了大量仔细的测量。 Python 与服务器端 Javascript 的“额外功能”(第三方扩展和标准库)也更加丰富,如果项目需要任何此类额外功能,这可能是一个关键因素。

最后,如果这些问题对于特定的应用场景都不重要,让开发团队就三个候选者(Twisted、Node.js、Tornado)在简单性和熟悉度方面的相对简单性进行投票 - 他们中的任何一个都会可能还好,最好选择团队中大多数人最喜欢的!

【讨论】:

  • 很好的答案,+1 建议 OP 看看 Twisted(这可能更简单地满足他们的需求)。
  • 一个节点速度不太快的例子(特别是如果你使用 pypy)mrjoes.github.com/2011/12/15/sockjs-bench.html 还有其他或多或少可信的基准,但我认为如果你使用 PyPy,很多潜在的性能提升就会消失。
  • 截至 2012 年,Node.js 也相当成熟:P
  • node.js 没有的这些“花里胡哨”是什么?
猜你喜欢
  • 2011-02-25
  • 2011-12-28
  • 2017-08-04
  • 2016-10-04
  • 1970-01-01
  • 2013-08-06
  • 1970-01-01
  • 2012-09-18
  • 2019-08-06
相关资源
最近更新 更多