QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

专访 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:562152
用户头像

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

关注

评论

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

Nginx 的日志

HoneyMoose

java内存模型之happenbefore原则

急需上岸的小谢

5月月更

在线HTML文本提取URL链接工具

入门小站

工具

Bigdata 作业第九周

Pyel

网站开发进阶(四十九)由JS报“未结束的字符串常量”引发的思考

No Silver Bullet

作用域 5月月更 解析引擎

百万级电商秒杀架构设计

晨亮

「架构实战营」

集成 ShenYu 网关实现 Dubbo 泛化调用

码农大熊

盘古开发框架 Dubbo网关 泛化调用 ShenYu网关

抖音严打虚假宣传滋补膳食内容广告主:必须严格监管信息流广告

石头IT视角

面向对象的系统分析

奔向架构师

信息系统 5月月更

浅谈Java中的Math.random

工程师日月

java 5月月更

OpenYurt 开源之夏开始申请啦

阿里巴巴云原生

阿里云 云原生 开源之夏

JAVA为什么需要泛型?

源字节1号

软件开发 后端开发 小程序开发

从这些云原生企业身上,我看到了数字化创新者该有的样子

阿里巴巴云原生

阿里云 云原生 实战案例

面试突击46:公平锁和非公平锁有什么区别?

王磊

Java 面试 java常见面试题

【建议收藏】Mysql知识干货(mysql八股文)汇总

利志分享

面试 面试题 MySQL 数据库 面试问题 MySQL InnoDB

架构实战营总结

晨亮

「架构实战营」

函数计算 HTTP 触发器支持异步,解放双手搭建 Web 服务

阿里巴巴云原生

阿里云 云原生 函数计算

java内存模型之双重检查锁定与线程安全的延迟初始化

急需上岸的小谢

5月月更

kubernetes下的Nginx加Tomcat三部曲之一:极速体验

程序员欣宸

Java tomcat Kubernetes 5月月更

机器学习:真正的底层是什么?

海拥(haiyong.site)

5月月更

linux之man命令

入门小站

在线TSV转HTMLTable工具

入门小站

工具

Hadoop Java api操作hdfs(一)

Emperor_LawD

hadoop 5月月更

Go Web 编程入门:创建动态 HTML 和文本文件

宇宙之一粟

Web Go 语言 5月月更

网站开发进阶(四十五)浅谈XML与HTML的区别

No Silver Bullet

html xml 5月月更

模块五作业

HZ

架构实战营 #架构实战营

八、高可用之故障隔离

穿过生命散发芬芳

5月月更 高可用设计

架构训练营-毕业总结

默光

架构训练营5期

docker可视化管理工具之shipyard

乌龟哥哥

5月月更

python使用 pywin32 模块操作 excel,Python 操作 excel 系列之五

梦想橡皮擦

5月月更

目标检测的算法

恒山其若陋兮

5月月更

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