Gartner 有关 Java EE 正在消亡的报告是否太言过其实了?

  • Victor Grazi
  • 谢丽

2017 年 1 月 5 日

话题:Java语言 & 开发架构

Gartner 发布了一份分析报告“应用程序平台市场指南”。在应用程序平台市场的“明显转变”部分,该报告指出,Java EE 的“收入下滑”。这份报告迅速被 Java EE 的主要竞争对手Pivotal 拿来发布在自己的网站上

根据 Garnter 的报告:

数字业务方案需要应用程序平台提供新的特性和功能,而 Java EE 已经跟不上发展的步伐了。

负责应用程序基础设施现代化的应用程序负责人应该制定一种新的策略,以应对 Java EE 的衰退。

到 2019 年,在所有新增的业务应用程序中,部署在 Java EE 应用程序服务器中的将不足 35%。

这份报告出自 Ann Thomas 和 Aashish Gupta 之手。Thomas 是一位著名的 Gartner 分析师,从 1988 年开始一直从事学术研究及成果发表,而 Gupta 在 2011 年参加工作之初就是一名研究人员。这份报告排除了技术存在互补性的常见部署场景。

不出所料,这份报告在某些方面备受争议。前 Oracle Java EE 传教士 Reza Rahman 现在是Java EE Guardians的负责人,他告诉 InfoQ:

很容易理解,这不是一份技术报告,而且,它似乎也不承认这样一个现实,那就是,如果有什么脱离了传统的三层模型和框架,那么它经常也是和 Java EE 共存于应用程序技术栈。

作家、技术专家兼咨询顾问 Kito Mann 做了进一步的说明:

Java EE 并不是一个不可分割的单一整体;它是一个标准集,你可以选取你想使用的部分。即使是 Pivotal 的 Spring Boot 也是建立在一些核心的 Java EE 规范基础上,如 Servlet、JPA 和 Bean Validation。

据 Rahman 介绍,数据驱动的 Gartner 报告与当时行业自主的调查报告相矛盾:

这大体上是一份“数据驱动”的报告,只是没有清楚地说明数据的质量、来源和数量。

所幸,我们确实有公开的数据可以反驳这份报告,我们对数据来源、质量和数量的了解更多一些。我们在 Java EE Guardians 的网站上策划了多项调查

这里还有一项知名度较低但时间更近的调查,该调查列举了数据源,但没有说明数据量。

流行软件 JRebel 和 XRebel 的制造商 ZeroTurnaround 独立开展了自己的年度行业调查,他们的调查结果与 Java EE Guardian 的结论一致。

Rahman用一张图表汇总了结果,分版本说明了 Java EE 的增长。

Java Community Process 成员、作家兼终身企业技术专家 Josh Juneau 告诉 InfoQ:

我粗略地看了这份报告,并特别留意了说“Java EE 衰退”的部分。显然,这份报告主要是面向这个市场中新来乍到的管理和开发团队;那些人对 Java EE 或者所有那些构建和部署企业级应用程序的可用选项不熟悉。该报告描绘了 Java EE 已过时的画面,但我认为,大部分社区成员和企业客户都会说,情况不是这样。

虽然在最近几个月 / 年里,构建企业级应用程序所采取的开发策略有一个明显的变化,但标准的 Java EE 应用程序在这个市场中仍然占有一席之地……而且,在将来许多年都是如此。也就是说,针对最新的发展趋势,通过不断地发布新的标准,Java EE 会在这个市场中继续发挥作用。由于在整个 2016 年 Oracle 都非常的安静,Java EE 的下一个版本存在不确定性(仍然存在)。不过,在 2017 年,Oracle 将和社区一起推动 Java EE 的发展,并将继续为这个平台带来新的标准。如果你看下 JSR 邮件列表,就会发现,有关那些计划在 Java EE 8 中发布的规范的活动开始增加。

微服务和云的迅速发展也不可忽视。不过,那是两个领域,可能不会跟每个企业客户都有关系,会有许多客户永远不会将应用程序部署到云环境,而只是需要保留对企业应用程序的完全控制权。对于这些客户而言,当前的 Java EE 应用程序服务器方法最合适不过了。

使用应用程序服务器策略开发基于服务的应用程序也是可能的。微服务的“胖 JAR”部署并不适合所有的人……在许多情况下都不适用。在开发任何企业级应用程序之前,都需要思考一下……为手头的任务选择最好的工具和策略。企业客户不应该仅仅因为云是一个趋势就选择微服务或者转向云,但那份报告反驳了这一观点。

最后,Java EE 本来就不是一个为市场带来新技术和新策略的突破性、革命性平台。它是一个始终如一的标准环境,稳定、有效、可靠。Java EE 基于已证实的标准,而微服务还没有达到一个可以标准化的点;这项开发技术还在发展之中。

但 Juneau 提醒说:

我认为,当 Java EE 8 发布的时候,它将为采用更为标准的方法构建微服务和云部署铺平道路。如果 Java EE 9 仍然可以按照预计发布时间发布,那么我相信,Java EE 的目标是为部署微服务和基于云的应用程序提供一个稳定的标准环境,并继续为过去多年来那些已经基于可靠的 Java EE 技术栈构建的应用程序提供一个优秀的平台。也就是说,社区和 JCP 专家组需要保持警惕,跟上 Java EE 的步伐,确保它没有偏离目标。社区中有许多人已经知道诸如此类的报告,它们被起草用来说明 Java EE 正在衰退。这份报告利用了关键词和新策略……它并不适合需要一个可靠的标准方法的企业客户。

技术作家兼 JavaOne 明星工程师 Ryan Cuprak 告诉 InfoQ:

这份报告令人疑惑——我不知道作者是否完全懂得他们正在比较 / 分析的技术。

这份报告的目的是通过 Java EE 攻击 Oracle/IBM。注意,这篇文章并没有讨论成本节省、成功、恰当的项目类型、供应商锁定等问题。

Java EE 很有价值,并将继续发展。大多数 Java 开发人员每天都使用 Java EE,他们甚至都没有注意到。如果你正在使用 JAX-RS 实现一个微服务,那么你就使用了 Java EE 的组件。当一个平台被广泛地使用着,你不能说它正在消亡。你不能因为自己没有为一个小型的部门应用程序购买 WebLogic,就说你没有从使用 Java EE 或其中的一部分获益。

Reza Rahman 补充道:

显然,微服务和云在 Java EE 的规划中;对于加快 Java EE 8 和 Java EE 9 进度的承诺,那是 Oracle JavaOne 主题演讲的重点内容。

Java EE 供应商也正在发挥他们的作用,既有像 WildFly Swarm、Payara Micro 这样的产品,也有像 MicroProfile 这样的联合方案。

至于平台比较,老实说,对于统治服务器端多年的 Java,断言它在不远的将来就会失去在服务器端的统治地位并不可信。如果真是这样,那么 Java EE 和 Spring 真是目前为止仅有的两个可行选项吗?我已经提供了许多资源,我们已经证明,在服务器端 Java 中,Java EE 仍将是使用最广泛的 API 集合。

除此以外,像 Pivotal 这样的公司已经争论了多年,但那些基本的事实那么多年来一直没变,而且,短时间内那似乎也不会有什么变化。至于收入,与 Oracle 通过 Java EE 相关产品获得的收入相比,Pivotal 通过 Spring 获得的收入微乎其微。这还不算 IBM、Red Hat 及其他 Java EE 供应商的收入。如果将各种较小的、基于一个或多个 Java EE API(如 JMS 提供程序)构建产品的供应商的收入都计算在内,那么 Java EE 的回报就更高了。

作为一个专注于开放标准的 Java EE 社区,我们仍然强大、充满生机,并不断发展。多年来,我们一直如此,这就是为什么我们可以得到 Oracle 的承诺。

InfoQ 还同技术作家、演讲家和终身技术专家 Alex Theedom 进行了交谈:

因为重量级的膨胀而在为新兴应用程序架构提供支持时变得缓慢,Java EE 的这个名声已经过时多年了。早在 2009 年,Adam Bien 就展示了如何轻松地实现只有几 KB 的 WAR 部署。然后,在 2013 年,Arun Gupta展示了 Java EE 应用程序与 Spring 相比是如何显而易见的轻量级。Java EE 开发高效且轻量级,经常只需要一个依赖;对其他框架而言,这可不容易。

每个人的日程上都有微服务和云,Oracle 也明确地给出了承诺。企业 Java 的下一个版本(也就是Java EE 8,JSR366)包含了支持云基础设施和微服务的特性。除了 Oracle 的支持外,许多供应商和社区负责人也都在 Java EE 的发展进程中发挥了重要的作用,通过类似MicroProfile这样的方案,供应商、社区负责人和用户组一起合作,成功地将 Java EE 推进了微服务领域。

Java EE 社区以及包括 Payara、Tomitribe、IBM 和 Redhat 在内的公司都在 Java EE 上投入了时间、精力和资源,以确保它向着社区希望的方向发展,而它也正在发展。有多少其他的生态系统从每天使用它的用户哪里获得了如此多的支持和贡献?

说 Java EE 过时、不重要及不适合原生云应用程序,说明他们对 Java EE 社区中正在发生的事情不了解,因为在我看来,它健康地活着,并且蓬勃地发展着。

JCP 执行委员会成员 Werner Keil 提到了一批正在积极酝酿中的重要 JSR,包括CDIJSON-PJAX-RS这三个 MicropPofile 用到的 JSR。这些 JSR 让计划在 2017 年底发布的 Java EE 8 进入了微服务和云领域。为了在 Servlet 4 中支持 HTTP 2,JSON-B接近完成,新的JSR 375(Java Security API)最近通过了更新投票,应该会有助于标准化现在仅以专有方式提供的 Java EE 安全机制。

Rahman 还暗示说,这份报告得到了赞助,在同 Pivotal 交流时,他们否认了这种说法。

此外,Pivotal 产品副总裁 Ian Andrews 告诉 InfoQ:

关于 Java EE 以及传统应用服务器的使用下滑,业内有许多讨论。但是,真实的情况是原生云架构的崛起。Gartner 每天都在全球范围内和 CEO 及 CIO 进行交谈,他们已经敏锐地意识到这种向原生云的重要转变,并建议他们的客户针对已有的应用程序组合推行一种现代化的策略。关于原生云架构的崛起,Gartner 的独立研究和其他顶级研究公司(如 Forrester 和 Redmonk)的调查结果类似

在过去的 3 年中,我们在 Pivotal 见证了 Spring Boot 和 Spring Cloud 作为原生云应用程序构建块的迅速流行。Spring Boot 2016 年 11 月单月下载量达 1002 万次,同期增长 425%,这就是明证。我们希望帮助更多的组织使用我们的 Spring 技术,采用原生云架构实现关键应用程序的现代化。

查看英文原文Is Gartner's Report of Java EE's Demise Greatly Exaggerated?

Java语言 & 开发架构