开发人员该如何应对?
作为开发者,Oracle Java策略改变对我们的影响是巨大的,但越是重要的事越要理性看待,细细梳理,才能发现最有价值的是什么。
先回顾一下:
CodeOne大会上Oracle宣布的Java新发布模式
一、JavaOne是全球一年一度的Java技术盛会,1996年开始举办第一届,今年(2018年)被Oracle重新命名CodeOne,大会在10月22日-10月25日美国旧金山举行。
来自Java Platform Group的Chief Architect ,Mark Reinhold做了“The Future of Java is Today”的主题演讲。在演讲中,Mark提到了近来Java的三个重要的变化:
第一、 Java 9引入了Modularity(Jigsaw)
第二、 JavaEE正式退休,重新命名为Jakarta EE,移交Eclipse Foundation管理。
第三、 发布模式的变化:Java版本采用六个月发布模式。[1]
二、Java发布模式变化和核心策略
让我们看下Java发布模式的改变带来的影响,特别是Oracle在这些变化中的策略。
在最新的发布模式里,Oracle最核心的策略变化是:从Java11(包含)以及以后的版本,Oracle将不再提供免费的long-term support (LTS)支持。如果你需要LTS支持,可以通过向Oracle付费的方式获得。
下面这个表格总结了针对每一个Java发行版,Oracle提供免费更新的最后日期:
这里我们重点说明下几个重要的概念:
l Long-term support (LTS) [2]是Oracle管理Java版本生命周期的一个标准术语,Oracle每三年会指定一个LTS的Java版本,Java8是LTS版本,Java11是下一个LTS版本(表中标红版本)。
l Java8的更新将会在January 2019停止(注意这里的commercial use,指非Oracle的商业Java用户),Java版本的更新主要包括大家熟知的安全漏洞,关键问题修复等。
l Java9, Java10,Java12都是non-LTS版本,其支持周期为6个月。
l Java11是LTS版本。但请注意:虽然Java11是LTS版本,Oracle提供的停止更新时间是到March 2019,支持也只有六个月而已。所以这里的LTS,指的是需要社区自己维护的Long-Term-Support。
Oracle仍然在它的网站上提供了Oracle JDK11的build下载[3],但是License已经变了:
三、陷阱
对于非常习惯于在Oracle网站下载Build免费使用的用户来讲,这里有些陷阱,划重点:从Java11开始,不要随意下载Oracle JDK(除非你搞清楚License的变化对于你公司意味着什么),并用于你的生产环境!
四、国内厂商如何应对
回到国内,“世界Java看中国,中国Java看阿里”,阿里巴巴可以说是世界上最大的Java用户之一,也是Java最大受益者之一。
别的不说,光一个双十一,就让阿里的Java架构的稳定性和高性能有独一无二的试验条件,这点作为开发者还是很羡慕的。
值得注意的是,阿里从2010年就开始基于OpenJDK开源软件的自研开发,并在2015年着手Open JDK8的优化和定制工作,并推出了定制版的AJDK(Alibaba JDK),阿里系几乎全部的Java业务已经跑在了AJDK8上。
作为开发者接触最多的阿里云也是如此,有了Alibaba JDK,基本可以确定,阿里会通过与OpenJDK社区紧密合作,针对LTS的两个版本Java8和Java11,为开发者提供免费支持,所以担心会收费的人可以放心了。