写点什么

专访 Martijn Verburg,关于 AdoptOpenJDK 与 Nestmates

  • 2018-06-11
  • 本文字数:2374 字

    阅读完需:约 8 分钟

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 的更多信息:

  1. Java Nestmates 稳步推进
  2. 社区 OpenJDK 代码构建平台投入使用

读者也可以关注 InfoQ 上的 Java 专栏主页,以了解 Java 方面的新闻动态。InfoQ 上的相关文章也介绍了 Nestmates 和 AdoptOpenJDK 的更多信息:

查看英文原文: Q&A with Martijn Verburg on AdoptOpenJDK and Nestmates

2018-06-11 14:562139
用户头像

发布了 428 篇内容, 共 183.8 次阅读, 收获喜欢 39 次。

关注

评论

发布
暂无评论
发现更多内容

docker 的 bridge,container网络模式

忙着长大#

,docker

复盘:一次测试负责人岗位面试总结

老张

面试 质量保障 团队规划

架构作业3-外包学生管理系统架构文档

许四多

eBPF深度探索: 高效DNS监控实现

俞凡

ebpf

【一Go到底】第二十三天---字符串函数详解

指剑

Go golang 10月月更

两类常见场景下的云原生网关迁移实践

阿里巴巴云原生

阿里云 云原生网关

【愚公系列】2022年10月 Go教学课程 037-面向对象综合案例-微博

愚公搬代码

10月月更

“程”风破浪的开发者|我的数据结构和算法学习小技巧

Albert

学习方法 算法 LeetCode “程”风破浪的开发者

栈和队列的实现

lovevivi

c 数据结构 10月月更

算法题学习---链表反转

桑榆

c++ 算法题 10月月更

ES6中数组做了哪些新扩展?

CoderBin

JavaScript 面试 前端 ES6 10月月更

“程”风破浪的开发者|我的Docker学习小妙招

学习方法 “程”风破浪的开发者

极客时间 - 运维进阶训练营 - 第一周作业

dog_brother

Docker 镜像 linux namespace

今年很难被薪资倒挂了!

小小怪下士

Java 程序员

Eclipse 2022 如何设置中文汉化 步骤绝对足够详细

Geek_yx5md7

eclipse 汉化教程

“程”风破浪的开发者|我的学习方法

张立梵

学习方法 “程”风破浪的开发者

Excel 文档的写入

芯动大师

Python Monad Excel数据分析 10月月更

“程”风破浪的开发者|HTML知识框架整理

默默的成长

Web3.0 “程”风破浪的开发者

Spring Boot「12」自定义 starter

Samson

Java spring 学习笔记 spring-boot 10月月更

运维进阶训练营-W01H

b1a2e1u1u

运维

二叉树的详细实现(含递归展开图)

lovevivi

c 数据结构 10月月更

“程”风破浪的开发者|元宇宙就是游戏吗?元宇宙的核心价值是什么?

王中阳Go

学习 深度思考 程序员 元宇宙 “程”风破浪的开发者

同情是对他人的不尊重

欧阳娜

Java线程池submit阻塞获取结果实现原理

JAVA旭阳

Java 线程池 10月月更

直接插入排序算法,看这篇就够了

游坦之

算法 10月月更

嵌入式 Linux 入门(三、Linux Shell 及常用命令说明)

矜辰所致

Linux Shell 10月月更 Shell命令

Linux下安装Anaconda3,这个教程一定要看!

麦洛

Anaconda python 3.5+

离职交接,心态要好

程序人生 职场

Java线程池源码深度解析

JAVA旭阳

Java 线程池 10月月更

Vue组件入门(十三)作用域插槽

Augus

Vue 10月月更

【JavaWeb】 Mybatis-01-Mybatis的简介:用对话的方式让你明白为什么要使用Mybatis

游坦之

10月月更

专访Martijn Verburg,关于AdoptOpenJDK与Nestmates_Java_Kesha Williams_InfoQ精选文章