11 月 19 - 20 日 Apache Pulsar 社区年度盛会来啦,立即报名! 了解详情
写点什么

Java EE 8 停步不前:Java 社区能否扭转乾坤?

  • 2016-07-12
  • 本文字数:3137 字

    阅读完需:约 10 分钟

最近大家围绕 Oracle 对 Java EE 的承诺有很多顾虑。InfoQ 上个月通过一篇 Java EE 守护者联盟的报道介绍了相关新闻。 Pivotal 公司 Spring Data 项目主管兼 JPA 2.1 专家组成员 Oliver Gierke 最近向Jaxenter 提到 Oracle 明显已经对 Java EE 8 失去兴趣,此外还介绍了这些情况可能对 Java 社区产生的影响。

Java EE 7 发布几个月后,Oracle 于 2013 年 11 月发布博客文章公布了有关 Java EE 8 的路线图:

在发布 Java EE 7 和 GlassFish Server Open Source Edition 4 之后,我们开始规划 Java EE 8 路线图,并通过 JavaOne Strategy 主题演讲进行了介绍。总结来说,我们的兴趣主要集中在改进对 HTML5 的支持、云计算,以及调查对 NoSQL 的支持等方面。对于大家想在 Java EE 8 中看到的改进,社区和客户为我们提供了一些很棒的反馈。

简单来说,Oracle 对 Java EE 的未来做出了承诺。Java EE 7 已正式发布,有关 Java EE 8 的规划工作也已开始。

在那之后,Oracle 在博客文章中所表现出的热情似乎彻底停摆了。Oracle 在 2015 年 6 月发布的博客文章向 Java 社区通告了有关 Java EE 8 路线图的最新近况:

我们为自己设立的目标是在 JavaOne San Francisco 2016 开始前完成相关工作。虽然我们都喜欢在 JavaOne 做出(并听到)一些大事情,但在启动专家组过程中遇到的各种延迟以及我们的规范管理者在时间方面遇到的其他要求导致发布日期需要略微延后。我们依然会在 Java EE 平台的开发过程中遵循有关透明度的承诺。因此公开宣布要将完成这一工作的目标时间正式推后至 2017 年上半年。

Java EE 7 发布两年后,Oracle 告诉 Java 社区他们还要再等等。在被问到有关 Java EE 8 的具体情况时,Gierke 说:

从全球视角来看,Java EE 8 基本上还在继续延续着 Java EE 7 那老生常谈的故事:继续执着于其他参与者已经逐渐不感兴趣的领域。在我看来,这是因为所有主要对手都已经开始将目光转向自家的云计算产品(Oracle 有 Oracle Cloud,Red Hat 有 OpenShift,IBM 有 Bluemix,当然 Pivotal 也有 Cloud Foundry)。

JSR 372 JSR 378 专家组成员 Josh Juneau 于 2016 年 4 月发布的博客文章中谈到了自己的看法。经过调查,Juneau 发现由非Oracle 规范管理者所控制的JSR 比Oracle 的规范管理者所控制的JSR 更活跃。JSR 372 的提交数量也有显著下降(见下图)。Juneau 认为2015 年10 月之后的大部分工作都是由Java 社区,主要是 Arjan Tijms 完成的,此人是 Bauke Scholtz 的共同创始人兼开发主管,同时也是 ZEEF 的共同创始人兼 Web 应用程序专家。

InfoWorld 特约编辑 Paul Krill 最近撰写的一篇文章中提到,James Gosling 发现 Oracle 的行事方式让人“非常不安”:

Oracle 恐怕不会继续为 EE 提供太多支持,而是转由社区合作提供…将其“专有化”,通过“廉价汽车旅馆”的模式推行不规范的标准,“客户只需要办理入住手续,从不需要退房”。

Spring 5 和 Java EE

Krill 于 JavaOne 2010 期间发布的一篇关于 Java EE 座谈会的文章中介绍了有关 Spring 和 Java EE 的争论:

“我绝不会将 Spring 与 Java EE 6 混为一谈,因为重叠的地方太多了,”身为顾问、作者,以及演讲者的 Adam Bien 这样说。另外他还提到同时使用 Spring 和 Java EE 的注解会导致复杂的问题。

他说:“对于大部分项目,我的个人意见是将它们区分对待,使用 Spring 或 Java EE 6 都行。”然而开发者也可以在 EE 6 的基础上使用 Spring 工具,Bien 这样说到。

但是 Caucho Technology 的首席工程师 Reza Rahman 更担心这两种技术之间的竞争。“Java EE 需要 Spring,正如 Spring 也需要 Java EE,”Rahman 说。

大概六年后,原 Oracle Java EE 布道师,现任 CapTech Ventures 顾问的 Gierke 给出了与 Rahman 类似的看法:

据称 Spring 和 Java EE 之间的关系以竞争为最主要特点。然而如果仔细研究很快你就会发现,这两者之间曾经(并且目前依然)存在协同增效的作用,它们之间的关系不是非黑即白的,中间有很多灰色地带。

一方面,某些情况下 Spring 是以 Java EE 规范为基础构建而来的,因此如果没有 Servlet API,很难想象 Spring MVC 能发展成为目前这种形式。另一方面,框架始终都为最重要的规范提供了支持。

另外要注意,虽然 Spring 依赖 Servlet API,但最初发布的 Spring 5 并不包含新的 Servlet 4.0 API。对此 Gierke 解释说:

对我们来说,Java EE 8 中最重要的部分在于 Servlet 4.0 API 及其对 HTTP 2.0 的支持。某种程度上这是可以预见的,但在我们最终正式发布 Spring 5 之前一切都尚无定论,我们目前正在与最重要的 Servlet 容器实现者(Tomcat、Jetty、Undertow)密切合作,以确保能在第一时间使用他们提供的原生 API 实现对 HTTP 2.0 的支持。

Java 社区能扭转乾坤吗?

Oracle 于 2015 年 6 月发布的博客文章鼓励 Java 社区提供帮助:

鉴于目前的这些变化,你将有更多时间和机会参与其中。

我们会继续鼓励开发者追踪 JSR 并通过各种 JSR 邮件列表和维基,下载并尝试 Java EE 8 参考实现的早期版本等方式提供反馈。我们已经看到很多人不仅对 Java EE 8 的功能感兴趣,而且已经参与了进来。

然而 Krill 于 2015 年 9 月发布的文章称,InfoWorld 收到了来自 Oracle 前任高级雇员的邮件,邮件部分内容摘录如下:

Oracle 根本没兴趣为竞争对手做嫁衣,也不想共享自己的创新成果。

该公司正在逐渐抛弃 Java EE(Enterprise Edition),但并不希望别人继续完善 Java 或 Java EE,同时还在逐渐冷落 JCP(Java Community Process)。“他们抱有一种赢家通吃的心态,对合作根本没兴趣。”

这封邮件建议 JCP 成员向 Oracle 客户发送公开信,警告他们 Java 目前遭受的待遇。Oracle 绝对不会与任何“Java 基金会”进行合作,也不准备公开自己的知识产权。

在最近的一篇文章中,Juneau 解释了 Oracle 有必要推进 Jave EE 继续发展而不应放弃的重要原因:

很明显,为确保安全性并保证能继续使用目前的 API,这些技术需要继续发展和完善。如果有人只是简单地想要 Java EE 停步不前,这意味着所有部分或全部运用 Java EE 的应用程序和服务(可能是我们所熟知的互联网上的很多东西)都将受到影响,无法继续发展以符合当今技术和安全方面的要求。

Gierke 很高兴看到社区围绕 Java EE 8 做出的诸多举措,然而他也警告说:

我认为有一方面还没有引起大家足够重视,这个问题其实还挺危险:这个问题与我们到底能围绕 Java EE 聚集多少社区成员完全无关,但是由于许可方面的原因,对于 Oracle 所控制的 JSR 我们几乎束手无策。

除非愿意对 Oracle 采取一些法律行动,否则这个问题完全无解。我不确定是否有人愿意这样做,以前有人对 Google 这样做的结果大家都知道的。因此我觉得在不可行的情况下建议大家采取措施,这一点显得有些奇怪。

Java EE 守护者

在年初从 Oracle离职后,Rahman 成立了 Java EE 守护者联盟,意在推动 Java EE 继续发展,尤其是:

  • 宣传 Java EE 8。
  • 为 Java EE 8 JSR 提供支持。
  • 游说 Oracle 履行有关 Java EE 8 的承诺。
  • 设法将停滞的 Oracle JSR 转手给其他供应商。

Java EE 守护者联盟提供的证据证明 Oracle 在 Java EE 8 的发展方面全无进展,并鼓励 Java 社区签署请愿书,该请愿书将递交给 Larry Ellison。InfoQ 之前发布的文章也针对这一话题展开了漫长的讨论。

作为对 Oracle 失去有关 Java EE 8 兴趣所做的总结,Gierke 表达了自己的想法:

如果这事的影响力不是那么深远或严重,大家可能会觉得目前的情况有些讽刺:Spring 堆栈以前被视作专有的,因为该技术的开发只得到一家公司的支持。在某些人乐观的想法看来,Java EE 堆栈始终都是完全开放,并且由社区驱动的。现在就因为一家公司失去了对 Java 的兴趣,整个 Java 世界天翻地覆了。

查看英文原文: Stagnation with Java EE 8: Can the Java Community Make a Difference?

2016-07-12 19:003899
用户头像

发布了 283 篇内容, 共 94.6 次阅读, 收获喜欢 54 次。

关注

评论

发布
暂无评论
发现更多内容

架构师训练营第一期 - 第四周课后 - 作业一

极客大学架构师训练营

~~寒露节记~~

wo是一棵草

JavaScript 语言通识 — 重学 JavaScript

三钻

Java 大前端

手把手教你锤面试官 03——Spring怎么那么简单

慵懒的土拨鼠

字节跳动 Flink 单点恢复功能实践

Apache Flink

flink

架构师训练营 第三周作业

haha

极客大学架构师训练营

看动画学算法之:linkedList

程序那些事

数据结构和算法 看动画学算法 看动画学数据结构 算法和数据结构

关于代码审查的一点体会

KJ Meng

敏捷开发 研发管理 代码审查 Code Review

MySQL-技术专题-问题分析

洛神灬殇

国庆期间,我造了台计算机

yes

计算机 底层

云原生虚机应用托管-设计篇

8小时

线上服务平均响应时间太长,怎么排查?

小Q

Java 程序员 测试 Jmeter 性能调优

第三周总结

Geek_ac4080

区块链技术最重要价值所在

CECBC

区块链 数字经济 经济

「剑指offer」27道Mybatis面试题含解析

Java架构师迁哥

开源的意义与价值

Braisdom

Java 开源 ORM

各角色如何从DevOps中受益?

禅道项目管理

DevOps 产品经理 测试 开发 运维工程师

Nginx 整合 FastDFS 实现文件服务器

哈喽沃德先生

nginx 文件系统 分布式文件存储 fastdfs 文件服务器

MySQL-技术专题-主从复制原理

洛神灬殇

私有云PAAS平台的思考

8小时

基于区块链技术实现“资产通证化”

CECBC

资产证券化 流动性

Python时间序列分析简介(1)

计算机与AI

Python pandas 数据处理 时间序列

架构师训练营1期第三周作业

木头发芽

第三周作业

Geek_ac4080

这可能是GitHub上最适合计算机专业学生看的编程教程

小Q

Java 学习 编程 面试 基础

第四周

Geek_fabd84

干货 | 全面解析“数字经济”

CECBC

数字经济 经济 经济建设

架构师训练营第三周:系统架构

m

如何使用 dotTrace 来诊断 netcore 应用的性能问题

newbe36524

微服务 .net core netcore ASP.NET Core

如果朋友圈没有点赞功能,你还会发朋友圈吗

彭宏豪95

微信 产品 互联网 写作

节日快乐…吗?

小天同学

个人感悟 国庆中秋 假期 节日

Java EE 8停步不前:Java社区能否扭转乾坤?_Java_Michael Redlich_InfoQ精选文章