原标题:你能接受Java 9的下一个版本是Java 18.3吗?
按照计划,Java 9 将于 9 月 21 日正式发布。还有一周时间,是不是很期待?
在 Java 9 这个重要版本之后,Java 又将如何继续发展呢?
Oracle Java 平台组首席架构师 Mark Reinhold 在博客上介绍了有关 Java 未来版本的一些想法。
从 1995 年发布至今,Java 已经走过了 20 多个年头。我们先来回顾下 Java 重要版本的发布时间:
JDK 1.0 (1996 年 1 月 23 日)
JDK 1.1(1997 年 2 月 19)
J2SE 1.2 (1998 年 12 月 8 日)
J2SE 1.3 (2000 年 5 月 8 日)
J2SE 1.4 (2002 年 2 月 6 日)
J2SE 5.0 (2004 年 9 月 30 日)
Java SE 6 (2006 年 12 月 11 日)
Java SE 7 (2011 年 7 月 28 日)
Java SE 8 (2014 年 3 月 18 日)
当然,不出意外,还有 2017 年 9 月 21 日的 Java SE 9。
仔细研究一下发布日期,你会发现一个规律——就是根本没什么规律!
Java 是用一个或多个重要特性来定义一个大版本的,比如 Java 9 的模块化,所以该版本也因为模块化开发面临的各种问题而一拖再拖。但是除了模块化,Java 9 还有很多小的特性,比如 jshell,AOT 编译等,而这些特性也必须等模块化完成后,Java 9 正式发布之时,我们才能享受到。
其实模块化本来计划放到 Java 8 中的,不过在 2012 年,Mark Reinhold 认为,如果想如期发布 Java 8,就得放弃模块化项目。他做了个比喻,如果火车到了发车时间,是等待所有乘客上车再发车,还是按时发车,让赶不上的乘客乘下一班?
所以,当时 Mark Reinhold 就希望 Java 的版本发布模式从基于特性改为基于时间,以两年为周期,发布新的版本。可惜理想很丰满,现实很骨感,从 Java 8 和 Java 9 的发布时间我们就能感觉到了。
回顾过去,Mark Reinhold 认为两年的周期还是太长了。想要稳定的发布节奏,速度要提上来。半年就不错嘛!
以半年为周期,持续发布新的版本,读者对这种模式应该并不陌生。比如 Go 语言,今年 2 月发了 1.8,8 月发了 1.9。每到一个新对周期,大家群策群力,讨论出下一个版本需要增加的特性,一起努力就好了。
还有一个比较典型的,Ubuntu,也是半年一个版本,而且是用年份和月份组成版本号,第一个版本是 2014 年 10 月发布的 Ubuntu 4.10,而最新版本则是今年 4 月发布的 Ubuntu 17.04。
Java 将采用什么发布模式呢?
Mark Reinhold 建议,在 Java 9 之后,采用严格的基于时间的模式,每 6 个月一个版本,每季度更新,每 3 年提供一个长期支持版本。
有几个要点。
新版本可以包含任何类型的特性,包括但不限于增加新 API,改进 API,语言和 JVM 上的新特性等。新的特性,只有在几乎完成的时候,才会合并到发布分支上,保证发布分支总是特性完备的。新版本将从 2018 年 3 月开始,于每年的 3 月和 9 月发布。
更新版本,将严格限制在修复安全问题、回退和新特性中的bug。每个新版本发布之后,在下一个新版本发布之前,会发布两次更新,分别在 1 月,4 月,7 月和 10 月。
2018 年 9 月发布的版本为长期支持版本,依此类推,每 3 年一个。提供 3 年或更长时间的支持。
关于版本号,Mark Reinhold 建议采用 $YEAR.$MONTH的方式,这样 2018 年 3 月的版本就是 18.3,9 月的版本就是 18.9 了。是不是跟 Ubuntu 很类似啊?
目前该提议已经提交给 JCP 执行委员会讨论。在邮件组里,目前也有些讨论,不过关注最多,但是实际意义并不大的,都是在纠结版本号的命名方式。
你能接受 Java 9 后的下一个版本是 Java 18.3 吗?
差点忘了,还有个好消息可以分享一下,Oracle 计划把一些商业特性(比如Java Flight Recorder )迁移到 OpenJDK。惊喜不惊喜?意外不意外?好,我们拭目以待。
参考资料:
1. Moving Java Forward Faster :https://mreinhold.org/blog/forward-faster
2. Faster and Easier Use and Redistribution of Java SE : https://blogs.oracle.com/java-platform-group/faster-and-easier-use-and-redistribution-of-java-se
3. Accelerating the JDK release cadence : http://mail.openjdk.java.net/pipermail/discuss/2017-September/004281.html
历史文章:
JDK 9第一个发布候选版本已出,可以尝鲜了
Java 9值得关注的新特性返回搜狐,查看更多
责任编辑: