新闻稿“ Oracle Code One Java主题演讲概述了Java的未来 ”在Oracle Code“突出未来项目” Valvala 项目,巴拿马 项目,Amber 项目和Loom 项目中描述了Java主旨。 这篇文章为不熟悉上述项目的人提供了每个项目的简要摘要以及与每个项目相关的一些最新工作。
巴拿马计划
巴拿马计划的主题是“互连JVM和本机代码”。 它的导言指出:“我们正在改善和丰富Java TM虚拟机与定义良好但'外国'(非Java)API的连接,其中包括C程序员常用的许多接口。”
最近发布了巴拿马早期 抢修版的Build 0(2018/10/24) 。 与其他与OpenJDK相关的早期访问版本一样,此版本“旨在供专家用户使用”,并且“是为方便起见而提供的,因此他们无需从源代码进行构建。” 要注意的最重要问题之一是“不提供Windows支持”。
织机项目
“ 项目Loom”页面描述了Loom:“该项目的目标是探索和孵化基于Java VM特性和API的API,以实现轻量级用户模式线程(光纤),定界的延续(某种形式)以及相关功能,例如明确的尾叫。”
Project Loom提案 (标题为“ Project Loom:Java虚拟机的光纤和延续性 ”)开始,“ Project Loom的任务是使编写,调试,配置文件和维护并发应用程序更容易满足当今的需求。”
OpenJDK loom-dev邮件列表上的消息“启动Project Loom会议 ”指出:“ Project Loom已经在这里启动并运行了几个月,对定界的延续和光纤进行了一些早期探索和原型制作。” 该消息涉及通过启动会议扩大工作量,并提供指向上述Project Loom提案和YouTube主持的演示文稿“ Ron Pressler和Alan Bateman的Project Loom ”的链接。
琥珀计划
Project Amber页面描述了其目标“探索和孵化较小的,面向生产力的Java语言功能,这些功能已被OpenJDK JEP流程接受为候选JEP 。” 该项目正在探索一些令人兴奋的功能,包括模式匹配 ( JEP 305 ), 开关表达式 ( JEP 325 ), 原始字符串文字 ( JEP 326 ), 简洁方法体 ( JEP草案 )以及更快的String.format和Objects.hash。方法 [ JDK-8205637 (“ String :: format和Objects :: hash的优化调用”)]。
刚才提到的JEP列表证明了Amber正在进行的重要工作。
瓦尔哈拉计划
所有这些项目都为Java提出了令人兴奋的附加内容,但是让我最兴奋的一个项目是Valhalla项目及其Value Objects / Types ( JEP 169 )。 Valhalla项目页面描述了该项目的目标“为探索和孵化高级Java VM和语言功能候选者提供一个场所”。
瓦尔哈拉项目在最近几周取得了重大进展,尤其是自2018年10月10日瓦尔哈拉执行小组会议以来和之后。 Brian Goetz在OpenJDK valhalla-spec-experts邮件列表消息“ 进入Project Valhalla的下一阶段 ”中写道,这次会议是“出席人数众多的超级生产力会议”,它帮助Valhalla开发人员“摆脱困境,以及接下来要去的地方。” Goetz还指出“这标志着该项目第三阶段的开始”,并概述了构成第一阶段和第二阶段的内容。此相同的消息还总结了Valhalla的后续步骤:
展望未来,我们的下一个目标是L2-它将捕获我们到目前为止所做的选择,为进行库实验提供有用的测试平台,并为深入研究此处和L10之间剩余的未解决问题奠定基础。 L10是我们的第一个预览目标,它应支持值类型和值上的已删除泛型。
瓦尔哈拉规范专家邮件列表上最近出现的另一有趣的Goetz消息是“ 值和已删除的泛型 ”,其中Goetz提供了“我们为基于值的已删除的泛型而提出的故事的摘要”,其“建立在所概述的打字故事的基础上在约翰的《 L世界的Q型 》文章中。” 该引用的John Rose文章的标题当前为“ L-World 10中的Q-类型 :Valhalla工作组,伯灵顿,2018年9月”。 本月初还宣布了 针对LW2的JVM规范更改建议修订版。
与Valhalla项目有关的工作量在该项目的邮件列表中的邮件数量中得到了明确说明。 这些包括前面提到的那些,以及诸如“ var,静态工厂方法和值类型构造函数 ”之类的其他内容; “ 值类型,封装和未初始化的值 ”; 和“ 数组协方差 ”。
还有一系列Goetz消息,重点介绍从前两个阶段中学到的特定课程:
- “ [LW100]专用泛型-翻译和二进制兼容性问题 ”
- “在与现有已擦除代码进行交互的同时,将类发展为任意类的挑战。”
- “ [LW100]专用仿制药-迁移 ”
- “我们为迁移准备的故事。”
- “ [LW100]专用泛型-用户模型问题 ”
- “迁移现有库的用户模型和源兼容性”
- “ [LW10]价值平等 ”
- “如果我们期望值'像int一样工作,那么
|==|
- “如果我们期望值'像int一样工作,那么
OpenJDK valhalla-dev邮件列表消息“ Valhalla项目存储库状态:从'LW1'分支以准备'LW2' ”宣布创建“ lw1”分支。
结论
在Oracle Code One的Java主题演讲中提到这四个项目并不奇怪。 它们涵盖了Java未来所期待的许多功能。
翻译自: https://www.javacodegeeks.com/2018/11/javas-projects-panama-amber-valhalla.html