从官网的更新和github上的维护来看,他自己是没有放弃的,所以如果一定要说凉,应该是用的人太少了,被凉凉。
如果只是做web开发,从开发方便程度以及生态(就算考虑性能),tornado也不是最好的技术选型,就像别人说的,他为什么没那么受欢迎。
如果选择tornado,可能有这么几个可能(以我为例):
1 我希望了解异步相关的用法和生态。
这点的话,还不是非他不可,python的异步web框架并不是没有别的选型(比django和flask更小众吧,而且官方维护相对而言较差,目前较少人用过生产环境,比如vibora,直接说准备重构,停了一年了)
2 我想了解一些过程(http协议和数据库连接相关)
django我也会用(orm表设计那一套),但是我对他的感觉就是:他适合快速完成工作,而不是学习。大概是他封装的太好了,所以很多东西我们并不知道是如何完成的,只需要知道如何调用api就成了。这一点在tornado中就,做得少一点,很多东西我们需要自己去完成。所以如果赶工期的任务,我想tornado同样不是最优的选择。而且对于一个已经在学习原理这条路上走得比较前的人,他已经不需要这么一个使用tornado的过程来学习了。所以django这类的,就很方便,生活工作两不误。
3 可能发生的tcp服务
tornado不仅仅是web服务器,也可以用于开发tcp服务。这算是一个很难被另外两个框架替代的。但是呢,如果题主限于web后端,那么tcp服务程序的开发是很少的。所以选择它更像是希望学习一个框架有更大的兼容性(避免去学习多个框架)
除此之外,就我而言我找不到很明显的,我选择tornado的原因。
有几点自己曾经关注但后面有点放弃的。
1 tornado的并发
他没有线程切换的开销,这是他异步协程的特点。但是他的qps什么的并没有表现得很离谱(纯python实现的,可以理解),所以他适用的场景是异步任务,比如后端接口调用。但是如果是常规的web开发(curd这类),它的性能表现并没有好到让大家放弃django这类框架的便捷程度,同时,如果为了好的性能,很多都用go了(这不是框架本身差,而是语言速度本身慢,我相信用同样的设计原理,用go语言实现tornado肯定也不会差)。
tornado适合保持连接类的tcp服务,比如一些推送。
2 pypy加速tornado
就我而言我很少用pypy加速。因为用python就是为了他的生态,而他的生态里面,很大个限制就是cpython。用pypy的话,除非你能抽象分离,tornado部分做成类似于调用后台任务的中间层。但实际效果?我很怀疑
所以,你问他有用武之地么,结论就是:
看你用在什么方面,以什么目的去用。