谁将使用 JDK 9?为什么 JDK 9 在生产环境中很少被采用? - 开源中国社区
谁将使用 JDK 9?为什么 JDK 9 在生产环境中很少被采用?
局长 2017年12月04日

谁将使用 JDK 9?为什么 JDK 9 在生产环境中很少被采用?

局长 局长 发布于2017年12月04日 收藏 10

有免费的MySQL,为什么还要买? >>>  

你有迁移到 JDK 9 的计划吗,是怎么样的?你已经在生产环境中使用 JDK 9 了吗,或者只是在观望中?这篇文章将介绍几个 JDK 9 在生产环境中很少被采用的关键原因。

距离 JDK 9 的发布已过去了几个月,“将应用程序迁移到 JDK 9”这个话题相信在很长一段时间内都会备受开发者的关注和讨论。事实证明,即使不使用任何内部 API(比如“臭名昭着”的 sun.misc.Unsafe 类),也可能会导致应用程序不能在 JDK 9 上启动。

针对这些有关“迁移”的问题,下面介绍一个以“你迁移到 JDK 9 的计划是什么”为主题的民意调查结果,以了解开发者将应用程序移植到 JDK 9 过程中所处的阶段。调查有两次,分别是面向 EMEA 和美洲的开发者。

对于“你迁移到 JDK 9 的计划是什么”主题的调查包含了以下的选择:

  • 已在生产环境中使用 JDK 9

  • 正在迁移到 JDK 9

  • 正在观望中

  • 等待下一个长期支持版的发布

  • 还在使用 JDK 6

具体的调查数据如下:

来自 EMEA (欧洲、中东、非洲三地区的合称)开发者的调查结果

来自美洲开发者的调查结果

综合结果

可以看到,“正在观望中”的开发者占了大多数,而使用旧版本的朋友仍有不少,但意外的是,使用 JDK 9 的用户居然一个都没有。虽然这次调查的样本量可能不够大,但我们相信这确实是比较贴近现实的。

下面说说 JDK 9 很少在生产环境中被采用的原因:

  • 应用程序从 JDK 8 或更早版本迁移至 JDK 9 出现的不兼容变更情况的数量。尽管已经从标准 API 中移除的六种方法不会影响很多人,但是像停止 JVM 启动的命令行选项的数量将是一个障碍。

  • 内部 JDK API 封装的影响。同样,直接受此影响的开发者数量也不会很大,但间接受到影响的开发者数量则很多。因为大多数开发者在开发应用程序时使用了第三方库和框架,有很多这样的库和框架使用封装的 API。虽然大部分已经过测试并提供专门针对 JDK 9 的版本,但仍然有很多还没这样做。对于没有得到积极维护的库或框架来说,这无疑是一个会阻碍迁移至 JDK 9 的问题。

  • 受支持的寿命周期。甲骨文最近宣布将加快 JDK  的发布频率,改为每六个月发布一次。按照改进的发布计划,JDK 9 不是长期支持版本。在这个新方案下,JDK 9 将是以 JDK 8 为基础的第一个“功能”版本。而且由于公共的更新,开发者在决定要部署的 Java 版本时,需要记住一些东西。长期支持版本的更新将至少提供三年,而 JDK 8 的受支持周期更像是四年半。这些版本适用于喜欢稳定的企业,使其能够在单个版本上运行大型的应用程序。

大多数开发者都表示,他们将继续在生产环境中使用 JDK 8,至少直到下一个 LTS 版发布。

根据甲骨文展示的计划,在 LTS 版本之间进行转换对开发者来说颇具挑战性。当 JDK 11 发布时,它将包含可能影响应用程序兼容性的新功能,而且由于 JDK 8 将不再有公共更新,用户面临的只有两种选择,要么选择支付以获得商业支持,要么直接迁移到新的 LTS 版本,并祈求他们的应用程序不会有所破坏并需要进行实质性变更才能正常运行。

参考:https://www.azul.com/who-will-use-jdk-9/

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 开源中国社区 [http://www.oschina.net]
本文标题:谁将使用 JDK 9?为什么 JDK 9 在生产环境中很少被采用?
分享
评论(42)
精彩评论
8
我一般时新的大版本发布了才开始用上一个版本,如果jdk9刚发布,我才开始用8
7
:grin: 正在说服公司 从jdk6升级到jdk7或者jdk8
3
不是应该有人说我们公司用的jdk4,系统照样跑起来66的吗
2
浓浓机翻的感觉
新版本还是等到 update 40 甚至 60 之后再用吧
1
新东西发布就问几个问题,迁移对稳定性会有多大影响,有什么新功能是迁移可以带来的明显收益。显然JDK 9迁移影响打,收益小,那我为啥要折腾嘛。
最新评论
0
jvm参数名都改了,等各大容器,各大框架和ide更新了再用吧
0

引用来自“我擦_得弄个昵称”的评论

java 9 兼容 java 8 吗?
兼容个屁,写个HelloWorld估计兼容。一升就跪系列
0
java 9 兼容 java 8 吗?
0

引用来自“kerneler”的评论

:grin: 正在说服公司 从jdk6升级到jdk7或者jdk8
一步到8
0

引用来自“boystudio”的评论

Java 9中有一些模块被干掉了,Hibernate跑不起来,赶紧切回JDK8
一开始我也跑不起来,然后发现一些模块被干掉了,但是单独是有的,反正我maven加了几个依赖以后可以用了
1
新东西发布就问几个问题,迁移对稳定性会有多大影响,有什么新功能是迁移可以带来的明显收益。显然JDK 9迁移影响打,收益小,那我为啥要折腾嘛。
0

引用来自“护士的小黄瓜”的评论

不是应该有人说我们公司用的jdk4,系统照样跑起来66的吗
兄弟也看小脑鹰?
0

引用来自“__zero__”的评论

等spring支持9了就差不多了慢慢有人用了
spring 5就是为了9开发的呀:joy: (默认是jdk8级别,可以手动调到9)
0

引用来自“护士的小黄瓜”的评论

不是应该有人说我们公司用的jdk4,系统照样跑起来66的吗
还真的用的1.4,
0
Oracle 自己也不敢用
0
Java 9中有一些模块被干掉了,Hibernate跑不起来,赶紧切回JDK8
1
升级永远是个矛盾的过程,
当你使用正在维护的产品线时,意味着其并不稳定,后续还将不停维护。
当你使用停止维护的产品线时,意味着一旦除了问题,将是一个严肃的问题,因为没有人免费给你提供维护。
当你使用最新产品线时,意味着你必须不断手动调整各种内容,因为大多数的东西都没有支持这个玩意。
0
主要是周边的很多库没有及时跟进。
0
jshell很方便. 然而生产环境还是老老实实的用jdk8...
0
你是来骗流量的吧,这还用问?
0
坐等框架更新~
0
反正我在linux环境用java9启动idea报错。一直以为是idea的问题,换回8就一切正常。。。。
0
等spring支持9了就差不多了慢慢有人用了
0
还有不少Java生态还不支持Java9
0
更新没好处还可能崩出不认识的翔,不如做点别的
顶部