假设一组开发人员同样习惯于在服务器端编写Javascript,就像使用Python&扭曲,什么时候Node.js比Twisted更合适(反之亦然)?
答案 0 :(得分:77)
扭曲更加成熟 - 它已经存在了很长很长时间,并且有很多花里胡哨的东西让你头晕目眩(实施最高级的协议,将反应堆与各种其他事件集成在一起)循环,等等。)
据说Node.js更快(我自己没有测量过),也许可能更简单(如果你不需要额外的花里胡哨),因为那些额外的东西不存在(有点像Python世界中的龙卷风 - 再次,我从未测量过相对表现。)
所以,如果我需要任何额外的功能,或者想要通过使用更成熟的软件包来更加坚实,我绝对会使用Twisted。如果这些考虑因素不适用,但最佳性能是项目的关键目标,那么我将在Twisted中编写一个简单的基准测试(但仍然代表我的实际项目中至少有一两个关键的性能需求情况) Node.js,和 Tornado,在我决定采用哪种方式之前做了很多仔细的测量。 Python与服务器端Javascript的“额外功能”(第三方扩展和标准库)也更加丰富,如果项目需要任何此类附加功能,这可能是一个关键因素。
最后,如果这些问题都不适用于特定的应用场景,请让开发团队在简单性和熟悉性方面对三个候选人(Twisted,Node.js,Tornado)的相对简单性进行投票 - 其中任何一个都将可能会很好,不妨选择团队中最舒服的大部分内容!
答案 1 :(得分:7)
截至2012年,Node.js已被证明是一个快速,可扩展,成熟且广泛使用的平台。 Node.js的创建者Ryan Dahl引用:
目前,Node正在被大量初创公司和老牌公司使用 世界各地,从Voxer和Uber到沃尔玛和微软。这样说是安全的 每天有数十亿的请求通过Node传递。随着越来越多的人 来到项目,可用的第三方模块和扩展增长和增加 质量。虽然我曾经保留过关于推荐任务关键的建议 应用程序,我现在衷心推荐Node甚至是最苛刻的服务器 系统
更正式地说,Node的优点可归类为:
伟大的社区:可以说没有其他平台在如此短的时间内获得了这样的社区吸引力,它在GitHub中拥有数百名贡献者和数千名观众,并且正被雅虎等巨头使用(曼哈顿项目),e-bay,LinkedIn,微软和Voxer。
NPM 虽然拥有相对较小的核心,但Node有 lot 的软件包可用于将其功能扩展到您可能考虑的任何内容!它全部自动化,正在积极开发和扩展,想想PyPI(pip)。
可扩展性和速度:Node的架构和单线程特性允许高可扩展性和速度。特别是在0.8发布之后,它的速度变得非常快(benchmarks),这可以通过许多使用Node的大型企业来确认。由于当前的浏览器大战,它的V8核心也在不断变得更好。
JavaScript: Node(JS)的核心语言更适合这种服务器端用法,特别是lambda函数,动态对象和简单的JSON序列化是JS亮点,非常适合速度和可扩展性的案例很重要。 (Python拥有所有这些,但这些在JS中真的更好,更强大。)
部署:由于其广泛使用,许多非常好的网站提供了简单而强大的Node部署工具,包括:Heroku,Joyent,Cloud9等等。
因此,Node似乎功能更强大,未来更轻松,所以如果没有任何约束条件(如现有代码,服务器,团队功能),建议任何新的协作网络项目都要高速运行可扩展性。