原标题:你能接受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值得关注的新特性返回搜狐,查看更多

责任编辑:

霸王的大陆3.29版java_你能接受Java 9的下一个版本是Java 18.3吗?相关推荐

  1. Java入门123:一个老鸟的Java学习心得(二维码版)

    Java入门123:一个老鸟的Java学习心得(二维码版)清华大学出版社 Java入门123--一个老鸟的Java学习心得(二维码版)充分考虑了初学Java的种种困难,讲解细致入微,抽丝剥茧,层层推进 ...

  2. 三国志2霸王的大陆 java_三国志2霸王的大陆完美手机版下载_三国志2霸王的大陆安卓完美版下载v4.2.0_3DM手游...

    <三国志2 霸王的大陆完美版>是款非常受玩家们青睐的好玩的策略对战手游.游戏中玩家们可以在这里体验到全新的策略国战玩法,带你在这里感受到不一样的三国历史体验.你还等什么?赶快下载体验吧. ...

  3. 博弈游戏 ai JAVA_四国军棋是比较全面的下一个AI博弈游戏

    中国象棋和国际象棋程序,采用的都是α-β剪枝方法,但对于围棋来说,这个方法并 不适用,其主要问题是围棋的局面评估不好计算.后来蒙特卡洛方法的引入对于围棋 来说一次突破,通过模拟的方法对局面进行评估,使 ...

  4. office2020与2016版的不同_Office2016与Office2019,这两个版本有些什么区别

    不知道大家有没有发现,自Office2007版开始,到Office2010.Office2013.Office2016,到现在的Office2019,基本上每3年更新一次版本,是不是这个版本还没有玩明 ...

  5. 思迅商云xpb版的最后一个版本_6个版本“建宁公主”,个个貌美如花,但最美的一版,并不是林心如!|林心如|建宁|邱淑贞|刘玉翠|娄艺潇|怀玉公主...

    提起"建宁公主"这个人物,想必大家都不陌生.她是在金庸小说<鹿鼎记>中登场的人物,也是主人公韦小宝的七位夫人之一,性格刁蛮.泼辣.胆大妄为.在大小荧屏中,有不少女星都曾 ...

  6. Java霸王大陆3.0.2_三国志2霸王的大陆最终版

    三国志2霸王的大陆最终版是陪伴了多数玩家童年的三国策略类游戏,在这款游戏之中玩家招兵买马,打造三国最强军团,以君王的身份去带领自己的武将们在乱世之中去攻城掠地,打败各方强敌,喜欢这款游戏的玩家来下载游 ...

  7. Java霸王的大陆梦幻版_三国志霸王的大陆,喜欢三国的进

    三国是中国历史上英雄辈出的时代,<霸王的大陆>这款移植自Fc的战棋游戏更是中国手游java游戏的No.1!该游戏内容极其丰富,对玩家的要求很高,因此这完全是一款符合游戏高手要求的大型单机游 ...

  8. psp用ps1模拟器_电脑上ps1和fc模拟器资源下载,包含当年ps1上的西游记和霸王的大陆复刻版...

    不知道当年有多少玩家接触过这款ps1上的西游记,当年小编第一次玩的时候是在当时的ps房里玩的,单人3块钱一个小时,对于小学生的我来说,玩每一个小时都备感珍惜,但是当年的是日文版的,并没有通关过,玩到梦 ...

  9. 艾斯拉大陆设定2010版

    搞设定真不是人干的活,上一个版本设定是两三年前写的,经过两三年的不断完善,形成现在这个体系.设定参考了魔兽世界,比如艾泽拉斯<==>艾斯拉,银月城,艾露恩,雷克萨<==>雷可萨 ...

最新文章

  1. c语言大作业菜单管理,C语言大作业:编写菜单控制猜商品价格程序
  2. Linux数据报文接收发送总结4
  3. 【Python基础】如何用Pandas处理文本数据?
  4. 用CSS的 filter 来轻松实现图层半透明
  5. 一套完整的基于随机森林的机器学习流程(特征选择、交叉验证、模型评估))...
  6. php 面试靠快速排序,搞定PHP面试 - 常见排序算法及PHP实现
  7. bzoj1070 [SCOI2007]修车 费用流+拆分
  8. prim算法详解java_Prim算法(三)之 Java详解
  9. 使用mysql事务管理_MySQL事务管理的介绍(附示例)
  10. linux bash错误,linux bash错误重定向输出
  11. 如何安装JCreator
  12. Unity Shader案例之——阴阳师画符效果
  13. Excel插入斜线表头
  14. ASP.NET类计算机专业毕业设计题目选题课题
  15. POTN——新时代网络融合的必经之路
  16. 陈天奇:机器学习科研的十年
  17. 使用余弦相似度算法计算文本相似度
  18. Word里的标尺怎么用?这五个Word标尺的妙用赶紧收藏
  19. euler和鸿蒙,euleros 鸿蒙
  20. Mac系统安装Node

热门文章

  1. python自动操作微信_微信全智能机器人测试,Python代码实现自动化操作,玩转智能应答...
  2. CS0016: 未能写入输出文件“xxxxxx.dll”--“目录名称无效。解决方法
  3. 软件测试面试题:分苹果
  4. TelegrafInfluxdb学习笔记
  5. 【C语言->数据结构与算法】->哈夫曼压缩解压缩->第一阶段->哈夫曼编码解码的实现
  6. samtools + bcftools
  7. 最简单的微信视频号下载方法,收藏备用超级实用
  8. 【USB】Android实现读写USB串口数据
  9. TransformGizmo(变换)切换
  10. 严选114个创新创意Java计算机毕业设计项目,赢在毕设起跑