在最近的一次采访中,Oracle产品开发总裁Thomas Kurian宣布了Java EE 8的一系列改进。此举被认为是为了平息近期的批评(比如那些来自Java EE守护者的批评)和工作分歧(如MicroProfile)。目前的信息还很少,更多细节会在JavaOne 2016大会上公布。
Java开发社区越来越担心Java EE的未来发展。此前,在今年5月,JCP执行委员会曾考虑向Oracle发出正式申请,要求他们针对其Java EE承诺和计划作出公开答复。虽然在会议时记录了下来,但该申请未获批准。实际上,它变成了一份非正式的申请。之后大约一个月,Java EE守护者们提交了一份change.org请愿书,希望以此激励Oracle,让他们不要把Java EE搞砸了。截至目前,签名者已达3300人。
可能有人倾向于将这些倡议理解为个案,认为它们与不满意的用户无关;无可否认的是,其中有几位Java EE守护者以前是Oracle的员工。然而,似乎越来越多的社区成员加入了批评:除了在change.org请愿书上签名外,6月8日,一场名为“To EE or not to EE”的研讨会在Devoxx UK举行,许多开发人员提出了问题,并当场或在Twitter上表达了他们对于Java EE未来发展的担忧。此外,库作者们指出,Java EE 8的功能可能不足以为他们开发的库提供一个可行的替代方案。当有人问及新的JSON-B时,Jackson***开发人员Tatu Saloranta表达了这样的观点。
就是在这种背景下,Oracle作出了在Java EE 8中打包更多功能的承诺。虽然当前针对Java EE 8的JSR主要只包含三个新库(JCache、JSON-B和MVC),但Kurian现在提到了以下所有特性:
- 数据库:支持基于NoSQL将数据持久化到一个键-值存储中,并支持一个可以提供最终一致性保证和“放松事务(relaxed transactions)”的事务模型;
- 安全:支持OpenID和OAuth;
- 部署管理:一个多租户应用程序服务规范和Docker支持;
- 异步性:一个用于反应式编程的新模型和HTTP/2异步通信支持。
通过这份公告,Kurian旨在强调“Oracle有一份非常清晰的Java EE 8计划”。然而,对于提到的那些特性,没有任何的JSR。这意味着,要么那项工作还没有开始,也就是说,在Java EE 8中会严重延迟,要么是Oracle正独自开发这些特性,而这违背了JCP所倡导的透明性。这里,也许值得重点说一下一封据称是Oracle高级员工发出的电子邮件。下面是从中摘录的一些内容:
Oracle无意于促进竞争对手的发展,也不希望分享创新成果。
这家公司正在对Java EE(企业版)进行瘦身,但它不希望其他任何人致力于Java或Java EE的研发,并且正在边缘化JCP(Java Community Process)。“他们有一种胜者为王的心理,他们对合作不感兴趣。”
这封邮件建议JCP成员向Oracle的客户发出公开信,提醒他们Oracle正在对Java做什么。Oracle永远不会和任何“Java基金会”合作,也不会放弃它的IP。
假如这些变化是为了调整Java EE让其适应云,考虑到Oracle作为一个云提供商所面临的激烈竞争(IBM、 Amazon、Microsoft或CloudBees,这里仅举几例,也面向那个市场),那么对于Oracle而言,为了增加其市场份额,这种情况就可以理解了。但即便如此,这可能也要以招致Java开发社区的对立为代价了。我们只能期待在9月份的JavaOne大会上Oracle宣布进一步的消息,了解到适合Java EE的未来。