#自我介绍
请您做一个简单的自我介绍。
江莎:大家好,我是OpenJDK社区的Committer和Reviewer,也是腾讯Kona JDK团队的一员。主要工作在JDK的安全领域,尤其专注于密码学和安全通信协议的实现。除了向OpenJDK和Kona JDK贡献之外,也是开源项目腾讯Kona国密套件(TencentKonaSMSuite)的核心开发者。
郑淼:大家好,我是一名腾讯高级工程师,深入参与腾讯自研的Java协程Kona Fiber、Kona11上ZGC的优化。
您最初接触开源是基于怎样的机缘,有值得分享的趣闻轶事吗?
江莎:我一开始学习编程语言就与开源软件结缘。从操作系统,到开发工具,再到各种应用组件,所使用的几乎都是开源软件。在工作之余,我也参与过开源项目,甚至尝试着发起过自己的开源项目。后来,机缘巧合地加入了Oracle的Java Platform Group,这才算是深入地参与到一个著名的大型开源项目,即OpenJDK。从社区小白,到Author,再到Committer,直至最终成为Reviewer,一路走过,收获满满。再后来,又加入了腾讯Kona JDK团队,为中国的JDK发行版尽一份心力。熟悉的领域,不同的环境,更高的要求,更多的成长。
在这条开源的道路上,您遇到过最大的挑战是什么?有哪些印象深刻的故事可以跟大家分享一下?
江莎:OpenJDK作为一款平台型基础软件,它要求开发者不仅具备广博的领域知识,也对设计与编码能力提出了极高的要求。即便是工作在某个特定领域,也一直是在学习的路上。在参与OpenJDK开发的过程中,我感触最深的是社区内技术专家们严谨的工作态度。无论水平多高,资历多深,大咖们对产品代码,测试代码,甚至是文档的质量都是高度重视的。毋庸讳言,OpenJDK存在诸多的问题,但它的质量经受住了来自时间的考验。这在很大程度上得益于一支拥有在JDK上深耕十几年,甚至几十年的开发者的专业团队,这其中不乏从JDK 1.0就开始参与开发的超资深专家们。而这也正是中国技术团队,不仅仅是JDK开发团队,所普遍缺乏的特质。
#关于参与腾讯犀牛鸟计划
请您简单介绍一下您今年指导项目的安排,以及对项目成果有着怎样的期望呢?
江莎:在今年的腾讯犀牛鸟开源人才培养计划中,腾讯Kona JDK设定的主题是协程。协程本就是OpenJDK的一个前沿技术领域,Loom项目就是为了实现该特性而设立的。目前该协程实现已经进入了即将发布的OpenJDK 21中,这也将是一个新的OpenJDK长期支持版本(LTS)。而Kona JDK为了满足现实业务中对协程的迫切需求,独立于Loom项目之外,在Kona JDK 8和11上实现了名为Kona Fiber的协程特性。为了引导同学们由浅入深地熟悉协程实现,我们由易而难地设立了三个实战任务。同学们需要从Loom的测试程序入手以了解Kona Fiber与Loom的异同,然后开发新的性能测试程序以比较不同调度器的性能差异,最后将会尝试对调度器进行优化。希望同学们在完成各个任务的过程中,会逐步了解到协程的基本原理,Java协程实现的设计理念,以及Loom与Kona Fiber之间的优劣。
郑淼:本年度Kona的项目,主要分为三个阶段。第一阶段的任务是移植Loom的单元测试用例或JMH测试用例到Kona Fiber,目的是让同学们熟悉协程的基本概念、JDK的基本操作(编译、单元测试)以及JDK的性能测试工具JMH。第二个阶段的任务是用JMH测试协程在不同底层调度器、不同场景、不同版本的JDK上的性能表现,希望同学们掌握系统分析、优化基础软件的方法。第三个阶段的任务是修复第二个阶段发现的性能问题,希望同学们不仅能够发现问题,还能够正确、严谨的解决问题。
项目发展到今天,已经非常的成功。它大概经历了哪些阶段呢?目前的阶段和状态是怎样的呢?
江莎:腾讯Kona JDK的创立,是为了响应腾讯海量业务对安全可靠、性能卓越的JDK的日益迫切的需求。该项目起始于2019年。当年11月公布了Kona JDK 8,并很快帮助腾讯成为JCP成员,并获得了TCK授权。2021年3月公布了Kona JDK 11,同年11月又公布了Kona JDK 17。至此,Kona JDK支持了OpenJDK的全部三个长期支持版本(LTS)。Kona JDK与OpenJDK同步,每三个月会发布一次更新版本,包含安全修复与特性提升。而且,Kona JDK团队是一支卓越的JDK研发团队,拥有多名OpenJDK Reviewer,Committer和Author,专业领域涵盖编译器,运行时和安全等多个核心模块,其对OpenJDK的贡献量长期稳居世界前五。
项目实战阶段正在进行中,项目的开展是否顺利呢?在实战的过程中,学生们有遇到困难吗?可以分享一下您的指导经验吗?
江莎:任务实战正在如火如荼的进行中,大多数同学已经为第一个任务提交了PR,而导师们也已经一一作出了点评,同学们对于收到的评语也逐条作出了非常认真的回应。应该说,多数同学还没有遇到十分棘手的问题,他们遇到的只是代码中的细节问题。但也有同学由于Loom与Kona Fiber的实现差异,对某些测试程序的执行过程存在疑虑。同学们遇到问题,本身并不是坏事,鼓励他们参与更多测试,深入分析代码,以求找到问题的根因。即便最终没有给出解决方案,也有不小的收获,而导师们也能从中受益良多。
郑淼:项目的进展总体上是比较顺利的。对于同学们在实战的过程中遇到的一些问题,我的指导经验是,不同同学遇到的大部分问题都是相似的。因此我会先让同学们将问题发在一个公共的讨论群里,有的时候并不需要我的指导,其他同学就会抛出解决方案。另外,我会定期组织同学们集中讨论,解答同学们困惑,或者给出建议的分析方向,持续推动项目的进展。集中讨论可以让同学们了解彼此的工作内容,让大家以更全面的视角了解协程在各个方面的特点,使问题快速得到收敛。
腾讯犀牛鸟开源人才培养计划已举办至第三届,越来越多的学生参与到其中,您对热爱开源的学生们有什么建议呢?
江莎:参与开源项目是一个良好的学习途径,立足于自己的专业特长,并从兴趣出发,多几分踏实,少几分浮躁,相信同学们可以走的既深且远。
郑淼:建议同学们首先把计算机专业的基础课程理解透彻,比如操作系统、编译原理等等。开源里虽然有很多具体的项目,但是归根结底涉及的还是计算机的基础知识,如果有很好的基础、对计算机领域比较完整的认识,将来参与开源会非常得心应手。
#关于开源
您认为腾讯犀牛鸟开源人才培养计划于学生们来说意义在哪儿?
江莎:该计划为学生们提供了参与世界级开源项目的窗口,以及与众多富有经验且热心的“开源老兵”们零距离接触的机会。同学们从该活动中,不仅能习得技能,增长见识,还能直接地向开源世界贡献自己的力量,获得自己在开源“课程”中的“学分”。同学们可以将自己在课堂上所学的知识在开源项目中进行实践,而获得的项目经验在未来的求职与工作过程中也将是宝贵的财富。
郑淼:我认为这是同学们很好的一次实践机会。同学们可以通过参与开源,看到课堂上学习的基础知识是如何应用在工业界、产业界的。通过开源实践,既可以检验自己对课堂上知识的掌握程度,又能激发自己的学习热情,未来也可以持续在开源世界做贡献。
近年来,国内涌现出来了不少开源软件,您是怎么看待当下的开源现状呢?您觉得现在国内开源的发展态势会朝着一个什么样的方向发展呢?
江莎:回想近二十年前,中国开发者对待开源软件主要奉行“拿来主义”。而在近些年中,局面已经发生了颠覆性的变化。在许多著名的开源软件项目中都活跃着中国开发者们的身影,他们中的一部分还成为这些项目的核心成员。这种变化,部分原因是多年来产业界逐渐形成的自觉。但更重要的原因应该是中国产业水平在整体上有了巨大的提升,这对更高质量,更符合自身需求的开源软件产生了广泛需求。中国市场中特有的海量业务与海量用户所导致的海量数据与海量并发,使得很多开源软件的原生版本早已无法满足需求。那么,中国开发者们自然而然地就会向开源软件项目报告问题,提出需求,进而参与改进,最终在某些领域成为核心贡献者。我以为,只要中国的开发者立足自身,积极参与,开放包容,戒骄戒躁,就会形成更为丰富多彩的中国开源生态,且会促进更多的中国开发者们更好地融入到全球开源生态中。
面对中国开源市场,您有什么好的建议、寄语与大家分享么?
江莎:中国可能还是缺乏高质量的原创性开源项目,或者很多项目难获得长期有效的维护,以至最终未能发展壮大。而这类项目的发起与发展,仅依靠个别组织或个人几乎是无法实现的。还是希望来自于不同厂商和机构的中国开发者们能够怀着更开放的心态,团结一致,携手共建。另外,同样非常重要的,不仅开源软件的使用者们要尊重开发者们的知识产权,而且开发者们也要遵守开源社区的行为准则。我们不仅要以技服人,也要以理服人。