dynalink

五年过去了,再看 Java 缺失的特性

假如想象 提交于 2020-04-23 07:22:36
本文要点: 在过去的五年中,Java 语言发生了显著的变化 正在实现这一变化的有两个主要的项目:Valhalla 和 Amber,它们仍在进行中 Java 继续保持其向后兼容的核心价值 尽管已经 25 岁了,但 Java 在语言和平台上仍然具有很强的生命力 诸如 Graal 之类的新技术正在帮助 Java 继续保持在编程语言的前沿上 大约是五年前,我写了一篇 文章 ,概述了其他语言的一些特性思想,我认为这些思想可能会对 Java 有好处。从那以后发生了很多事情:那时,Java 8 是最新的发布版本,而现在,最新的版本是 Java 14。 让我们依次查看下每个特性,看看它的当前状态是什么:它是已经被添加到 Java 中了,还是正在开发中,亦或是当前尚没有将其纳入 Java 的计划。 具体化泛型 我最初的预测排除了具体化泛型(reified generics)。我没有预见到 Valhalla 项目对从头开始重构 JVM 的雄心壮志。 Valhalla 项目的主要目标是: 使 JVM 内存布局行为与现代硬件的成本模型保持一致; 扩展泛型,以允许对所有类型(包括原语、值、甚至 void)进行抽象;以及 使现有的库(尤其是 JDK)能够兼容地演变,以充分利用这些特性。 在此描述中隐藏的是已加载的单词“values”,它已经演变成我们今天称之为内联类的特性。 因此