因为与Oracle有分歧,无奈之下的Java EE要换名字了

百家 作者:聊聊架构 2018-02-27 02:39:43
作者|Michael Redlich
编辑|盖磊

也许是 Oracle 最近几年的一些做法让 Java 社区感到了失望,Java EE Guardians 于今年早些时候提交了一封公开信,表达了他们对 Oracle 限制使用 EE4J 的“Java”和“javax”包名的担忧。

当然 Oracle 依据其商标使用准则,继续保持自己的立场。著名的 Java EE 布道师 Reza Rahman,同时担任 CapTech Consulting 的高级架构师,也以个人名义向 Oracle 发出了一封公开信。

在 Oracle 于 2017 年 8 月开源 Java EE 后不久,Rahman 就 Java EE 可能会重命名的问题做了一项 Twitter 调查,结果如下:

Java 社区投票压倒性地支持保持 Java EE 名称。

Oracle 在 2017 年 9 月宣布将 Java EE 所有权转交给 Eclipse 基金会时,曾明确表示希望 Java EE 重命名。Java EE Guardians 对此设立了一个表单,供 Java 社区提供反馈。所有意见都将发送到 Oracle 的 feedback 邮件群组,同时也将发送给一些 IBM,Red Hat 和 Eclipse 的高级员工。近期,Rahman 告知 InfoQ:

毫无疑问,在如何命名 Java EE 问题上,使用电子邮件方式获得了最多反馈。即使是现在,人们仍然在使用电子邮件方式将他们的想法告知 Oracle。

2017 年 11 月,Eclipse 基金会的开源项目总监 Wayne Beaton 发起了一项选择新项目名称的提名程序。他解释了这一做法的合理性:

我们需要一个新项目名称去替代“Java EE”。类似于 OpenJDK 项目实现了 Java SE 平台规范,EE4J 项目将为当前称为 Java EE 的项目提供一组规范的实现。我们需要命名这一套规范。

提名程序将开放两周,提名结果将由 EE4J 项目管理委员会(PMC)做审查。

Rahman 再次征求了来自 Java 社区的反馈。这次,Rahman 开展了一次是否保持 Java EE 和javax.enterprise包名的调查:

和上次调查一样,Java 社区投票压倒性地支持保留 Java EE 名称和javax.enterprise包名。

Rahman 在发给 Oracle 的公开信中,总结了 Java EE Guardians 在项目重命名中的立场:

我们认为这一要求并不符合社区和行业的最佳利益。随着 Java EE 进一步向微服务,云计算和无服务器计算方向发展,这可能也同样不符合 Oracle 自身的商业利益。

最明显的证据表明,社区的看法是目前对 Java EE 做重命名和重打包这一方向是错误的。通过对开发人员的调查,他们完全支持保留 Java EE 名称和“javax”包。即便近期 EE4J 计划已经发布,在最近数月中,他们所表示出的强烈意愿依然没有改变。

Oracle 的 WebLogic Server 产品管理高级总监 Will Lyons 回应了 Rahman。他说:

Java EE 开发过程自最初创建以来,行业已经发生了变化。我们并不认为 Java EE 的开发过程足够便捷、灵活和开放。我们的共同目标是创建一个更便捷的流程、具有更灵活的许可,并实现更多不依赖于单一供应商的开放式管理。我们相信这一做法将鼓励更多的参与和创新。我们看到这一新方向受到了来自于整个社区的普遍支持。

这一新方向意味着许多变化,这些变化是以技术开发过程的变化为开始。Java EE 过程,或者更具体说是用于 Java EE 开发的 JCP 进程,是一个高度结构化的进程,授权规范会对技术的指定和实现方式产生重大影响。EE4J 过程会略有不同,它将会更加开放。包括 Oracle 在内的各个单方面供应商将继续贡献自己的力量,只是对于新的 EE4J 技术如何发展将不再具有原来的影响力。这是社区迈出的积极一步,我们相信大家会就此达成共识。

目前,现有 Java EE 中 javax.* 包的所有权已转交给 Eclipse 基金会。虽然 Java 社区仍然可以使用原有包名,但新包的命名应该是 org.eclipse.xxx。

Rahman 和 Java EE Guardian 做了大量努力收集社区统计数据,希望能继续保留“Java”和“javax”名称。尽管如此,确定 Java EE 新名称的过程在继续推进。最近,一个新的民意调查开放供人们选择 Java EE 的新名称,其中给出了两个选项:

  • Jakarta EE

  • Enterprise Profile

投票将于 2018 年 2 月 23 日关闭,每位参与者只能投票一次。

Jakarta EE 介绍

Jakarta 曾被 Apache 基金会用于管理各个 Java 子项目,诸如 Ant、Commons、JAMES 等。2011 年 12 月,在所有子项目都被迁移为独立项目后,Jakarta 名称就不再使用了。

Tomitribe 的创始人 David Blevins 最近撰写博文介绍了从 Java EE 到 Jakarta EE 的迁移,同时也提到了 Tomitribe 对重命名的最初立场:

我们对 Java EE 重命名一直保持沉默,很大程度上是由于我们喜欢“Java EE”,更大原因在于围绕 Java 商标问题在法律上的高度复杂性。

“Jakarta EE”这一命名最初是 IPFW 的高级程序员和分析师 Kenneth Jaeger 对 Beaton 在 2017 年 11 月的博客文章的回复中提出的。但是正如 Blevins 回忆的情况,该命名当时并未得到很好的反响:

他的回复立刻被其它八个回复湮没了。我承认自己最初也不喜欢这个命名。几个星期后,神奇的事情在这种情况下发现了,我们自发地采用了这一早已提出的事情。

Cybercom Group 的首席顾问 Ivar Grimstad 也撰写博文表示他对 Jakarta EE 命名的支持。

InfoQ 就重命名问题采访了 Rahman。他给出了如下声明:

我十分确认,无论强行将 EE4J 从官方开放标准 Java 平台上推迟的决定是什么,并不适用于社区中的绝大多数人。不幸的是,我认为社区在这个阶段已经做了其所能做的一切建设性工作。如果 Oracle 经过这场艰苦的拉锯战后,仍然拒绝放弃对 Java EE 品牌的控制权,那么采取重命名的做法会对 EE4J 项目造成进一步的破坏。

Jakarata EE 是我们将要给出的新命名,它最接近于和 Oracle 达成合作。这就是我的 Java EE Guardian 同事 Kenneth Jaeger 最初提出它的原因。我很高兴 EE4J 采纳了他的建议,而且 Apache 也允许使用这个名字。Jakarata EE 可以简洁地缩写为 JEE,并且 Jakarata 这个名字在开源 Java 和 Sun Microsystems 上有着深厚的传统。这一命名一直受到社区的热烈欢迎,这是一个伟大的标志。我希望 Jakarata EE 能胜出。

不过在 InfoQ 编辑看来,不管名字是否改变,面对 Spring 框架的强力冲击,Java EE 路在何方,现在还不好说。从目前社区热点来看,我只知道,Spring Boot、Spring Cloud 这套框架很受欢迎。

对于 Java EE 更名,以及 Oracle 的策略,亦或者是 Spring 生态,你怎么看,欢迎留言讨论。


推荐一个技术专栏,左耳朵耗子(陈皓)维护的《左耳听风》,每篇文章都是陈皓对自己多年“堵过的枪眼儿”“填过的坑儿”的深入思考和凝练,希望能够轻松应对团队管理、项目管理以及做好技术选型的技术领导者,希望能够快速成长进步的职场新人,广大在工作中遇到各种棘手问题的一线技术人,以及立志成为架构师的人,都能在其中获得帮助和启发。

扫描下图二维码订阅专栏(支持微信支付),现在注册极客时间,还可享受 30 元新人优惠。


关注公众号:拾黑(shiheibook)了解更多

[广告]赞助链接:

四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

公众号 关注网络尖刀微信公众号
随时掌握互联网精彩
赞助链接