为什么 Node.js 这么火,而同样异步模式 Python 框架 Twisted 却十几年一直不温

问题补充:twisted是一个强大的异步网络框架,应用的面也非常广,但是没有这几年才出现的Node.js火,社区、文档也是很少可怜我觉得二者其实在本质上差不多,而且python使用起来还是比较容易一些的

提问者:邱成锋2017-04-05 21:36:26

查看全部 6 个回答

田磊

2017-04-05 21:39:04

0 0

作为使用Twisted基础开发物联网的工程师,说说自己的经历。

1) 一开始很喜欢Twisted,因为啥都有,不只是Web,包括IoT的MQTT,CoAP,Raw TCP/UDP,TLS,都可以。
2) 异步->yield->生成器->装饰器->面向切面....搞清楚所有概念才会编程不出错。我觉得Twisted完全颠覆了我对于Python简单直接的理解。最要命的调试很复杂,而且没有中国社群,只有去Stackoverflow,时差,问书的作者没人理。
3)用惯了,习惯了......
4)发现CPython的性能瓶颈,必须要上pypy,但是pypy支持一些非纯粹Python代码有问题。
5)发现gevent或许不错,同Flask+gvent也可以。
6)继而发现Golang不错,或许可以用作IoT接入端。

所以,现在是Twisted + Cyclone + MQTT + txThings + CustomTCPProtocol全套。性能不够的话,会把IoT前端以pypy + twisted加速,以及并最终推到golang前端。没有node.js什么事情。web端需要平衡Cylone + pypy,或者flask+gevent之间的表现。

不过如果在PaaS平台,node.js得到的支持真的比异步Python 要好!

赞成功