近两年,中国的开源力量在不同层面势起。
国际开源事务中,中国顶级开源项目的贡献度逐年增加,2021 年进入 ASF 孵化的所有项目均来自中国,国际影响力显著提升;开发者方面,据GitHub 2021年度报告,来自中国的开发者用户已达 755 万,位居全球第二;企业方面,越来越多的大厂愿意牵头联合其它公司与各种开源项目社区,寻求共建开源生态。
但需要直面的是,随着开源热度的高涨,开源相关的争议也逐渐进入大众视野。
围绕开源动机、开源合规、开源运营等方面的话题始终议论纷繁、莫衷一是。从事开源工作,如何平衡利他和利己之间的关系?企业自主开源如何避免“KPI开源”陷阱?开源项目如何长久地活下去?51CTO特邀开放原子开源基金会 TOC 副主席谭中意,聊一聊开源那些事儿。
开源的初衷:从来不是乌托邦
争议经常源自认知的差异。对于开源初衷理解的不同往往会影响到时下人们对于各类开源事件的判断和态度。有人说,开源肇始于乌托邦式的利他精神,也有人说,开源是出于反垄断的诉求。对此,谭中意认为,两种说法均有偏颇,他结合两个人物故事作了进一步说明。
回顾开源的历史,有两位“开山祖师爷”不得不提——理查德·斯托曼(Richard Stallman)和林纳斯·特瓦兹(Linus Torvalds)。
早期是一名黑客的斯托曼发现,某些打印机的驱动程序并不尽如人意,他想改进但打印机厂商又拒绝提供程序源代码。这一事件成为小小的导火索,促使斯托曼成为了自由软件(Free Software)运动的发起者和精神领袖。
谭中意提到,斯托曼多次强调 Free Software 中的“free”指代的是“自由”,而非“免费”。斯托曼认为软件应该拥有各种各样的自由,后来被具体阐释为“四个自由”,即被使用的自由、被修改的自由、再分发的自由、再分发自己修改的版本的自由。此外,斯托曼本身对法律、知识产权非常关注。“从他设计的 GPL License 也能看出他在这方面有很多考虑。”
而另一位重量级人物林纳斯在最初写 Linux 内核时更多地可能是“just for fun”。“他自己写了个小版本,写完之后,发现基本能用了就把它公开,希望更多人给他提意见。更像是说我做了一个玩具,很好玩,大家一起来看一看吧。”
因此,在谭中意看来,开源的初衷既非乌托邦式的利他精神,也不是反垄断的策略应对,这些说法可能是后来的利益相关者“人为地将其拔高了”。他认为,开源更类似于一种社会化大协作。
“只不过对于这种多人协作模式有一定约束。只有当协作结果满足一定条件时,才能让这种协作更长久地持续下去。比如我把软件开源出去了,如果你想拿回去,没问题;如果你想修改,没问题。但你不把它公开,别人看不到你的修改,别人也无法享受到你的修改,那肯定就是违反了开源的初衷的。”
谭中意认为,开源发展至今,其精神都是建构在“这种开放、透明、协作的基础之上”。大家都认可开源的协作精神,同时又有像开源许可证之类的契约作为保证。区别在于,现在开源协作的范围更广,不仅仅是软件公司,开源正在切实地影响到更多的人。
彩蛋Q&A
51CTO:开源许可证的约束力如何,是否受我国法律承认和保护?
谭中意:是的。开源许可证其实相当于一个知识产权方面的合同,现在国内外都认为它具有法律效力。美国和德国相应的判例大概在十年前、二十年前就比较多了,国内在去年年底出现了首个违反
GPL 的案件判决生效,原告是罗盒网络科技有限公司。“罗盒案”是国内法院肯定开源协议法律效力的第一个典型案例。
企业开源的背后动机
在参与开源的主体中,企业是最不容忽视的一支力量。当前国内的大企业普遍愿意以更开放的姿态,在开源合规、开源选型、开源协作等方面贡献自身力量,带动整个开源生态的蓬勃发展。那么企业为何要参与开源?对此,谭中意直言,“企业首先是一个利益共同体,它的目的不是做慈善,所以企业参与开源的主要目的还是为了商业利益”。
企业参与开源主要有三种形式:消费、参与贡献、自主开源。谭中意就其具体动机进行了详细说明。
消费开源软件目的最为直接,那就是降成本。效果也是立竿见影。“对一家企业来说,从头开发一款软件和利用已有的成熟软件进行二次开发,成本相差可能在一个数量级以上。(还有一点)如果没有大量的低成本的开源软件的支撑的话,光靠几个企业自己从零开始,我觉得国内的IT企业进步没那么快。”
而无论是参与贡献还是自己创建开源项目,主导原因可能就较为多样。其一,开源可以集众人之力进行开发,相较仅仅依靠自身公司的开发力量,人力成本会有所下降;其二,通过与业内顶尖的公司合作有助于打造技术口碑,甚至是成为构建技术标准的主要力量;其三,鉴于某些公司的商业模式架构在开源项目之上,所以不能单纯从直观收入来衡量,要从这些公司的产品和整体生态来判断其开源目的。
关于商业模式和开源动机的关联,谭中意举了个例子:同样是 Linux 内核,贡献排名靠前的几家企业其实目的迥异。
比如红帽,采用 Upstream First 的开发模式,为用户提供 Linux 发行版。它为 Linux 内核做贡献,实质是在打造和巩固其技术口碑,让用户更加信服其服务;而 Intel 作为常年活跃在 Linux 内核TOP前三的贡献者,其主要目的在于支持其硬件产品;微软曾经也是 Linux 内核的主要贡献者之一,其重点在于虚拟机模块。微软 Azure 上有近半数虚拟机运行的是Linux系统,如果不能进 Linux 内核的上游社区,其虚拟化产品的任何改动都会牵涉到成本的增加,支持 Linux 内核,实际上是为了完善 Azure 虚拟机的性能。
可以看到,正如谭中意所说,“针对同一个开源项目,不同公司给它做贡献的商业利益是不一样的”。一家企业通过开源所瞄准的商业利益需要从其具体的商业模式、目标用户、市场等多角度来衡量。不过这也从侧面反映出了开源这一模式的优越性:尽管商业目的不同,但不妨碍一众公司在同一个开源社区协同工作,基于公开代码和预设的开源条款,众人甚至在一定程度上达成了利益协同,共同深耕,而后各自丰收。
彩蛋Q&A
51CTO:谷歌是一个通过开源方式达成垄断的典型案例。这种模式会成为未来的一种常态化策略吗?
谭中意:很多大企业都想这样做,但并不是谁都能做到。从目前看到的案例来说,谷歌利用安卓占领了大量的市场份额,再从 GMS 来收费,这个商业模式也不是其在开源前就预设的路线,而是一代一代演进的结果。站在当下推演,其成功靠的是天时地利人和。
天时,即市场有需要,且技术已经进步到能满足这一需求;地利,指的是你的竞争对手有失误。回想安卓一统天下的过程,它的主要对手其实犯了很多的错误;人和,就是你要思考如何去聚合技术链、产业链上的各方力量,让大家形成共同的利益圈,在共赢中就能盘活生态圈,并使其越来越庞大。
警惕“KPI开源”陷阱
企业参与开源一般都有明确的目的性,但近年来一些“KPI 开源”项目的出现也开始让部分开源项目的价值饱受质疑。“背着KPI来开源”的行为往往导致开源项目或华而不实,变成儿戏,或半途而废,沦为深坑。
谭中意指出:“对企业来说,开源是一件很严肃的事情,一定要有对应的商业目的和相应策略的设计。你的目的如果是做技术品牌,没问题。那么一旦这个项目开出去,你就不能把牌子砸了。怎么衡量?做技术品牌需要长期持续的投入,如果挖了坑却没人填坑,那肯定就是砸牌子了。”
谭中意多次提到,现在的开源项目不是太少,而是太多了。因此,开源项目的主要负责人需要认真想清楚开源目的是什么,也要仔细衡量这个目的对应的阶段、对应的指标,避免因为“短视”和某些“不合理的期待”而让开源项目沦为KPI的牺牲品。
对外开源需要建立良好的审核和管理机制。谭中意介绍,目前国内像百度、阿里、腾讯等大厂在对外开源时均有一套自身的审核流程,企业对外开源正逐步规范化、体系化。
当年在百度任职时,谭中意曾设计了一套相应的制度。“在百度的时候,任何一个项目开源都需要部门总监进行答辩,其实就是要讲明白,这个项目为什么要开,有什么收益,之后需要投入多少人力进行维护,最终目的是否明确,是否经得起挑战。总监需要向评审委员会进行答辩,如果答辩不通过,那这种开源项目就无法成立。可以说每个项目的对外开源都要走很长的流程。”
除了 KPI 开源造成的项目危机外,有时候企业会因为某些商业原因,后续不再对开源项目进行投入。在这一情况下如何进行取舍呢?谭中意认为,关键在于两点。
“首先,这个项目在市场上是否有价值,如果在技术生态上有它的位置,那么这个项目就可以活下去。再者,主导公司有没有意愿让这个项目长期活下去,必要的时候需要放权,因为你不可能让开源社区的人继续维护这个项目,同时又给你的公司白打工。
举个例子,当年 Oracle 收购 Sun,Sun 有个叫 Open office 的开源项目, Open office 实质是 Microsoft Office 的替代品。收购之后,Oracle 不想继续维护这个项目了,但是 Linux 环境下需要类似的 Office 编辑器,因此这个项目有活的必要性。Oracle 就把这个项目捐给了 Eclipse 基金会。如果甲骨文公司不把这个项目捐出去,那我觉得开源社区的人也不见得愿意去给它持续做贡献。当然,如果这类项目在市场上过多,即使是基金会来主导,我觉得这个项目也会慢慢死掉。”
谭中意提到,事实上,不是每一个开源的项目都要长久地活下去,要尊重其技术生命周期。在这个周期内,这个项目能够满足一定的需求,被一定的客户所使用,就足够了。
彩蛋Q&A
51CTO:由企业主导的开源项目,在后期是否一定会面临中立性问题?
谭中意:不一定。比如安卓,它现在也不中立,但还是活得很好。由基金会来治理的项目其实会有一些特点,但不是所有的项目都适合这种模式,具体要看这个项目的特点和主导方对这个项目的商业诉求。一旦你把这个项目捐给基金会后,其实就丧失了百分百的控制力,当然好处是开放治理能容纳更多的合作者,所以一个企业在选择是否要让基金会来管理自己项目的时候,肯定会进行多方面的考量。
理性利己才是长存之道
无论是企业还是个人主导的开源项目,如何生存都是首要议题。对此,谭中意表达了这样一个观点——“理性利己才能长期化”。何谓“理性利己”?
“在开源世界里能够长期运作下去的,一定是这个人或者这个企业从开源里面获得的收益是大于他在其中所做的投入的,即投资回报率一定为正。”谭中意解释道,“简单点说,你在开源项目上的
ROI 为正,所做的事对自己有收益,同时又能帮助到其他人,这就是开源世界的‘理性利己’。”
从这个角度来看,今年年初时引起不少争议的开源作者“删库跑路”事件就是一个反面案例。“那名程序员之所以会那么做,就是因为他在开源项目里获得的收益不足以覆盖其付出的努力。对于个人开发者来说,最初开源可能是觉得自己写的东西不错,发出来给别人看一看,别人可以帮我来完善它,这有助于软件质量的提升。但时间一长,如果我从外界获得的反馈和收益不能支撑我持续往下做,投入产出比失衡了,那这种模式就不是特别健康。”
对于企业来说同样如此。不过企业自主开源时获得的收益有着更多元化的衡量角度。“有的是为了占坑,有的是为了做标准,有的是为了商业变现,有的是为了打造技术品牌,每种目的背后都有不一样的资源配备和运营方式,不能一概而论。”
当前 GitHub 上的开源项目如恒河沙数,各类技术演进又日新月异,要在一众项目里脱颖而出,获得生存和持续的成长性,强大的运营能力是关键。而根据发展阶段的不同,开源运营有着不同的侧重点。
“一般来说,开源项目发布以后,首先要让别人知道它。知道之后,还得让他们能够用起来,用起来之后还要让他们提反馈。”谭中意提到,“具体来说,第一阶段,让别人知道项目。如何衡量这个认知度,比较简单的方法可以看 star 数,还有 Google Trends、百度指数+微信指数等;第二阶段,让别人使用项目。想看到使用情况的反馈,可以参考新建和关闭的 issue 和 PR 数;第三阶段,真的投入实践后会诞生一些落地案例。此时可以具体分析落地案例的数量和质量。”
总的来说,针对不同阶段,衡量运营效果的可量化指标也有差异。不过谭中意也提醒道:“千万别把这些指标做成运营人员的 KPI,如果变成 KPI 的话,这些数据中除了落地案例之外,其他数据都能‘刷’出来。”这样刷出来的项目,能得一时虚假繁荣,却也如泡沫般风吹即散,最终极易中途夭折、得不偿失。
彩蛋Q&A
51CTO:有人说,开源吞噬世界。未来开源和闭源软件会如何发展,能长期共存吗?
谭中意:两者一定是并存的。首先,所有的开源许可证都有免责条款,用户使用开源软件导致任何问题,开源作者是一概不负责的。但是,商业公司一定是需要有人来负责的。企业只要用开源软件,就一定要有人能帮他兜底,要么他自己来做,要么他找一个服务公司来帮他做。
再者,开源的东西更多的是在基础架构层,上面的产品和业务形态各有各的商业逻辑,一定是用私有软件。所以说开源和商业的软件一定是长期共存,在不同的场合各自作用,造福开发者和最终用户。不能说谁代替谁,我很难想象一个只有开源软件的世界或者只有商业软件的世界。
尾声
开源要有其技术价值,必须要解决人类的问题。不必过于深究其存续问题,在其技术生命周期中,通过很好的运作帮助众人解决了问题,就充分实现了其价值。但如何让它存活是个中关键。
在开源世界里,平衡利他与利己的关系是诸多争议的肇始,也是协作共生的基石。要让开源项目长久存活,需要项目主导方明确的目标、精心的运营、持续的投入,无论是企业还是个人,让投资回报率为正,那么这项事业才能在漫漫长路中获得坚持下去的源动力。
【嘉宾介绍】
谭中意,开放原子基金会TOC副主席,企业智能化转型开源社区---星策社区发起人,曾在Sun/Baidu/Tencent从事开源相关工作20年,对开源战略、合规、运营都有很深的经验。
【栏目介绍】
“T观海”是 51CTO 内容中心旗下的深度访谈栏目,主要面向各企业资深技术专家以及CEO、CTO、CIO等C级别人物进行的技术发展、商业逻辑道与术的采访。旨在为IT从业者拓宽技术视野,为产业企业丰富选型方案,为大众呈现来自技术圈的重磅观点。