下一个高性能Web框架应该选择哪一个????

Phonenix(基于Erlang/Elixir语言的):Erlang虚拟机的并发、可靠性做得不错,并且它有20年的工业应用历史。JVM还没这么长呢


Python 3.5 + Tornado

Tornado的generator用来做异步IO编程挺不错的,但是当前4.3版本老是不更新,对HTTP/2的支持也不到位。


NodeJS+Express/Koa?

JavaScript的语法特性很灵活。可以结合ClojureScript/TypeScript/Coffe来写代码(不过要是ES6+以上版本我觉得就没有这个必要了)


Django

这玩意儿集成了ORM支持,所以比较重。而且显然不适合大规模并发。不过用来做企业内部IMS或者小型CMS倒是没什么问题。


Tomcat

8.0.17开始支持HTTP/2。老牌的Web服务器,不知道它对异步IO的支持怎么样?


Jetty

支持HTTP/2,相比Tomcat可嵌入性更好。不过Jetty居然是托管在Eclipse下,不大看好。


Apache httpd

2.4开始支持异步IO?但是这并没有什么用,需要PHP的配合吧?


OpenResty(Nginx+Lua)

继续观望


Haskell/Yesod

静态类型编程据说性能应该很好,但问题是FP不喜欢修改数据,这就意味着更多IO Copy开销?


Go

虽然goroutine可以轻松支持大规模并发,但是实际做一个业务仍然需要大量的编码量,可能没有Rails代码生成,或者MVC自动URL参数映射来得方便。


Netty

4.x据说支持HTTP/2。但是问题是这个支持只能支持呢?还是需要从HTTP/1.1协议协商升级(APN/NPN)?后者当然更灵活。HTTP/2的另外一个问题是TLS加密。证书的开销。(但是为了证书每年交一笔费用肯定不对头)


PHP/HHVM

对这玩意儿不敢兴趣。这语言适合大量码农在一块干活拼命写代码,但不适合一个人为兴趣做个网站什么的。(大部分PHP框架都是论坛或者CMS类的)


Scala/Play!

Scala语言仍然还是太庞大特性太多,所以现在只有一个Spark分布式内存计算比较热火一点。


Clojure

相对Scala,clj的语法特性比较小巧,而且它的4种引用类型的设计,相对Scala Akka来说,一点也不逊色。clj有限地支持TCO,不像Scala可以自动TCO,从这一点上说,Scala作者的编译器功底更厉害。clj据说已经被用于金融系统中,很好奇究竟是用于哪种业务,如果是quant数量交易,估计最好还是用C++吧?

你可能感兴趣的:(读书笔记)