查看原文
科技新闻

姜宁两度当选 Apache 软件基金会董事 | 开源英雄

谷磊、李欣欣 CSDN 2023-07-27

【CSDN 编者按】全球开源蓬勃发展,但国际开源组织的高层里中国身影依然单薄。姜宁连续两年任 Apache 软件基金会董事,激励着无数开源人。从贵州凯里走出的少年,成为了连接国内开发者与 Apache 的桥梁。转眼 20 年开源路,姜宁仍在不停求索。

采访 | 刘韧,云算科技董事长、《知识英雄》作者、DoNews 创始人;李欣欣
作者 | 谷磊 李欣欣       责编 | 何苗
出品 | 《》编辑部

2022 年 3 月 3 号,北京,凌晨 3 点 15 分,姜宁的手机上收到一条消息。十几分钟后,他突然醒来,下意识地摸到手机,睡眼惺忪地点开微信,看到方越的留言“恭喜你当选 Apache 软件基金会(Apache Software Foundation,缩写为ASF)董事” ,姜宁彻底清醒了,“我很激动、意外,不知该说什么。” 随后,在 Apache 软件基金会博客的官宣中,他看到自己的名字“Willem Jiang”。在世界各地选出的 9 位 ASF 董事中,有 7 位连任,姜宁作为新任董事,是其中唯一的中国人。

时间倒回 2006 年,北京,海纳(IONA)亚太研发中心,姜宁和方越专职从事 ASF 的开源项目开发。“当时国内有 6 个人在做开源相关的事”“我能跟世界顶级的开发人员合作,得到很多帮助”“开源为我打开了一扇窗”。然而,两年后的年底,大家得知 IONA 亚太研发中心北京办公室即将关闭的消息,公司气氛沉闷。此时,已经在 Apache Camel 项目参与贡献半年的姜宁,收到晋升为 Apache Camel Committer 的消息,“我大受鼓舞”“内心很认可现在所做的事”。姜宁马上给同事 Debbie.Moynihan 写邮件,“也许你不是决策者,但我还是想请你帮忙”,询问是否有继续工作的机会。Debbie.Moynihan 回复“我不知道是否有可能”。姜宁没有得到肯定的答复,未来变得不确定。同事们陆续拿到补偿,另寻出路。姜宁很迷茫,“但不能表露出来”,他转念一想:我做的是有价值、有意义的事,也不用太担心。过年放假,姜宁忐忑地继续修 bug。3 月底的一天,他突然接到一个国外陌生的电话,“你愿不愿意继续做手上的事情?”“当然愿意!”,姜宁和方越留下来继续工作,居家办公还能兼顾家庭。当天恰是姜宁 31 岁生日,他很开心,也很珍惜当下。四年后,姜宁所在的 FuseSource 公司被红帽软件公司收购,他与离开 IONA 后加入红帽的 10 位前同事再次“会师”。

2015 年的一天, RocketMQ 创始人邀请姜宁担任 RocketMQ 的 ASF 孵化器导师(Apache Incubator),姜宁欣然接受。“当时,在基金会活跃的国内孵化器导师只有两个人,另一个人在创业,很忙,我正好有些经验,觉得有义务要帮助大家。”“没有报酬,对我是好的实习机会。”“我真正开始做孵化器 IT 支撑系统以及相关流程的对接工作”,在工作之余,他通过项目邮件列表了解 RocketMQ 的项目进展,通过回复邮件解决实际问题。接下来的两年,姜宁先后成为另外 4 个 Apache 项目的孵化器导师。在参与 RocketMQ 的社区建设中,帮助 RocketMQ 搭建持续集成 CI 系统,完善自动化测试系统,按照 ASF 的发版要求帮助项目做合规,降低开发者参与门槛……姜宁系统地掌握了 ASF 的开源协作流程。

2019 年,姜宁在 Community Dev 邮件列表中看到 Apache 本地社群的计划,他忽然发觉还有很多事可以做。随着越来越多孵化项目加入社群,建立本土开源社区的想法在他脑海里闪现。2020 年 2 月,姜宁发起了 Apache 北京本地社群 ALC Beijing(Apache Local Community Beijing),作为本土社区,“ALC Beijing 凝聚国内开源爱好”“成为连接 Apache 和国内开发者的桥梁”“ALC Beijing 的实际工作也为我日后竞选 ASF 董事打下了基础”。在一次 ALC Beijing 例会中,大家讨论未来 ASF 在中国发展的方向,Ted Liu 提议“应该将 Apache 的官方年度盛会 ApacheCon 带到亚洲和中国来”“华人应该有人进入 ASF 董事会”。姜宁在等待机会。

图1 2020 年 ALC Beijing 成立视频会议 

一次,阿里 RocketMQ 的同学来见姜宁,把吴晟也叫来一起吃饭。彼时,吴晟正在做 SkyWalking。“吴晟对开源很感兴趣”“我和吴晟早在 2016 年在蓝海讯通时就认识”,2021 年,吴晟决定竞选 Apache 软件基金会董事,而刚刚发起 ALC Bejing, 正筹备第二届 ApacheCon Asia 的姜宁,时间和精力有限,没参与竞选。2021 年 3 月,吴晟成为 Apache 软件基金会历史上首位中国董事。吴晟当选成功,某种程度上激励了国内开源圈的所有人。

14 年前,亚特兰大,姜宁参加首届 ApacheCon 北美峰会,在这座奥运之城,姜宁想到北京将在明年(2008)举办奥运会,就特意去会场边的奥林匹克公园感受一番,“什么时候 ApacheCon 能在北京举行?”“至少我们可以干一干吗。”ALC Beijing 成立一周年,姜宁带领 ALC Beijing 成员继续承办第二届 “ApacheCon Asia 2021 ”大会。筹备之时,ASF 中国社区的自发力量开始显现,大家一起拉赞助,小伙伴们各显其能承担重任,事无巨细的会议筹备过程让姜宁觉得“ALC 的十几个小伙伴挺给力”“办会付出很多,但收获了更多经验。”“在办会过程中,很多事情慢慢推动起来了”……近 200 名演讲者提供了 140 场会议,13 个主题演讲,14 个分论坛,吸引了约 30.7 万名观众参加会议,当 ApacheCon Asia 会议报告提交给 Apache 软件基金会后“大家很满意”。

有了成功举办 ApacheCon Asia 的经验,姜宁开始筹备竞选 Apache 软件基金会董事。2021 年 ApacheCon 北美峰会上,姜宁代表华为公司做了一场 13 分钟的主题演讲,分享了他的开源经历:“我的 Apache 软件基金会贡献之旅始于 2006 年,成为基金会 Member 至今已有 10 余年。帮助了 10 多个孵化的开源项目。”“如果能够成为董事会的一员,我希望能够帮助 ASF 打破地域、文化、语言的障碍。”“我希望可以成为 ASF 和本地社区之间的桥梁,而不仅仅是为项目孵化提供 ASF 的指导。”写完 1000 多字的英文竞选宣言后,姜宁打开邮件,把自己竞选宣言放进邮件列表中,点击发送。姜宁很忐忑“不知道结果会如何”。

2022 年 3 月 2 日,Apache 年度成员大会(ApacheCon)正通过 Freenode 的 IRC(Internet Relay Chat)举行,会议全程敲英文交流、数百位成员进进出出、IRC 机器人自动回复、参会人的提问此起彼伏,董事会的成员敏捷作答……英文句子不断在屏幕上翻滚,像源源不断的数码瀑布,让人目不暇接。上半场结束时,在 20 位提名者中选出了 15 名董事候选人:原董事美国人 Rich Bowen、上届董事瑞士的 Bertrand Delacretaz、德国工程师 Christofer Dutz……姜宁……

随后休会,紧接着,世界各地的 Apache 成员开始在 Apache STeVe 上,通过邮件列表查看候选人的履历和贡献,并投出自己的选票。46 小时后,投票通道关闭。IRC 恢复了实时会议,大会主席宣布董事会选举结果,姜宁成功了。“我能当选,与我发起 ALC Beijing,并且带领大家成功举办 ApacheCon Asia 会议有很大关系。因为我向大家展示了自己在 ASF 社区的影响力和领导力, 而这些都要靠我在 ASF 日常点滴贡献积累起来的。”

每个月第三周的星期三,都会召开 ASF 月度董事会,姜宁与其他 8 位董事及基金会相关的工作人员一起,讨论各项工作的最新进展,审核约 70 多个项目报告,就重大事件进行表决。基金会同时运作 300 多个项目,每个都有自己的项目管理委员会(PMC),大多数项目通过自治方式进行管理。当项目遇到 PMC 无法处理的问题时,项目 PMC 会向董事会发送邮件求助,或在项目报告中反馈问题。董事会则及时商议解决方案,提供相关指导。

Apache 软件基金会董事会每年举行一次选举。2023 年 2 月,姜宁再次竞选,比起第一次竞选,有了一年董事经验的姜宁“轻车熟路”。姜宁写下竞选宣言“我有信心为董事会带来独特而有价值的观点”“我看到有些因为缺乏社区支持而被迫退休的项目……需要强调社区参与、透明度和最佳实践,以确保 ASF 项目得到良好的支持和维护,并能长期满足用户的需求。”“我带领 ALC Bejing 翻译了 ASF 的开源治理政策……在成功举办了两届 ApacheCon 亚洲在线峰会之后,计划今年举办一场线下会议”“我将进一步推动科技公司参与上游社群并做出贡献,推进 ASF 项目与新鲜血液进行良好合作,共同解决大家面临的技术问题,打造一个双赢开源生态环境。”

Apache 的董事竞选计票规则是一套复杂、严密的算法,需要机器跑程序进行唱票计算。“在进行的几轮投票中,排名靠前的权重稍大,胜算率越高,经过几轮计算,慢慢地,得票多的人会浮现出来”“若想胜算大,投票排名靠前获得投票越有利,因此,让大家认可你,了解你对社区的贡献尤其重要”。

姜宁认为参加 Apache 董事竞选对开源布道很有帮助,也能为本土项目做更多贡献,增加中国开源发言权。在中国从事和推广“开源” 17 年来,姜宁看到:国内开源开发者每年有近 300 人加入 Apache Committer 队伍,占全球新增人数的 40 %以上,但目前成为 Apache Member 的中国人只占 Apache Member 总人数的近八分之一。

图 2  2019 年 Apache Committer Shanghai  Meetup 

2023 年 3 月 10 号,北京时间凌晨 4 点,Apache 召开年度全球成员大会,当 Apache 董事名单揭晓时,姜宁连任。


三线厂里的童年 

弟弟喜欢大自然,爱到处跑,姜宁却对这不感兴趣,他能安静地搭一下午积木。


1978 年,贵州凯里县(今凯里市),姜宁出生。爸爸是浙江温州人,20 岁毕业于杭州电子工业学校,1969 年被分配到贵州,一直在凯里华联厂工作。1000 多职工的电子厂地处山沟,是直属电子工业部的国企,主要生产军工产品,有火箭发射器开关,民用的电风扇、收音机等。妈妈是当地人,15 岁进厂当了工人。姜宁出生时,正是改革开放初期,爸爸有事业心,妈妈善于持家,一家人互相扶持,日子过得比上不足,比下有余,“爸爸每次给妈妈的钱,她都存起来”“爸爸经常往他老家寄钱”“妈妈从没让我和弟弟饿过肚子”。

逢年过节,爸妈单位会发各种生活用品,带鱼、各种新奇的罐头、可乐和雪碧……姜宁总是美美地享受一阵子。工厂的职工来自全国各地,姜宁的玩伴也来自五湖四海,从幼儿园到中学,相伴成长,感情真挚。伴随着改革开放而来的是回城潮,工厂的效益每况愈下,逐步走向没落。

图 3 姜宁幼年

姜宁 1 岁时,弟弟出生。跟弟弟几乎同岁的姜宁搞不懂,他和弟弟没有什么差别为何要处处让着弟弟?弟弟也搞不懂,为什么要听个头相近的哥哥的话?弟弟经常不服气,姜宁就动手“制服”他。等到上学后,姜宁的成绩更好一点儿,调皮的弟弟自然挨打更多。

妈妈工作忙,爸爸就去接兄弟俩放学,可爸爸提干成为车间主任,经常加班,就总是拖到最后来接兄弟俩,幼儿园老师决定治治爸爸,让他长记性,老师让姜宁和弟弟放学后都躲起来,等爸爸到了,怎么都找不到他们……爸爸这才明白,以后要准时来接孩子。从厂里骑车到幼儿园十多分钟,一次,爸爸下班后,匆忙赶路去幼儿园,没注意路正前方有晾衣绳,被绳子绊倒,从车子上摔下来,伤得很重,只好请假在家养伤。

姜宁从小被放养,父母不会总盯着他学习,放学后,姜宁常去外面转一圈再回家,写完作业后,姜宁也随时出去玩。一年级,姜宁放学早,不用等父母来接,他脖子上挂着家里的钥匙,先去幼儿园接弟弟,再一起回家。一天中午,弟弟不想去幼儿园,软磨硬泡要跟着姜宁去学校,姜宁只好把他带进教室,被老师发现后让姜宁送弟弟去幼儿园。走到半路,弟弟央求道“我不想去幼儿园,想在外面玩儿”,独留弟弟在外“放羊”的姜宁非常担忧:万一要出了事可怎么办啊?于是一放学就赶快去找弟弟,“我当哥的,应该对他负点责任”。

图 4 姜宁小学 6 年级

一次,下午学校停电,晚上到家后家里又来电了,已是班干部的姜宁突然想起学校教室的灯没关,可能还亮着,又跑回学校关灯,爸爸得知,赞许地说:“当班干部就应该有责任心”。姜宁学习好,常辅导弟弟,时间长了,弟弟有压力,觉得活在他的“阴影”下,不是特别听他的话。姜宁考上了大学,弟弟才意识到“家里有资源为什么不好好利用”,就主动找姜宁求教。姜宁发觉“弟弟对我跟之前大不一样”“感觉他开始崇拜我了”。


计算机竞赛失败 

没有拿到计算机竞赛的名次,带队的潘老师也没说啥,还请大家吃饭。


三线厂的子弟学校可以从小学上到高中,这里教育资源有限,所有的教学都在课堂上完成,没有课余辅导班和兴趣班,若想学到课本以外的知识,很困难。学生都是厂里的子弟,小学有两个班,共 60 人,初三约一半学生选择中专或技校,到了高中,只剩一个理科班。一次,姜宁从新华书店买到一本辅导书,里面的题比课本难度大,讲解得很好,从中学到了额外的知识,姜宁如获至宝。

初二,潘老师得知隔壁振华二中要办计算机竞赛,为此组了一个暑假集训班,潘老师问“有没有人愿意去学计算机?”姜宁和另外两个同学被拉入集训队,在潘老师的带领下,把一本 BASIC 的书过了一遍,竞赛备战各有分工,一个女生专门练习打字,其他人负责编程。等进了比赛的机房现场,大家原以为是团队协作作战,结果需要每个人全流程操作一遍,“我们都抓瞎了,除了那个女生,没有人练过打字……”意料之中,他们当然没有拿到名次。竞赛虽然很惨,但姜宁提前接触到本是高中才学到的 BASIC 语言,尽管懵懂,兴趣的种子已悄然种下。参加完计算机竞赛的姜宁缠着爸爸,要用压岁钱买中华学习机,妈妈托熟人打折,最终花了 600 多元,这让姜宁攒了很久的压岁钱一下子被掏空。他用一本小册子记程序,还买了书自学,等到高中,学校开了计算机课,姜宁已经俨然成了“小老师”,可以指导同学。

没上过奥数辅导班的姜宁还去考了华罗庚杯,做题时“感觉脑子根本不够用,只能解普通的题”。初三,姜宁对物理也感兴趣,心里揣着一个参加物理竞赛的目标,没有老师辅导的他,从旧书摊买来高中物理书,囫囵吞枣地自学一遍。“回头再看,有一个环境,能跟外界建立链接,扩大视野,找到自己喜欢做的事,持续做,何时开始都不晚”“那时同学们的条件一样,没有额外‘加餐’途径,反而是在同一个标准下被筛选,不抢跑,蛮公平”。


妈妈送我上北航

姜宁收到北航通知书,全家喜出望外。妈妈想送姜宁去北京,从凯里到北京千里迢迢,路费难住了妈妈,舅舅得知,便从刚卖掉榕江县老宅的钱里拿出 1000 元,送给妈妈当路费。姜宁买了两张去北京的硬座票,有一张是凭录取通知书享有的半价票。


整个高中,姜宁和两位女生轮流拿全班第一,高考总分也和其中一个女生一样,原本想按爸爸愿望报浙江大学的他,拿到了北航招生老师发的推荐表,在得到过了学校高考提档之后,可以提前选择专业的保证后,姜宁报考了北航计算机专业,被顺利录取, 那位女生最后被北大录取。1996 年 8 月,贵州开往北京的绿皮火车上,姜宁和妈妈坐在一起,去北大的女同学和她爸爸坐在一起,车窗外的风景在眼前飞驰而过。姜宁和妈妈都没有去过北京,只知道北京有天安门,一想到就要到北京了,两人有点兴奋。火车上的时间很漫长,四个人有时闲聊:“听说北大和清华很近”,不知道“北航离北大有多远?”……姜宁回想起妈妈含辛茹苦带大他和弟弟,付出了很多……又想到,所住的厂被山峦包围,视野总是被层层山峦挡住,初中时有一阵子,就特别想走出去看看,但除了回老家,也没有其他的机会,如今“终于可以走出大山了”……火车轰隆隆,坐了两天一夜,把姜宁和妈妈带到了北京。当晚,一行四人投宿在厂里的驻京办,第二天一早,姜宁和北大女生分道,去了北航报到。

到校后,姜宁得知有的江浙、山东同学能考 600 多分,受到的冲击很大,“在贵州,考 600 多随便去清华”。和同学细聊后,姜宁发现他的“高中老师没有灌输刷题和考试技巧”;在计算机水平上,姜宁也触动不小,“有的新生已学会了 C 语言,我当时还没有自己的计算机”。姜宁倒也平常心,“我当时没有这些好的条件”“依靠自己学,慢慢拉平差距吧”。

习惯了大学生活后,姜宁在学习之余总想做点什么。一次,他看到一则招聘广告——北航给南航做定向培养的飞行学院的机房要招实习生。姜宁“什么都不会”但“还是去面试了”,北京冬天的大风猛烈,几乎“要把人刮走”。面试时,姜宁不知道应该聊什么,结果“人家也没看上我”,失落地回来了。后来,姜宁找到一个教 5 岁小孩学计算机的家教,断断续续地教了一个月,赚到了近千元。暑假,姜宁回了趟老家,再次回京后,姜宁带了小礼物去小孩家拜访,希望继续接这个活儿,却一直没等来消息。


实习 

大三,有的同学拿到了保研或留校的资格,姜宁有点焦虑。


1998 年暑假,IBM 中国研发中心,姜宁正测试搜索引擎,他搜索动画片《丁丁历险记》的主人公丁丁的图片,又搜了几张其他图片,初次接触互联网,姜宁玩儿得不亦乐乎。随后,他去茶水间冲了杯雀巢速溶咖啡,粉倒多了没有冲开,他不敢倒掉,先喝了一点,再把剩下的慢慢喝完,“其实口感不怎么好。”这次是辅导员安排姜宁的实习,公平起见,班里的同学在暑期会轮流体验一天实习,每人给 168 元,赠送一支笔。

姜宁逐渐意识到以往的实习,自己没能把专业知识运用起来,人际交往方面也有欠缺,他想弥补这些短板。 

大三可以进实验室了,姜宁被分配到一个实验小组,帮一位学姐处理系统报表。由于工作很出色,大四实习时,学姐推荐他进了国家软件开发环境重点实验室。碰巧另一位同学也在为这个实验室到处找人,也推荐了姜宁。不久,姜宁考上国家软件开发环境重点实验室的研究生。

研一,姜宁和同学被派到海南联通,做短消息转发的网关,实现短消息对等协议(SMPP)。大家各有分工,都没有接触过 AIX(IBM 的 Unix 服务器),直接用 C 语言来写。也会与北京的短消息网关做联调,进行技术沟通,交流对 SMPP 协议的理解。姜宁发现“我们在海南联通用 C 语言写的代码没有分层隔离的设计,一旦出了问题,需要在各个模块中修改联调,而北京的短消息网关用 C++按照面向对象的方法实现,后续的升级维护特别方便。”这让姜宁一下子明白了架构设计和软件工程的重要性。

图 5  2001 年在海南联通刚刚做完项目,游三亚 

1998 年,微软研究院在北京成立,曾来到北航的实验室做交流,不久又在北大开了课。姜宁和同学扛着实验室摄像机去北大听课,有点辛苦,可拓展了视野,“原来还可以这样做学术”,“我们属于应用型硕士,更多时候是下场实践。”他开始主动接触专业领域的最新知识和消息。

研二有空时,姜宁就到处学新东西。在《电脑报》上看到 XP Extreme Programming(极限编程)、TDD 等最新技术,他立刻就学,又买了合订本,在火车上也来回翻看,爱得不行。《程序员》杂志也给他打开了一扇窗,纸媒成了他获取一手信息的重要渠道。接触的东西一多,姜宁就开窍了:上网能获取很多新东西,也能看出和别人的差距。

毕业设计,姜宁想通过开源项目搭“实现短消息网关的管理”系统,在谷歌找到 OpenNMS(一个开源网络管理系统),把里面一些核心监控指标提出来,用于自己的研究项目。OpenNMS 开源软件是用 JAVA 写的,阅读几万行优美代码对姜宁帮助很大。

读研时,姜宁每月有 500-600 元补助,爸妈每月给 300 元生活费,姜宁还能攒下点钱,他偶尔叫弟弟来北航玩儿,还能给弟弟些钱。2003 年,姜宁研究生顺利毕业,去了中国民航信息网络股份有限公司。


初遇开源 

从 ASF 项目的 Initial Committer 到 ASF Member,姜宁用了 6 年时间。


2003 年,中国民航信息网络股份有限公司,上级派了项任务,姜宁正敲着代码实现具体功能。他的日常业务是用 C++写一个通信服务程序,“在这里,每个人独立开发、维护自己写的那块代码”“只是没人关注代码写得是否整洁,是否易于维护” ,好的代码不会马上得到反馈,要到上线那天(一个月后)才知道能否在新系统上正常工作。每当上线或发版时,姜宁都会坐立不安,“如果程序出现问题,大家要熬夜做紧急修补。”

国企工作时间相对宽松,为提升技能,姜宁开始研究一个跨平台的网络编程开源项目 ACE(The ADAPTIVE Communication Environment)。姜宁的技术实力在单位毋庸置疑,但国企的晋升只论资排辈,姜宁一直积极性不高。一次 IBM 到航信推广 SOA 架构,他负责对接实际的业务落地,在对接 SOA 咨询过程中,姜宁感到外企做事风格不同,凭能力说话,他心动了:“干嘛不去外企?”考虑再三,姜宁从航信离职,跳槽到一家爱尔兰企业——海纳(IONA)亚太研发中心。

2005 年,北京海纳亚太软件研发中心(IONA 科技公司),面试官提出极限编程问题后,姜宁眼前一亮:我在《电脑报》上看到过这个!很快就答出来了。随后考核难度增加:根据题目写出 TDD(测试驱动开发)。这是细活儿,姜宁静下心,有节奏地敲代码,测试。“以前只是研究,今天是初次实现这些东西。”海纳要成立一个六人小组,专门做 Celtix 的 JAVA WebService 的开发,经过一个多小时的面试,姜宁顺利拿到 Offer,成为小组一员。

西二旗办公环境敞亮,爱尔兰总部派来的经理,带着大家做结对编程,指导大家做持续集成(CI),姜宁接替同事,维护一个性能自动化测试的框架代码。不久,代码管理平台从商业的 ClearCase 转换到 SVN(Subversion)版本控制系统。因为 SVN 系统采用的是代码信息服务器集中存储,推行对单主干开发提交代码之前,需要大家在本地刷新到最新的主干代码,解决完冲突之后才能提交成功,而开源社区项目往往采用是先提交再评审的方式进行开发,代码的评审是通过直接回复修改记录邮件的方式来进行反馈。为避免被动,姜宁抢占先机,快速地完成代码编写,提交到主干,可不幸的是提交的代码被资深程序员回复 -1,并指出了很多问题,这意味着要被回退,修改合格了才能再次被提交进代码库。开源代码会面对公众的检验,因此要展示出最好的代码质量。这次教训让姜宁的编程能力飞速提升。“之前写代码,没太在意格式问题,语句赋值上的疏忽也会导致系统报错”,姜宁全然改进,很快达到了一次就过的水准。

半年后,Celtix 和另一项目 XFire 合并,组成 CXF 服务引擎,进入 Apache 做孵化。在海纳把 CXF 捐献给 Apache 之前,姜宁成了 Apache 软件基金会的初始成员(Initial Committer),拿到了 Commit 权限,这对他来说极其难得,“公司雇佣你做开源的机会太少了。”

此时海纳(IONA)正寻求转型,收购了 Apache ActiveMQ 的创业公司 Logicblaze FUSE 。在集成 Apache CXF 项目时,姜宁作为核心人员之一,想参与更多 ASF 项目的开发,就开始接触 Apache Camel。他老老实实按照 CXF 中的“ Getting Involved ”提示,熟悉着 ASF 的工作方式,在开源社区不断积累自己的信誉。

图 6  2010 年 Apache 上海路演, 方越、Niclas Hedman、姜宁  

姜宁在参与 ApacheCamel 开发之初,有贵人 James Strachan 相助,他是 Apache Camel 创始人,Groovy 语言发明者。每隔十年,James 会发起一个引领潮流的项目。此时国内开源环境尚未形成,James 带着姜宁开拓了许多新技术,成了他的开源引路人。后来的故事,我们在文章开头已经知道了,姜宁幸运地留在 IONA,继续做自己喜欢的开源项目。尽管 IONA 经历了裁员、被收购等起伏,姜宁在 Apache 开源之路上却走得很踏实。 


版权风波 

姜宁正跟华为领导汇报工作,他提到自己曾给阿里当孵化器导师,领导警觉地问“拿没拿钱?”姜宁说“没钱”,领导松了口气“好,那就安全了”。华为公司不让员工做第二职业。


2017 年,华为的项目想进入 ASF,辗转找到姜宁,刚从红帽(Red Hat)出来的姜宁此时在手头的几个工作机会中举棋不定。早在 2008 年,姜宁与华为有过一次交集,为华为做 ESB 编写 POC 程序,“华为有规定不让带计算机进办公楼”,姜宁只能在华为坂田基地 F 区一个食堂里编写调试 POC 程序,白天代码写完,把代码刻成光盘,姜宁才能携带光盘进办公楼里测试,那是姜宁第一感受到华为的管理风格,令他印象深刻,姜宁隐约觉得这种工作环境与自己热爱自由的天性不符。

9 年后,当华为向姜宁抛来橄榄枝时,姜宁有了更现实的考量。“华为这个职位大部分时间可在北京办公,能兼顾家庭,也缓解了我的房贷压力。”“华为提倡并受益于开源共享,给了我契合的发展环境。”“华为提倡受益于开源共享,给了我契合的发展环境”。姜宁成为华为的开源技术专家,开始帮助推广 Apache ServiceComb。

图 7  2018 年姜宁在华为期间 

2018 年初,华为开源能力中心,正在工作的姜宁忽然收到一个消息,go-micro 的作者 Asim 前来讨要说法,华为服务框架的 Go 语言版本(go-chassis)使用了 go-micro 的部分代码,但没有按开源许可证的要求作好声明工作。经过一番沟通,ServiceComb 团队立即修改了代码,并得到了 Asim 的认可,这才告一段落。事情到这里似乎已经解决。 

但消息传到国内,没想到根本没人关心事情的经过,大部分人都盯着华为没做什么,以此发泄情绪,事情演变成了华为抄袭事件。即使是中立观点,也被指是在为华为开脱。有口难辩,姜宁选择了沉默,默默做好手头的事。整个项目的开发节奏被打乱,最终,GO 语言部分的微服务框架代码没有进入 ServiceComb 代码群。 

事实上,在项目正式开源之前,所有自研代码都会用工具进行查重审查,以确认代码是否符合规使用,但工具不能识别所有的问题。姜宁深感开源布道的重要性,“版权意识,是每个开发人员都要具备的”“合规使用开源项目代码,避免片段化引用第三方代码才能彻底解决这种问题”。

在华为的前两年,姜宁主要给 ServiceComb 项目做运营推广,把这个项目推到了 Apache 软件基金会后“顺利毕业”。 “华为的人都善于学习”“这是一家有深刻市场洞察力的公司,有很强的信息收集能力,组织能高效地捕获业界热点。”“给领导做汇报是一项重要的工作,要化繁为简地把业界好的实践传递给领导。”第三年,姜宁和同事们一起把 Apache Camel 引入华为云项目做集成,还没看到成果,姜宁回到开源能力中心, 在华为成立可信实验室后,姜宁开始参与内源宣传布道的工作。2023 年 3 月,姜宁加入字节跳动公司,作为开源布道师,把自己在 Apache 软件基金会的开源项目运作经验传递给字节的开发人员。

如今身为 Apache 董事的姜宁,工作内外,时常以催化剂和变革者的角色,打破文化和语言等造成的障碍,帮助 Apache 董事会和中国开源圈共融共进。

关于《开源英雄》



《开源英雄》是由 CSDN 创始人&董事长、极客帮创投创始合伙人蒋涛发起,中国著名 IT 记者、DoNews 创始人刘韧领衔,CSDN、《新程序员》联合出品的专访栏目。通过开源开放的 CSDN 写作班,深入访谈全球顶尖开源人物,为广大开发者传递更多、更高质量的信息,透过他们的人生及成长寻找共鸣、共舞开源世界。


自栏目推出至今,我们专访了 Vue 作者尤雨溪、LVS 创始人章文嵩、Linux 内核守护者吴峰光、中国 Linux 第一人宫敏、小米开源奠基者崔宝秋、Caffe 作者贾扬清、Apache 软件基金会董事姜宁,如果你有想让我们报道的开源人物,欢迎在 GitCode 上提交 Issues 或 PR。


地址:

https://gitcode.net/programmer_editor/Open-Source-Heroes

推荐阅读:

微信可以批量删除好友;谷歌、微软等达成合作,致力于负责任地开发人工智能;苹果我的照片流服务关闭|极客头条

月薪8k-17k比例下降、每日写不足300行代码、拒绝加班,2023 中国开发者调查报告出炉!

突发!OpenAI 骤然关停 AI “打假”工具,官方承认:准确率过低

粉丝福利:

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存