华为鸿蒙逼迫贡献者归档,亲自断送开源生态!

华为鸿蒙生态、GitHub 存档标识、个人开发者和外包商围绕一份代码方案形成四方拉扯的俯视构图,浅色背景的商业评论版橡皮泥平面信息图的统一风格。

先说结论

华为鸿蒙白嫖开源代码了?事情并没有这么简单。大家先别着急骂华为,这个事情要比大家想象的复杂得多。我尽可能跟大家讲明白。

但首先先说结论:在这件事情上,华为肯定是做错了,而且它会自食其果。

GitHub 项目“存档”意味着什么

最近 GitHub 上突然有一个项目存档了。所谓存档是什么意思?就是一个项目在 GitHub 上开源了,大家可以使用。你在使用的过程中可以提问题,它去不断更新、不断往前走,这是一种状态,这个项目算是活着。

还有一种状态叫删库,就是我把这个项目直接删掉了。还有一种状态,是我从开源改闭源,从一个开放的仓库变成一个私有的仓库,大家看不到了,但是我依然在更新和维护。

存档就是说,这个项目依然是开放的,大家还是可以看到,但是再也没有人维护了,再也不更新了,再也不在里面回答各种问题了,也不允许再提新问题了。这个过程叫存档。

一个 GitHub 仓库从绿色活跃状态变成灰色封存状态,旁边的问题气泡和更新箭头被锁住的对比画面,浅色背景的商业评论版橡皮泥平面信息图的统一风格。

存档的这个项目叫 Avalonia.OpenHarmony。这个项目的开发者叫布布。他在上面写说,这个项目是专门给 Avalonia 做 OpenHarmony 适配的。

做完以后,华为也确实去跟 Avalonia 沟通去了。沟通完以后,本来计划是雇佣他来给华为做维护,能够把这个项目继续做下去。去年就已经谈好了这件事情,他就把这个项目从开源改闭源了。

结果谈到现在,发现没有任何进展。而且这些外包商拿到这个招标文件以后,甚至来找到他说:

你上我这儿上个班,替我把这事干了吧。

他觉得受到了侮辱,所以就直接把这个项目存档了,说你们想用就接着用,但是我再也不管了。他也没有惦记说去找华为维权,因为这个事情很复杂。

先用一个装修故事理解这件事

为了大家能够理解清楚这个事情到底发生了什么,咱们先讲一个故事。

一座中式庭院、铝型材设计图纸、源头设计公司和小设计室被箭头连接起来,用装修故事类比开源合作关系,浅色背景的商业评论版橡皮泥平面信息图的统一风格。

比如说有一种很特殊的建筑材料,假设是铝型材。有一个装修公司说,我们专门给大家设计这种铝型材的房屋装修、门窗,或者其他使用方式。我们专门给大家做设计,然后还把比较常见的一些设计图样都开放了,你们可以直接抄。

你说你自己可以搞定,就抄了我的图样回去用,没毛病。但是你说,我自己搞不定,比如有一些大厂希望让这个最初始的设计方来给他们出设计方案,让我来给他们做一些改造,他们也收钱,可以找我,我给你专门设计,这个事也没毛病。但是你得交钱。

有一些院子长得跟标准的不太一样,比如中式庭院,这种设计用人家开放的图样肯定是套不上的。这个时候就有一些小的设计室说,我们专门给大家做中式庭院的铝型材设计,给你做定制,我也收钱,没毛病。

你说你不想找我,想找最上面那家,也行。你找到他以后,他收了钱,还是得把这活包给我,我去给你干。

这个时候,有一个房地产开发商说,我这儿做了一个中式庭院,而且是做了一大片,我希望找人去给我设计。然后他就找到了最上面这家做铝型材设计的源头企业,说咱们谈一谈。

谈来谈去的过程中,肯定就拿出了一些私下的设计,不是已经开放的设计范围内的,而是我给你拿出一些专门给你定制的设计方案,都已经给你看了。看完了以后,大家就等着签协议。

左等也不来,右等也不来。这个时候突然有几家装修公司找上门了,说你看,我们想装修这样的房子,你照这个图样给我装修去吧。这个人一看,这不是当时我跟那个大房地产商谈设计方案的时候,我给他私下做的方案吗?你怎么把这玩意儿给人看了,还直接把它扔给下面这个装修公司,他们就来找我订东西来了?这不对。

现在大概就是发生了这样的一个事情。

在这个里面,你直接照着最上面那家的装修图样自己改,没毛病。你照着底下这家专门给中式庭院做定制的人,拿他开放的图样去改,也没毛病。但是你不能说,我是一个大的房地产开发商,我去跟你谈合作,谈完以后把人家给你私下设计的这些图样都骗到手了,然后后边的合作不谈了,拿着这些图样直接找亲戚朋友,说你们去给我做吧。这个事就有点过分了。

这就是这一次事情比较形象的一个故事。大家如果实在理解不清楚开源系统是怎么回事,可以按照这个故事的方式去理解。

技术背景:Avalonia、.NET 与 OpenHarmony 适配

我们稍微把技术讲一下。这个项目叫 Avalonia。这是一个什么样的项目?它是把 .NET 的客户端可以平移到 iOS、Linux、安卓的一个项目。

大家要知道,.NET 是微软开发的。微软的这种客户端软件只能在 Windows 上跑。早期,特别是 2010 年左右,我们做了大量政企项目,也就是政府和企业的项目,都是用微软 .NET 做的客户端程序,只能在 Windows 上用。

但是现在出了一个新问题,咱们这叫信创产业,不能用 Windows 了,要用 Linux,要用国产操作系统、国产硬件。大家就说,我们就用 Avalonia,把原来在 Windows 里的程序重新改一改,简单稍微处理一下,就可以在信创系统上用了,就可以在 Linux 系统上用了。这个本身没有什么问题。

下面的问题就来了:Avalonia 并不支持鸿蒙。因为鸿蒙号称全是新的,连 Linux 都不是,是完全自主开发的这样一套系统,那 Avalonia 肯定是不兼容的,就跟咱们上面讲的中式庭院的故事一样。

这个时候,就有一个叫布布的开发者,自己写了一套兼容的适配方案,叫 Avalonia.OpenHarmony。它是写了这样一个系统,可以把这个东西兼容过来。

Windows 客户端、Linux 信创电脑和鸿蒙设备三端并排,中间由 Avalonia 与布布编写的适配层桥梁连接起来,浅色背景的商业评论版橡皮泥平面信息图的统一风格。

你直接用也行。但是你说,我不希望直接用,我还是希望找到最上头的源头厂家,咱们直接谈一个合作,也行。可是你谈完合作以后,这个源头厂家也不可能直接从海外派人进来,到国内给你服务。它大概率也是直接雇佣布布,说我们这边签了一个合作协议,你去替我把这个合作协议做完就行了。这样这个事就整个顺下来了。

而且在谈合作的过程中,布布也好,Avalonia 官方也好,还给华为出了一些具体的方案。这些方案是不在开源范围内的,这些东西是保密的。

软通动力为什么会出现在这里

然后过了两天,布布就发现有人找到他了。这个公司应该是软通动力。

软通动力是干嘛的?它是国内一个很大的做系统集成的公司,做了很多政企项目,手里也有很多传统留下来的微软 .NET 框架下的客户端软件。它就需要去做 Avalonia 的整合,整到咱们信创的电脑上去。

原来这种电脑,如果是 Linux,不管是麒麟 Linux 还是什么 Linux,都已经整好了,因为 Avalonia 原来就支持。但是现在华为嘛,人家爱国嘛,我投标投中了,投中以后我用的是鸿蒙的电脑,那你就需要把原来 .NET 的这些软件移植到鸿蒙电脑上来。

这个 Avalonia 官方是不支持的,你就需要使用 Avalonia.OpenHarmony 这个组件才能把它弄过来。

本来你应该谈好了,由华为去购买官方服务,然后官方再把这个服务委托到布布这里,这个事情算是顺理成章做完。但是中间这些事都没做,华为就把自己拿到的非开源部分的代码,或者一些技术要求,直接给软通动力了。

软通动力说,那这好办,我知道谁干这活,我给他发一个招聘启事,你上我这儿上班来,替我把这事干了。布布最后说,那不行,这事干不了。

一份标着非开源方案的文件从大企业办公楼流向系统集成商,再变成招聘启事递到开发者面前的链路图,浅色背景的商业评论版橡皮泥平面信息图的统一风格。

这里面到底有几个主体

讲到这里,很多人已经绕晕了,因为这里头分很多个主体:

  • 第一个主体叫 Avalonia。
  • 第二个主体叫布布,这是一个个人开发者,在业余时间开发了 Avalonia.OpenHarmony。
  • 第三个主体是华为。
  • 第四个主体是软通动力,或者华为下面的其他外包商。
Avalonia 公司、个人开发者布布、华为和软通动力四个角色围成方形,每个角色之间用不同颜色箭头标注合作、适配、外包和方案流转关系,浅色背景的商业评论版橡皮泥平面信息图的统一风格。

Avalonia 是什么

Avalonia 是一个开发了十几年的项目,专门帮 Mono 项目向 Linux、iOS、安卓这些系统上进行迁移。它是一家公司,大家注意,别老觉得一开源就一定免费。它是收钱的公司。

这家公司有多少人?19 个人,非常小的一家公司。虽然用户很多,几百万人在用它的系统,但是它整个公司的全职员工就 19 个人。这个项目外围的贡献者很多,可能有几百个贡献者。刚才讲的布布,就属于外围贡献者。

这家公司注册在哪?注册在爱沙尼亚。为什么这样的公司会注册在那里?爱沙尼亚的软件很发达吗?不是。爱沙尼亚有一个很特殊的东西,叫数字身份证。很多做远程办公的跨国小企业,喜欢把公司注册在爱沙尼亚。

每一个人去申请一个数字身份证,申请完以后,就可以在爱沙尼亚的数字政府那里注册,说我是爱沙尼亚的电子公民了。但是我们并不能拿着这个数字身份证去爱沙尼亚入境,说我现在要求拿着这身份证入境,这事是不允许的。

但是它允许你拿着这个身份证在爱沙尼亚注册公司。注册公司以后,如果你的公司收入不是很高,爱沙尼亚对于你的管理其实也是比较松懈的。它不需要你在那里租房,也不需要你在那里雇佣本地员工,都不需要。你拿着数字身份证就可以在那里注册公司了。

而且爱沙尼亚的税收对于这些公司也相对比较友好。你挣了钱,只要别分红,这个钱趴在账上,或者去做再投资,都是不用交税的。它是这样一种运作方式。

所以像这种十几个人的公司,注册在爱沙尼亚是非常棒的。Avalonia 这家公司,19 个人大概来自 11 个国家,所有的人都不在爱沙尼亚。

爱沙尼亚数字身份证、云端注册公司按钮和分布在 11 个国家的远程员工头像组成的小型跨国开源公司地图,浅色背景的商业评论版橡皮泥平面信息图的统一风格。

为什么不是英属维京群岛

像我们以前做 VIE 企业的时候,会把企业注册在英属开曼群岛或者英属维京群岛。我们也没去过那地方,那我们是怎么到那儿注册公司的?当地有代理,我们必须通过代理去做所有这些手续。代理收费,而且收得很贵。

但是爱沙尼亚就不用。你只要在网上填表格,就可以申请它的电子身份证,然后拿着电子身份证就可以直接在爱沙尼亚政府注册公司。而且你注册的是欧盟的公司,处理各种收入、处理这些东西都很方便。所以注册爱沙尼亚的公司,要比注册英属维京群岛的公司省事。

那你说,那些做 VIE 的为什么不跑到爱沙尼亚去注册公司?因为爱沙尼亚给股东分红是要扣税的,英属维京群岛这个事是不扣税的。如果你是一个比较大的公司,账目很多,有很多股东,还是去英属维京群岛注册比较划算,交代理费、注册费也还是划算的。

这讲得稍微有点远。

开源公司是怎么挣钱的

Avalonia 这样的公司是怎么挣钱的?既然管它叫公司,它一定要挣钱。它的项目都是开源的,大家可以直接用它的项目,也不用付钱。甚至你拿过来改一改,怎么商业化、怎么收钱都没事。你只需要在你的项目里标注清楚说我用了 Avalonia,这事就可以了,这就已经符合它的要求了。

但是总有一些客户说,我们不行,必须要原厂服务,那它就挣这个钱。还有一些大公司希望有长期支持,后面升级了,或者有一些新的版本,比如原来那个版本在 iOS 某个版本上是可以用的,iOS 升级以后,我希望有最快的补丁给我补上。那你去 Avalonia 订阅这个服务,也是没问题的,交钱就可以了。

还有一些客户希望有官方背书,我这个是 Avalonia 官方支持的,这个也得交钱。还有些客户需要有人为生产环境负责。你既然开源了,拿去用了,出了事也别找我,对吧?有些客户说不行,我这个很重要,我需要有人负责,那你交钱,我来给你处理这个事情,都是可以的。

所以开源这个东西并不是免费的。刚才我们讲装修公司的故事,大家也能看明白:这装修公司确实把一些开放的图样放在那里了,你可以直接抄,没毛病。但是你说,我必须要原厂服务,我必须要你给我做质保,我必须要你给我做长期维护,那你就得交钱。开源公司就是这么挣钱的。

开源代码仓库免费向大众开放,旁边的企业客户为原厂支持、长期维护、官方背书和生产责任四项服务付费的商业模式漏斗图,浅色背景的商业评论版橡皮泥平面信息图的统一风格。

布布、华为和外包商各自的位置

布布是 Avalonia.OpenHarmony 的主要维护者。他不是 Avalonia 公司的固定员工,他是在业余时间维护这样一个项目。按照他自己的说法,本来就是业余兴趣。但是他的贡献不是普通的修 bug,他是做了一个平台适配层。原来 Avalonia 是不支持鸿蒙的,布布做了这样一个适配层。所以他就相当于前面讲的装修故事里,专门给中式园林做定制方案的这个人。

华为就属于这里面的房地产商。我们希望去跟最上面的 Avalonia 谈,你要给我做长期维护,要给我做后续升级,我要有原厂认证。它想去搞这个事情。因为正好是中式园林,这块的维护是由布布来维护的,Avalonia 也说,那咱们谈,我先给你出一点小方案,你看看你这个中式园林上了 Avalonia 以后有多漂亮。

华为说,那我们商量商量。大概就是这么一个过程。布布也说,那我们就等吧,等你商量好了,签了协议,我们就开始给你干了。

这个时候外包公司就来了,比如像软通动力这样的。它就是小包工队、小施工队。实际上软通动力是一家挺大的公司,咱们只是把它放在这个故事里讲。华为拿了人家专门给你做的定制方案,没付钱,就直接把这个定制方案给了下面的软通动力。整个就是这样的一个东西。

正常流程本来应该是什么

这里面稍微有点别扭的是什么?正常的运作方式应该是,华为直接跟 Avalonia 签约,该交钱交钱。交完钱以后,Avalonia 向华为提供官方技术支持、框架上游的兼容、长期维护的承诺。它提供这些东西,一定会在中国把本地的人直接雇佣下来。最后还要落地实施嘛,雇佣完以后去给华为实施。这个是相对比较正常的运作方式。

但是这个事谈了很久。一方面肯定是很贵的,不是说我在国内随便雇个工程师就可以把这事搞定。因为你需要跟一个在爱沙尼亚注册的跨国开源企业谈所有这些服务,成本是很高的。

第二,一个爱沙尼亚的公司去跟华为这样的企业签约,也不是那么容易的。因为华为是一个美国实体清单上的公司,是受制裁的。你跟它签约以后,有可能会受到美国的长臂管辖。

那你说我想躲避这个事情怎么办?也不是躲不开。华为下面有很多实体,还有一些跟华为可能没有直接关系的实体,你是可以把这事做掉的。而且海外的公司也愿意跟你这么合作。华为这么长时间,其实也不是彻底没有海外合作,依然有,还有很多绕的方法。

但是在这个过程中,合规审核以及各种变通,周期是很长的,成本是很高的。所以谈到现在,这个事也没有谈出个结果来。

但是到这里没谈出结果都不是大问题,到这里都算没毛病。结果华为干了一个比较丢人现眼的事情:直接把人家私下里给它的这些设计方案,拿给下面的外包商了,说你们就照这方案去干吧。而这些设计方案的大前提,是你后面要跟人签约合作。这个就比较丢人现眼了。

正常签约付款到官方支持的绿色流程线与跳过签约直接把保密方案交给外包商的红色捷径并排对比,浅色背景的商业评论版橡皮泥平面信息图的统一风格。

开源不是免费,华为的问题不在“用了开源”

所以我反复强调,开源不是免费,它的商业模式本身是很复杂的。

开源商业模式的运作方式是什么?

  1. 第一,我先开源出来,大家可以用,没毛病。但是我开源的目的不是为了不挣钱,我开源的目的是为了挣钱。一方面,我树立标准。因为开源了,更多人直接用了,这个标准就属于我。以后我指引这个标准向我希望的方向前进,你们得跟着我走。这是开源的第一个目的。
  2. 第二,大部分人使用开源是不付钱的,但是还有一些人希望有长期服务,希望有官方认证,那你就还是得给我交钱。所以很多开源公司还是挺挣钱的。

那么华为的问题在哪?

华为的问题不是说你用了开源,用开源本身这事并没问题。你用开源不给钱,也没毛病。你只要在你的 license 里写明白说我用了,就可以了。人家的要求也就是这个。

你用了开源以后,有一些不太适配的地方,你说我自己改,这也没毛病。改完以后,我把这部分也开源出来行不行?其实也行。很多企业也是这么干的,特别是一些自己要维护生态系统的公司。你希望大家都可以把这个系统做得越来越好,更多的人可以在这个系统上用更丰富的资源,这个也挺好的。

但是华为也没干这个活。华为跑去跟人谈合作去了:我们是鸿蒙生态的扛把子,这个东西我说了算,咱们合作以后,我这大有可为。Avalonia 这帮人谈得也挺开心。下面还专门有一个叫布布的人,专门做了 Avalonia.OpenHarmony 这样的系统。我们只管给你做官方背书,技术上也没有特别大的难点,这是一个挺好的事。

我们为了争取你这单子,还给你做了一堆私下的方案,你就照这方案做。结果算是把人诓回来了,诓完以后,它就直接把人家给它的方案交给下面的外包公司了。这就是华为这次干的比较缺德、比较短视的事情。

生态主导者不应该犯这种错误

如果你是一个普通公司,你说我就盖了一套中式合院,也就算了,虽然丢人现眼,但是没关系,下回人家不理你也就完了。但是华为不是这样的一个角色。它是鸿蒙生态的主导者,整个鸿蒙生态里所有这种中式合院都是我盖的,就不应该犯这种低级错误。

你如果是生态主导者,就要去保护关键贡献者。其他人一看,谁给你提供方案,你就直接把人方案拿走自己用了,以后就再也没人理你了。这一次 OpenHarmony 项目直接存档,就算是一个打脸。因为这个开发者在国内,他拿华为也没什么办法,也不惦记再去维权了,就是这事我不干了。后边肯定也不会有其他人愿意干,那只能就这样了。至于 Avalonia 这个公司,估计也没法再跟你谈下去了。

鸿蒙生态主导者站在平台中央,周围关键贡献者的头像因缺少信任而逐渐远离,底部有一个被封存的 OpenHarmony 项目标牌,浅色背景的商业评论版橡皮泥平面信息图的统一风格。

最后结论

开源是一种最新的协作方式,是可以跨国协作的。你像 Avalonia,11 个国家的 19 个人在一起组成了一个公司,全世界更多国家的 300 多个人在里面做贡献,包括这位布布在里面做贡献。

开源需要一个健康的生态。在这个生态里,要让贡献者能够有收益,这个才叫健康的生态。刚才我们也讲了,Avalonia 是一个很小的公司,只有十几个人,但是它依然得是挣钱的。

一个贡献者需要相信,今天我把路跑通了,明天不会被当成免费咨询;我今天做出样板,明天不会被施工队拿着我的方案反过来找我再去咨询,或者来招聘我;我今天为生态做的贡献,明天我至少能够得到署名、尊重、合作机会,甚至是商业回报。

这个是你要给开源开发者的一个承诺。如果你给不了这个承诺,你就没法在这个生态里混下去。这就是这次华为干的事情。


背景图片