也许以后Java世界分裂为两种:Java8和Java11以后


许多开发人员仍然坚持使用已有五年历史的Java 8。
当Java工具公司JetBrains的开发者倡导者Trisha Gee在本周伦敦QCon会议上发表讲话之前对Twitter进行了调查时,78%的受访者表示他们正在使用Java 8 - 并考虑到她的追随者可能会向最前沿倾斜,现实可能更高。

78% 使用Java8
2%   使用Java9
2%   使用Java 10
18% 使用Java 11

这很遗憾,因为在Java9以后的版本中有许多强大的新功能:JLink为Docker镜像创建小型Java可执行文件; Var用于隐式输入; JShell交互式Java;  可选类; 改善垃圾收集; 模块化等等。

那么为什么开发人员没有升级?简单地说,Java 9引入了重大变化,包括内部重组,新模块化(称为“项目拼图”),以及删除很少使用的API。

Java9的更改破坏了代码,即使是很乐意进行必要修订的开发人员也会遇到依赖性问题。

“我想解释为什么它是必要的,”Oracle的Ron Pressler说道,他是Java平台小组的一员,负责开发Project Loom的语言和领导。

“在Java和Java 9中有数十亿行代码,它确实打破了一些东西。原因是Java已有20多年的历史了。它可能会在20年内变得更大并且更受欢迎。我们必须考虑20 JDK在Java 9之前构建的方式是不可维护的。如果我们没有做出这样的改变,我们就无法保持Java的竞争力。这是绝对必要的。“

Java 8仍然得到很好的支持,没有强大的动力去迁移。“将会有两个世界,”一位与会者说。“Java 8世界,Java 11及更高版本的世界。”

没有根本原因可以解释为什么你的Java代码不能在Java 9+上运行。你可能需要更改对旧API等的访问权限。但它不是一种不同的语言。