什么是Node.js与扭曲的用例?
假设一组开发人员在使用Python和Twisted编写服务器端Javascript时也同样舒适,那么Node.js什么时候比Twisted更合适呢(反之亦然)呢?
扭曲更成熟 – 它已经存在了很长很长一段时间,并且有如此多的花里胡哨的东西让你的头脑旋转(实现最好的协议,反应堆与各种其他事件循环的整合,以及等等)。
据说Node.js更快(我自己没有测量过),也许使用起来更简单(如果你不需要额外的花里胡哨的话),因为那些额外的东西不在那里(类似于Tornado Python的世界 – 再次,我从来没有衡量相对的performance)。
所以,如果我需要任何额外的function,或者希望通过使用更成熟的软件包感觉更坚实,我绝对会使用Twisted。 如果这些考虑不适用,但是最高性能是项目的关键目标,那么我会在Twisted中编写一个简单的基准(但仍然代表我的实际项目中至less有一两个关键性能需求的情况) Node.js 和 Tornado,并且在我决定总体走向哪个方面之前做了很多仔细的测量。 Python和服务器端JavaScript的“额外function”(第三方扩展和标准库)也更加丰富,如果项目需要这样的附加function,这可能是一个关键因素。
最后,如果这些问题在特定的应用场景中都不重要,那么开发团队就简单性和熟悉性就三个候选者(Twisted,Node.js,Tornado)进行相对简单的投票 – 其中任何一个都可能只是不错,不妨挑选大部分最适合的球队!
截至2012年,Node.js已经被certificate是一个快速,可扩展,成熟和广泛使用的平台。 Node.js的创造者Ryan Dahl引用:
如今,Node正在被世界各地的大量初创公司和公司所使用,从Voxer和Uber到Walmart和Microsoft。 可以肯定地说,数十亿的请求每天都通过节点。 随着越来越多的人来到这个项目,可用的第三方模块和扩展的质量越来越高。 尽pipe我曾经保留过关于推荐任务关键型应用程序的build议,但我现在衷心推荐Node来满足要求最苛刻的服务器系统。
更正式地说,Node的优点可以分为:
-
伟大的社区:可以说,没有其他平台在如此短的时间内获得这样的社区吸引力,在GitHub中有数百名贡献者和数千名观察者,并正在被像Yahoo!这样的巨头使用。 (曼哈顿项目),电子海湾,LinkedIn,微软和Voxer。
-
NPM: Node虽然有一个相对较小的核心,但有很多可用的软件包可以将其function扩展到任何您可能考虑的事情上! 它的全部自动化和正在开发和积极扩展,想起PyPI(pip)。
-
可扩展性和速度: Node的架构和单线程特性允许高可扩展性和速度。 特别是在0.8版本之后,其速度变得非常快( 基准testing ),这可以被很多使用Node的大型企业所证实。 由于目前的浏览器战争,V8的核心也在不断变得更好。
-
JavaScript: Node(JS)的核心语言更适合于这样的服务器端用法,特别是lambda函数,dynamic对象和简单的JSON序列化是JS的亮点,它们非常适合速度和可伸缩性的情况。 (Python拥有所有这些,但是这些在JS中更好,更强大)。
-
部署:由于其广泛的用途,许多非常好的网站提供了简单而强大的Node部署工具,包括:Heroku,Joyent,Cloud9等等。
因此,Node看起来更强大,前景更光明,如果没有任何限制(如现有的代码,服务器,团队能力),build议任何新的协作networking项目的高速度和可扩展性。