看一看Oracle持续地推动Java无处不在,从“物联网”到其它领域,这并不是简单的炒作。至少一组数字使 Java 成为服务器端 Web 框架的性能竞赛的佼佼者。但仅仅是性能上的优势就能赢得非Java开发者的青睐吗?
从2013年3月开始,软件开发公司TechEmpower对几十种Web应用服务器框架,诸如Ruby on Rails、Django,持续进行了一系列的性能基准测试。每一轮连续的测试都从社区的反馈之中受益匪浅,并已将测试代码开源发布到GitHub上。那些想拥有基准测试框架的人可以建立分支,加入自己的代码和测试,并提交测试结果。
当TechEmpower的第七轮基准测试在十月底尘埃落定时——进行了84个框架和大约200种不同的测试组合,揭示了许多全线表现最好的框架是基于Java的。尤其是四个框架脱颖而出:Gemini,Grizzly (支持方便使用Java的新I/O API),Undertow,和Vertx。
最引人注目的是,许多广为人知的框架,如Sinatra for Ruby,各种ASP.Net框架,以及前述的Django for Python,性能排名有时大大低于排名最高者。在此领域的新宠Node.js,确实有骄人的表现,但仍然只到最好框架性能的四分之一到三分之一。
Oracle一直极力鼓吹未来Java将成为对所有应用一刀切的解决方案——也许吧,但绝对可成为构建健壮Web服务的解决方案。Oracle计划在Java8中统一Java的各种版本,以使其更易于编写跨嵌入式设备和服务器的代码,如果ARM-in-the-server架构能够发展起来,更有可能会使二者彼此相似了。而最大的与Java相关的项目之一Avatar——一个为Java应用提供服务的JavaScript和HTML5服务层,你猜会与哪个框架一起工作呢?——Grizzly。
如果Grizzly和其它Java框架的确表现非常出色,是否意味着开发者应用丢弃当前框架转而用Java重写?大概不会这样。Oracle是想这样,然而开发人员选择一个框架是基于充分的理由而不只是单纯性能考量。易用性,发布时间,开发人员熟悉程度,以及第三方社区的参与度都是至关重要的。随便举个例子:CakePHP可能在TechEmpower比赛中表现不佳,还有CodeIgniter和Symfony也一样,但现有35%的Web应用是运行在PHP及其框架上的。
Java框架可能是拥有Oracle想吹嘘的单纯性能表现。但是,框架的其它内容至关重要:开发者基础、渗透力、忠诚度,以及更少的那种Oracle在背后窥视的感觉。
原文出自InfoWorld《Surprise! Java isfastest for server-side Web apps》。