在开发者们正兴奋着准备把Java8工具包转向Java9的时候, 甲骨文的首席执行官提出了要限制两个版本的兼容性。在周一下午OpenJDK的邮件列表中的一封邮件中,甲骨文的Java平台的首席架构师Mark Reinhold指出会对JDK8增加更多变化(大概在2014年初),也就意味着JDK9这片“森林”,这一个目录或者一组目录很快就会到来。所以现在开发者们要开始思考如何应对这两个版本的变化。
一般来说,他们会先在新的开发版本上做些改变再加入到旧版本中。但是,发布这种新的JDK8的准备时期做了比新版本更多系统集成测试,这特性的发布并没有太大的意义。因为新版本更会先发生变化,所以会拖慢最终版本的发布。
在这之前,到JDK7的时候,都还没有处理并行变化的策略。当Sun或者Oracle团队里面的成员对最终版本实行半自动的合并直到把这种合并变的不切实际,开发者第一时间就是对将要发布的版本作出改进。开发者们会被要求同时对这两个版本作出改进。那么调试的数据库查询会被用来帮助对新版本作出正确的改进。
Reinhold还表示,“这种方法一直都不是运行的很好,无论半自动的合并是否还在进行它都需要数百名开发者对新版本的每个阶段进行监督和贡献。一旦这些合并停止了,他们就要立刻改变他们的工作集成方式。”
为了简化最终版本的过程,Reinhold指出JDK9的开发森林会从特定的JDK8构造中开始初始化。“在那构造完成之后,这两个版本就不再允许合并。开发者对JDK8作出改变的时候也要同时对JDK9作出改变,如果那个变化适用于JDK9.”
Reinhold希望这些改变能整顿好整个开发的流程。“我认为这里面唯一的缺点就是它无法从JDK9重构建JDK8 GA,因为它是从JDK8 GA之前的GA中分离出来的。如果能做到这一点,我感觉是很方便很酷的,这比技术更具有审美价值。这种状况跟你不能从JDK8中构造一个JDK7的新版本是一样的道理。”
基于Java的标准版本8,为了能更方便的在多核处理器上编码,JDK 8被设置为支持Lambda项目。预览的构建已经可以使用了。随后的JDK 9版本,预计在2016年初发布,将会增加项目拼图和Java模块化功能的特性。