InfoQ 在之前发布的一篇新闻中提到, AdoptOpenJDK 项目近期已正式发布其构建平台,以免费软件的形式提供社区版的 OpenJDK 二进制包。
InfoQ 近期对 Martijn Verburg 进行了一次专访,Martijn 是伦敦 Java 社区的领导人、AdoptOpenJDK 的联合创始人之一、同时也是 jClarity 的 CEO。专访的内容包括 AdoptOpenJDK 构建平台的整体目标、早期功能的编译包、对于 Nestmates 和 Java 11 的看法、AdoptOpenJDK 在 2018 年的发展计划,以及开发者如何参与这一项目的方式。
InfoQ:能否请你简单地介绍一下你本人、你在 AdoptOpenJDK 项目中担任的角色,以及 AdoptOpenJDK 整体的目标是什么?
Martijn Verburg:我是 Martijn Verburg (又名"魔鬼开发者"),目前是 jClarity 的 CEO,同时也领导着几个 Java 生态圈内的创新项目的开发 ,例如 AdoptOpenJDK。我本人在项目中是负责制订 AdoptOpenJDK 构建平台发展战略的团队成员之一,同时也指导着近 300 位志愿者为完成构建平台的共同目标所努力。另外我也会进行一些技术工作,例如编写编译脚本和文档,这多亏了那些比我更胜任的工程师们的指导才能完成!
AdoptOpenJDK 早期的目标是作为 OpenJDK(基于 Java 的开源系统)的拥护者而启动的一个上架(onboarding)项目,它目前仍然扮演着这一角色。不过,最近这段时间它更注重于为 OpenJDK 提供一个长期的、稳定的构建平台(并提供通过专业测试的 Java 二进制包)。
InfoQ:AdoptOpenJDK 的构建平台已正式投入使用,以免费软件的形式生成社区版的 OpenJDK 二进制包。这个构建平台的整体目标是什么呢?
Verburg:这个平台的目标是让几百万 Java 开发者始终能够获得经过专业测试的 Java 二进制包,并且保障至少提供 4 年的免费长期服务(LTS)计划。这意味着 Java 开发者可以安心地继续使用 Java,而无需担心许可或是对它的长期支持等问题。对那些更愿意享受商业支持便捷性的企业来说,仍然可以在 Oracle、IBM、Azul 和 Red Hat 等厂家之间进行选择。
另一个重要的原因是,我们希望 Java 能够继续遵守它"一次编写、到处运行"的承诺,即便是在 Linux x86、Mac OS X 和 Windows 等主流平台之外。因此,我们提供了多种构建脚本和构建节点,以支持 zOS、AIX、Linux z390、ARM 32 位和 64 位等平台。
最后还有重要的一点,我们希望通过为 Valhalla 和 Amber 等实验性项目提供早期版本构建产物的方式,为支持 OpenJDK 本身的开发做出一点贡献。
在 AdoptOpenJDK 网站上的"关于"页面中介绍了该项目的更多细节。
InfoQ:能否请你介绍一下 “OpenJDK amber with Hotspot” 这个构建选项的内容,以及其中一些特别的特性,例如原始字符串字面量(raw string literal)等等?开发者是不是很快会看到其余的 Amber 项目的特性和构建选择,例如 Switch 表达式、Lambda Leftovers 等等?
Verburg:Amber 项目中的 raw-string-literals 分支提供了一个对 JEP 326 规范的早期实现。我们在 3 个主流的平台上都提供了支持,开发者可以提早试用,为 OpenJDK 团队提供早期的反馈。
近期内,我们还会添加一些新的分支,加入你所提到的新特性!
InfoQ:你对于 Java 虚拟机规范中允许通过“nestmate”类访问私有类成员的这一提议有什么看法?
Verburg:无论是对于安全性,还是对于减少开发者的困扰来说,这都是一个虽不起眼,但意义重大的 Java 改进。目前,JVM 还只能通过创建 bridge 的方式让声明在同一个文件中的多个类共享控制访问。按 JEP 所说:“这种 bridge 方式破坏了类型的封装性,稍许增大了部署应用包的体积,并且造成了使用者与工具的困惑!”。为了支持值类型这种大更新,还有许多其他小的内部 JEP 相关特性需要完善。
我很乐意于看到这种特性的出现,它提升了 Java 的安全性。更重要的是,它为 OpenJDK 团队处理更大、更困难的问题提供了额外的参考信息与知识。
InfoQ:你对于 Java 11 的看法是什么?它为开发者带来了哪些功能?
Verburg:它带来了一些非常重要的变化,包括(但不限于)以下内容:
- Aarch64 (ARM 64)平台上的性能改进 —— 对于这个快速发展的平台而言是个好消息
- ZGC 垃圾回收器的早期发布版本,它的特点是对于超大的堆的垃圾回收降低了延迟,与目前 Azul 的商业版本 Zing JVM 的功能相类似。
- 去除了 Java EE 和 CORBA 模块(开发者需要在构建工具中替换为对应的第三方库)
- 全新的 HTTP2 客户端功能,实在是拖延了太久了!现在已经可以看到一些基于 HTTP2 创建的第三方 WebSocket 和 HTTP 库了。
- Flight Recorder (JFR)已实现开源,可在生产环境中无限制使用。这对于 JVM 的性能监控来说是件大好事!
此外,还有一部分变更已计划随着 Java 11 推出。
InfoQ:AdoptOpenJDK 项目在 2018 年有哪些计划?
Verburg:对 Java 8 和 11 的二进制版本进行全面的测试并通过 TCK 兼容性验证,支持全部主流平台和大部分的小体量平台,并且提供 4 年的长期服务(LTS)许可。
InfoQ:感谢你能够参与今天的专访,你还有什么想法要与 InfoQ 的读者分享么?如果读者想要参与 AdoptOpenJDK 项目,最好的方式是什么?
Verburg:我相信,对于 Java 的长期发展来说,AdoptOpenJDK 的构建平台将扮演一个重要的角色。同时,它也是你学习现代化构建、测试与部署环境的一个好去处,对于你的职业发展大有裨益!加入项目的最佳方式是通过 Slack 频道 —— 已经有约 300 名志愿者加入了我们,一起组织各种丰富的活动,包括底层的 shell 脚本编写、网站设计、文档编写、市场宣传和推广,以及很多我没有提到的活动。
InfoQ 上的相关文章也介绍了 Nestmates 和 AdoptOpenJDK 的更多信息:
读者也可以关注 InfoQ 上的 Java 专栏主页,以了解 Java 方面的新闻动态。InfoQ 上的相关文章也介绍了 Nestmates 和 AdoptOpenJDK 的更多信息:
查看英文原文: Q&A with Martijn Verburg on AdoptOpenJDK and Nestmates
评论