写点什么

90 后开源老司机徐亮:从大学开始全职做开源是一种怎样的体验?

  • 2021 年 8 月 31 日
  • 本文字数:4649 字

    阅读完需:约 15 分钟

90后开源老司机徐亮:从大学开始全职做开源是一种怎样的体验?

“如果你有正确的态度,有趣的事情自然会找到你。”

 

Eric S. Raymond 在被奉为“开源运动独立宣言”的《大教堂与集市》一文中,总结了 19 条在开源开发中非常有用的理论,上面是其中一条。开源项目总会在不经意间升级,参与者可能最初只是做一些小打小闹的贡献,后来逐步维护越来越重要、越来越多的代码,甚至是负责整个程序。在一个鼓励代码共享的软件文化中,这是一种很自然的项目演化方式。

 

徐亮在开源社区的经历也遵循着同样的演化路径。从一开始因为兴趣入圈、负责翻译工作,到后来成为UbuntuDebian资深官方开放人员,甚至把开源变成一份全职工作,今年已经是徐亮与开源结缘的第 12 个年头。

 

徐亮,摄于河北丰宁坝上草原

“年轻的开源老司机”


作为一名进入开源圈子已超过 10 年,有丰富开源社区经验的“90 后”,徐亮接触开源的契机来自他对于计算机的浓厚兴趣。用徐亮自己的话说,“左玩玩右玩玩,比较偶然地遇到了 Linux 操作系统,然后就走上不归路了。”

 

徐亮读初中的时候,每个班级的教室里都会有一台装了 Windows XP 系统的中控电脑,主要用来给老师上课播放 PPT,当时徐亮和几个朋友的一大乐趣就是折腾这台电脑。后来大家觉得 XP 系统太无聊,开始到处寻找新玩具。徐亮“斥巨资”在电脑城买了一套经典的 Red Hat Linux 9(Shrike)光盘,一共六张 CD,其中 3 张都是源代码盘,而源代码盘其实一般都用不上,卖家只是很忠实地把官网提供的东西都刻出来了。一直到现在,徐亮都觉得这事“很坑”,因为“浪费了非常多零花钱”。

 

换着玩了几个不同的 Linux 发行版之后,徐亮开始重点折腾 Ubuntu。在玩的过程中,徐亮发现操作系统的汉化非常不完整,就顺着源代码中留下的译者联系方式接触到了当时国内负责 Ubuntu 操作系统翻译的小圈子,并在侯正鹏的引荐下加入 Ubuntu 社区,从软件翻译开始实际参与到开源社区工作中。

 

那时候还是 2009 年左右,在国内搞开源社区的人只是一个不大的圈子,搞翻译的人更少。很多“老人”已经背着翻译的职责好多年,彼时刚刚入圈、还是个高中生的徐亮于是成了“继任者”。他慢慢接手了翻译的职责,并在 2012 年左右成为了国内好几个大项目唯一的翻译负责人,直到今年他才找到可以接替自己的人。

 

在扛起 Ubuntu 简体中文翻译大旗的同时,徐亮也更深入地参与到了各种社区活动中。当时 Ubuntu 的商业发行公司Canonical每年都会在国外组织开发者大会,并邀请 Ubuntu 社区里比较活跃的社区用户代表参加。徐亮也得到了一次参加开发者大会的机会,借此接触到了 Ubuntu 社区开发人员,并从打包工作开始逐步做一些开发相关的工作。

 

2011 年,徐亮正式成为 Debian 的开发人员,两年后,他又申请成为 Ubuntu 的核心开发人员,并得到了进入 Canonical 公司工作的机会。


 

Ubuntu wiki 上徐亮个人介绍页面中的推荐人感言,第二位和第三位推荐人分别是侯正鹏和李道兵,他们也是国内操作系统开源社区的早期参与者(来源:https://wiki.ubuntu.com/AronXu

全职做开源是一种怎样的体验?


Ubuntu 有几个官方特色版本,优麒麟(Ubuntu Kylin)是其中之一。

 

2013 年,中国工信部软件与集成电路促进中心、中国国防科技大学与 Ubuntu 的商业发行公司 Canonical 在北京联合创立“CCN 开源软件创新联合实验室”,优麒麟正式创立,第一个版本随 Ubuntu 13.04 同时推出。这是一个针对中国市场特色的基于 Ubuntu 的操作系统,也是 Ubuntu 的官方中国版本,专注服务中国市场。优麒麟不仅实现了语言本地化,还在 Ubuntu 原版基础上增加了众多中国特色应用,如原创的 UKUI 界面、内置中文输入法、集成 WPS、网银支付等。

 

同样在 2013 年,那时还在上大二的徐亮正式加入 Canonical 公司全职做 Ubuntu 主线版本研发,主要负责输入法、network-manager 和 ZFS 三块。他既是优麒麟开源项目的核心开发者,也是搜狗输入法 Linux 版的主要开发者。

 

在 Canonical 的工作一直持续到 2017 年 5 月,之后徐亮短暂尝试了一段时间的创业。2019 年,在与华为持续沟通 9 个月之后,徐亮加入了华为开源能力中心。

 

据介绍,华为开源能力中心是一个公司级别的开源能力部门,主要负责公司内部开源管理、内源开发、整体开源知识体系架构的构建等,同时也为产品线提供包括运营能力和技术能力的支持。如果说业务线做的是 N,那么开源能力中心负责的就是 N+1、N+2 的部分,比如承担业务线尚不具备的能力建设,包括整体的开源合规体系管理等。

 

那么,跟有自己的本职工作、用业余时间做开源相比,全职做开源的好处是什么?在徐亮看来,全职做开源会让自己有更多的时间和精力思考开源这件事情、在社区里做出更多贡献,同时公司也会提供更好的资源和平台;兼职做开源则主要凭兴趣爱好,可能投入的时间精力以及能动用的资源相对来说比较有限。但徐亮认为全职做开源不一定适合所有人,当兴趣变成职业,到底是好事还是坏事,结果本身也因人而异。此外,全职做开源也有不是那么好的一面,有时候可能会错失一些接触更先进的技术的机会。“虽然开源是一个很好的协作模式,但不代表每时每刻开源的东西都是最好的、最先进的。”

 

徐亮表示,如今开发者想要把做开源变成全职工作的难度相比以往已经小了很多,但仍然不是每个人都可以做到,毕竟开源开发不管在国内还是国外所占的比例都非常有限,目前在大公司做开源可能相对比较容易一些。

 

除了需要公司提供相应的岗位之外,全职做开源对于开发者个人的学习能力、沟通交流能力也提出了更高的要求。因为需要沟通的人不再只是身边的同事,要学习的东西也不再局限于在公司里做的项目。与此同时,由于代码开放、人人皆可参与,随时可能会出现一些意外情况,比如突然有一个技术很牛的人看不惯来“砸场子”,这类事情在开源圈里已经发生过无数次,徐亮自己早期也经历过类似情况。虽然很多时候这种踢馆并非出自恶意,但依然会给被踢馆的一方带来极大的压力,如何跟进沟通和处理,对个人的挑战非常大。

开源终要回归理性


当下,开源在国内可以说是前所未有的热度空前。不仅很多企业大力投入,连高校学生在找工作的时候也会拿自己的 GitHub Profile 去展示自己参与过哪些开源项目、写过什么代码。越来越多企业和个人重视开源、参与开源,对开源在中国的发展肯定是件好事,但同时也有人担心,很多企业和个人抱着“开源为我所用”的目的参与进来,会导致开源这件事掺杂过多功利心。

 

在徐亮看来,不管是抱着什么样的初衷和目的参与开源,最终还是要回归开放代码、协作分享的本质。“有人的地方就有江湖,一直以来国外的开源圈子很大程度上也是公司之间的一个商战场所,现在开源在中国的发展并没有违背这一点。所以并不是说开源本来不是这样、现在变成了这样,只是以前在中国大家还没有参与进来而已。”

 

徐亮认为,开源一派火热背后的隐忧在于,当前国内参与开源的人很多,但不同事情投入的精力分配并不完全合理。比如,做开源运营和治理的与真正做开源技术的人数比例就有些失衡。

 

其实国外已经有很多开源社区和组织的经验可以借鉴,因此制定开源准则等治理工作并不需要太多人。只不过现实情况是,国内可能基于对形势的合理考虑,什么都希望有自己的一套,包括自己的许可证、自己的社区、自己的社区行为准则、自己的治理架构等等,过程中会涉及消化吸收其他开源社区的经验,就导致这变成了一件高度专业化的事情。从这个角度来看确实缺少一些能够很好地理解和解读现有社区做法的人。

 

但是从开源本身来讲,更重要也更需要的是真正参与项目开发和贡献的人,包括开发、测试等等。可能再过几年,中国开发者整体水平更高了,大家不再需要那么多条条框框去约束,类似“自建一套社区治理架构和流程”的需求就会减弱。基于徐亮参与 Ubuntu/Debian 社区的经验,很多时候一个几千万行代码的开源项目并不需要一套特别形式化的治理体系,也能够运作得很好(甚至反而运行得更好),如果在社区参与者还不够丰富的时候就先建立起一套治理体系,反而可能会产生一些掣肘。

 

此外,过去几年国内一些头部企业的开源工作屡屡引发争议,比如被批“刷 KPI”、“PPT 开源”等等,徐亮认为这也是因为大家太重运营。确实,开源有帮助企业构筑生态、打造影响力、建立事实标准的能力,但要“徐徐图之”。如果运营走在前面,就会出现“发声在前、贡献在后”,或者不贡献,或者贡献得一团糟;同时也会导致企业内部出现不好的导向,可能今天公司说要做开源、在行业构建影响力,然后一下子所有人都在搞开源,各种 KPI 就出来了。

 

当然,这背后也有社会环境和氛围的因素。中国加入世贸后这十来年一直处于经济高速增长的阶段,导致大家更愿意赚快钱,当下国内软件行业整体也会比较浮躁,企业对开源的规划更倾向在短期的一两年内见效,而不是慢慢做十年二十年。但徐亮认为,浮躁不会一直持续,中国的增长速度总归会慢慢回落,未来整个软件行业(包括开源在内)都会慢慢趋于理性,变得正常化。

 

“当所有人都重运营,争相去抢事实标准的名头,可能中间花了几年时间和很多的钱,最后大部分人都没尝到甜头,因为事实标准就那么几个。这就会倒逼他们去反思这件事这么做到底对不对。国内软件开发的积累与国外还有差距,如果不依赖开源可能技术要倒退十年。所以企业还是不得不参与到开源里面来,但未来可能会更理性地参与。对自己有价值就参与,代码不想永远自己本地维护同时又不影响核心竞争力的就回馈给社区,这就是一个很正常的开源使用管理和贡献的方式,不是所有事情都一定要搞得轰轰烈烈。”

写在最后


很多时候在开始做一件事之前,并不需要多么坚定的信念或崇高的动机,只要怀抱一点好奇心开始去做,事情自然会在做的过程中变得越来越重要。徐亮参与开源的经历也是如此:因为好奇心驱使而开始,又因为认可开源理念和开放共享的文化走到现在,更多是一个“顺其自然”的过程。

 

好奇心同样影响了徐亮在开源和职业道路上的一些选择。他决定加入华为有一部分原因是因为想要看看在这种全球国际关系动荡的时候,华为内部会发生哪些变化、怎么去做开源;而加入开放原子开源基金会则有一个重要原因是想要置身其中去看看国内第一个开源基金会怎么运转,如果它成功了,它的收获是什么,过程中得到的教训又是什么。

 

开源作为一种高效的人与人之间协作的方式,主要解决了两种问题,第一种是对于一些“重复造轮子”成本极高的大型项目,比如 Linux 内核开发,任何公司都无法负担得起重做一次的成本,因此企业和个人就会选择以开放协作的方式一起完成这项工作,减少了社会成本的浪费;另一种也是开源本身所体现的协作共享精神,很多人可能不觉得这件事我做了很大的贡献,只是觉得这个东西做完了可能会对别人有用就把这个东西开放出来了。从这两方面来看,开源对个人、企业乃至整个社会来讲都有很大的价值。因此,徐亮希望能够借助现在所处的平台和个人能力,把开源这件事请做得更好,让开源产生更大的价值。

 

在他看来这并不是什么高大上的目标,只是做开源的技术人的一个朴实的愿望。

 

采访嘉宾介绍:

 

徐亮(Aron Xu),Ubuntu、Debian 资深官方开发人员,搜狗输入法 Linux 版主要开发者。开放原子开源基金会 TOC 成员,现任华为开源能力中心技术专家。



【编者按】

 

每一位开源参与者、每一个开源项目都可以成为舞台上的主角。

 

新的一波开源浪潮正在席卷中国,【开源聚光灯】是 InfoQ 重点打造的开源主题栏目,旨在通过新闻、系列访谈、用户调查、迷你书、视频等形式深入观察开源运动,围绕开源的价值和开源开发模式,与投身开源的每一个个体共同探讨开源发展现状,照亮每一个开源舞台上的参与者。

 

如果你有开源故事或对开源的深刻观点想要分享、或开源项目想要寻求报道,欢迎联系微信 caifangfang842852(请注明姓名和来由)。

2021 年 8 月 31 日 09:004118
用户头像
蔡芳芳 InfoQ主编

发布了 704 篇内容, 共 383.3 次阅读, 收获喜欢 2522 次。

关注

评论 2 条评论

发布
用户头像
请问这篇文章想表达啥?
2021 年 09 月 02 日 15:40
回复
介绍一个这个人吧
2022 年 05 月 22 日 23:07
回复
没有更多了
发现更多内容

LeetCode-168. Excel表列名称(java)

bug菌

LeetCode 7月月更

Numpy 的仿制 2

祖维

c slice Numpy

Python 入门指南之使用 Python 解释器

海拥(haiyong.site)

7月月更

同事悄悄告诉我,飞书通知还能这样玩

Jianmu

自动化 建木CI 飞书通知 定时

输入的查询SQL语句,是如何执行的?

华为云开发者联盟

MySQL sql 开发 语句

激进技术派 vs 项目保守派的微服务架构之争

BoCloud博云

微服务 微服务架构 云原生 istio 服务网格

NBA赛事直播超清画质背后:阿里云视频云「窄带高清2.0」技术深度解读

阿里云视频云

音视频 直播 视频编码

Nebula Importer 数据导入实践

NebulaGraph

图数据库 数据导入 Nebula Graph

容器环境minor gc异常频繁分析

wgy

Java minor gc

太方便了,钉钉上就可完成代码发布审批啦!

阿里云云效

云计算 阿里云 钉钉 jenkins 代码

一加10 Pro和iPhone 13怎么选?

Geek_8a195c

PingCode 性能测试之负载测试实践

PingCode研发中心

软件测试 PingCode

华为云ModelArts的使用教程(附详细图解)

逝缘~

华为 华为云 7月月更

第十八届IET交直流输电国际会议(ACDC2022)于线上成功举办

新闻科技资讯

五千字讲清楚团队自组织建设 | Liga 妙谈

LigaAI

团队管理 个人提升 敏捷开发管理 LigaAI 自组织协作

uni-app与uviewUI实现仿小米商城app(附源码)

优秀的李

小程序 uniapp 7 月月更 uviewui

LeaRun.Java快速开发平台 高效代码自动化生成

力软低代码开发平台

OPPO 小布预训练大模型揭秘:可大规模工业化应用的十亿级模型

OPPO小布助手

AI 智能助手 预训练模型 预训练

【Unity UGUI】ScrollRect 动态缩放格子大小,自动定位到中间的格子

萧然🐳

游戏开发 Unity ScrollView 7月月更 UGUI

智捷云——元宇宙综合解决方案服务商

智捷云

区块链 元宇宙 智捷云 区块链技术开发

DeFi生态NFT流动性挖矿系统开发搭建

薇電13242772558

NFT DeFi流动性挖矿

DataKit——真正的统一可观测性 Agent

观测云

什么是低代码开发?

AIRIOT

低代码 物联网 低代码,项目开发

图像检索(image retrieval)

Geek_e369a5

图像搜索 图像检索

能源行业的数字化“新”运维

博睿数据

AIOPS 智能运维 博睿数据 能源行业

英特尔集成光电研究最新进展推动共封装光学和光互连技术进步

科技之家

2022年国内云管平台厂商哪家好?为什么?

行云管家

云计算 云管平台 云管平台厂商

TCP两次挥手,你见过吗?那四次握手呢?

C++后台开发

网络编程 网络协议 TCP/IP 后端开发 C++开发

被忽视的问题:测试环境配置管理

老张

软件测试 测试环境治理

字节跳动Dev Better技术沙龙成功举办,携手华泰分享Web研发效能提升经验

字节跳动终端技术

字节跳动 前端

你可能不知道,我是如何将一个老系统的kafka消费者服务的性能提升近百倍的

Java全栈架构师

Java kafka 程序员 面试 架构设计

90后开源老司机徐亮:从大学开始全职做开源是一种怎样的体验?_开源_蔡芳芳_InfoQ精选文章