如果你觉得一些科技公司看起来很美好,每天都在“改变世界”……你应该看看他们的用户条款和法律文书,藏污纳垢之严重令人震惊。
最近,百度和阿里巴巴内部的软件工程团队不约而同做了一件事——弃用 React。
解释下:
React 是一个前端工具,用于开发软件或互联网服务的用户界面,最早用在 Instagram 里,由 Facebook 开发并在 2013 年开源,随后获得了社区的广泛支持。在前端开发上,React 是目前业界应用最广泛的工具,百度和阿里巴巴的一些业务部门都在使用它,更是有很多创业公司的产品非常重 React,甚至完全基于 React 而生。
但为什么最近百度和阿里巴巴都决定对 React 说再见?
对于开发者而言,许可证就是他们使用开源软件的“用户协议”。而 Facebook 的开源方式跟其他家都不太一样,别家一般用的都是开源社区公认通用的许可证,而 Facebook 的两个许可证,第一个是通用的 BSD 许可证,第二个是自己写的专利许可证 (patent grant)。
而开源社区在发现,Facebook 在 React 的专利许可证里“偷跑”了一堆让开发者恐慌和心寒的条款:
法律文书通常比较拗口,这段的大意:如果你向 Facebook 及其子公司和其他相关实体发起专利诉讼,或者对其他使用 React 的公司发起专利诉讼,或者如果 Facebook 主动起诉你,你以反诉应对,你使用 React 的许可证将自动终结。
翻译成人话就是,如果你觉得 Facebook 侵犯了你的知识产权,你不能起诉 Facebook!Facebook 起诉你,你也不能反诉!因为在起诉的同时你的产品就挂了——你不可以继续用 React 了。
再直白一点:如果你在你的产品里用到了 React,哪怕只有一点点,你对于产品所拥有的知识产权也等于直接送给 Facebook 免费用。
本来这个许可证模式就很让开发者费解,但碍于 React 受 Facebook 的支持,围绕它的开源生态也很健全,结果就是 React 很好用,所以大家也就凑合用了。现在发现了这个专利许可里的奇葩条款,大家终于坐不住了……
这件事从去年就在前端技术圈吵开,后来愈演愈烈,形势每况日下:开源社区在更多 Facebook 开源的热门项目中发现了相同的许可证模式和条款。开发者认为 Facebook 的这种许可证模式正在毒害社区,污染开源精神。
根据一直关注事态进展的胡桓铭的知乎专栏,此事让 React 社区因此十分分裂,也加剧了 React 支持者和 Vue、Angular 等其他替代品支持者之间的撕裂,“一部分人开始咒骂万恶的开源流氓,一部分人开始威胁说我们不用了,我们用 Vue 和 Angular(注:React 的替代品)去了,一部分人呼吁保持冷静,静观其变,我们要相信组织。”
为什么大家对 Facebook 此举如此担心?
我们举个例子:
你创立了一家科技公司,React 用得很爽,产品开发很快,公司越做越大;突然有一天 Facebook 做了个跟你一模一样的产品,你不能起诉它,因为在你起诉的同时你的产品就等于挂了,因为 Facebook 撤回了允许你使用 React 的授权。
这可不是说着玩,别忘了 Facebook 抄袭创业公司产品已经不止一次两次。比如 Facebook 几次三番针对 Snapchat 个别功能进行复制,前几次都未成功,最后直接把短视频故事功能抄了出来,放到了旗下 Facebook、Instagram、WhatsApp 和 FB Messenger 这四款亿级,甚至十亿级用户的产品里。从这个角度来看,Snapchat 能活着上市真是太不容易了。
有 React 和 Facebook 的拥趸说,别开玩笑了,Facebook 那么大,也没进中国,谁在乎你啊?那么我们换个举例方式:你用 React 做了个社交产品,在中国年轻人中颇受欢迎;突然有一天 Facebook 入华了,觉得你这产品不错想收购;你抬价,Facebook 起诉你侵权来压价,你和股东们的权益受到侵害,只因为你当初技术选型图了方便。不是所有公司都有 Snapchat 的好运气,更别提 Facebook 内部还有一个工具,用来侦测可能对其业务带来威胁的创业公司,从而方便法务、企业并购和产品、工程部门快速行动。
Facebook 这种许可证模式真的是专利流氓吗?它真的会滥用许可证条款来打压竞争、抑制创新、维护自己的垄断地位吗?
该公司的解释是“纯防守目的”,条款存在只是为了保护自己的核心专利,抑制不必要的诉讼(在美国专利诉讼的确很猖狂,有很多专业专利流氓)。截至目前 Facebook 还没有援引许可证中的条款来主动发起诉讼,没有判例,是否抑制了其他公司的诉讼也尚未可知。“就像加州的科技公司雇佣合同里都有竞业禁止条款,但没见过几家公司真的执行。”iOS 机器学习模型市场 CoreML.Store 的开发者林鸿表示。
中小科技企业,特别是中国公司似乎对此并没有太多的担忧。互联网商业数据库 IT 桔子的 CTO 彭禹斯认为,小公司完全可以继续使用 React,就算陷入最坏的情况,被 Facebook 盯上,更换架构倒也比大公司轻松得多,被收购也可以考虑,“小厂还是抓紧做好业务,做好用户比较靠谱,能否活下来都是个未知呢。”
但也不是所有的小公司都可以放松警惕,比如云端文档工具石墨文档,其 web、iOS 和 Android 移动端都大量应用了 React/React Native 技术。“目前来看这件事不会对石墨文档使用 React 造成影响。”该公司技术总监李子骅告诉 PingWest 品玩,“但我比较担心的是会对 React 社区造成影响,进而影响到(招聘)候选人的数量,以及来自社区的 React 开源项目。”
李子骅表示自己一直在关注 React 许可证事件,内部也进行过是否从 React 迁移到其他技术的讨论,结论是保持现状、观察事态进:“我们是一家比较依赖 React 的公司,所以去 React 化肯定会更艰难一些。”
但到了阿里巴巴、百度这边,它们的个别业务部门都对 React 有着重度依赖,去 React 化的动作就要加快了。因为大公司的法律保护意识强,法务人员众多,考虑到合规风险,它们的工程师不得不和熟悉的技术说再见,加班加点迁移甚至重新开发。一名百度公关人员告诉 PingWest 品玩,百度内部弃用 React 确有其事;知情人士透露,阿里巴巴现在还没有最终通知,但技术决策层多数支持弃用 React。
通过类似用户协议、开源许可证这类法律文书,足以窥见被远大目标和高新科技所遮挡住的,大公司普遍存在的反开放、反创新、坑用户等道德问题。最近一段时间,例子实在太多。
比如,这几天微博就因为用户条款闹得很僵。网友在条款里发现了这样的条文:“未经平台事先书面许可,用户不得自行授权任何第三方使用微博内容”。
事情闹大的导火索是今日头条从挖微博的墙角,找大V去提供内容,并“未经许可”抓取用户的微博内容同步到今日头条上。微博澄清用户条款存在只是为了防御第三方未经许可抓取微博内容,但这仍让用户感觉自己的著作权被侵犯了——毕竟最终解释权在微博那边。
而两周前美国发生的信用评级机构 Equifax 1.4 亿用户资料失窃案,则更为奇葩:因为自己的系统漏洞导致全美一半人口信息遭窃、运行一百年的信用系统面临崩溃的紧要关头,Equifax 依旧全然不在意用户的利益,只想要自保。
该公司推出了一个网站,允许用户查看自己的信息是否失窃,无论失窃与否都会推荐你付费购买一个增值服务,而隐藏在这个服务的用户协议里的是“成为本公司用户必须放弃起诉本公司的权利”这样一条奇葩条款。
对于微博,它完全可以开发第三方可以使用的内容接口和交换协议(类似于 IFTTT),满足那些想要合法合规使用自己创造、自己拥有内容的用户,以及那些希望在多个社交网络上同步内容的用户。它也可以开发一个更好用的微博第三方嵌入组件并推广给其他平台,和其他平台订立盟约确立一个更规范地引用微博内容的格式。遇到竞争先开始造壁垒、建城池的做法,并不体面、高效和开放。更何况内容和使用内容的权利本来就属于用户,从来不应该属于平台。
而 Equifax 用用户协议躲避官司的行为,就属于赤裸裸的道德沦丧。它暴露出这家承担了国计民生重任的美国“私营”公司,并没有像它的广告里所说的那样安全和重视用户的隐私。企业贪婪 (crporate greed) 比用户利益更重要。
在彻底解构哈佛商学院的《金牌通行证》一书中,作者达夫·麦克唐纳(Duff McDonald) 指出,“当学生进入哈佛商学院的时候,他们相信企业的目标是提供产品和服务,增进社会福祉。等到毕业的时候,他们相信实现股东价值最大化才是企业的目标所在。”这并没有错,只是也别太把用户当猴耍。
将“社群”、“连接”天天挂在嘴边的 Facebook,此时就显得有点虚伪了。
Facebook CTO 迈克·施罗夫宣布 React Native
博客服务 WordPress 已经用 React 开发了好几年,上周末决定弃用。其运营公司 Automattic 创始人马特·穆伦维格 (Matt Mullenweg) 在自己的博客里宣布了原因:
Facebook 说了要研究这个问题,研究的结果是保持现状,因为去掉专利条款的话会在法务上浪费资金和时间。这是 Facebook 的家务事,我没什么好说的。
几年前我们用 React 重写了整个 WordPress.com。今年,我们决定用 React 来开发新一代的编辑器 Gutenberg。我甚至准备好了声明和博客,准备好了几千字来夸 React 有多好用,那篇博客不会发出来了。
我们决定换个技术重写 Gutenberg,可能会导致项目进度变慢,明年才能发布;我们也会用最终决定的技术来重写 WordPress.com,可能会花更久的时间。我们的目标是没有任何专利问题,不会让专利风险被转嫁给我们的用户。
大多数人都为穆伦维格的艰难但正确的决策而叫好。
今年 7 月,Apache 软件基金会指出 Facebook BSD+ 专利的许可证模式将风险传递给了下游用户,保护了授权者而非许可者(使用者)的权益,进而违反了 Apache 软件基金会的政策,宣布封杀该许可证模式。至于措施,该组织宣布所有使用 Apache 开源协议的软件都不得使用带有 Facebook BSD+ 专利许可证模式的组件。
作为世界上最大开源社区管理和调解机构之一,Apache 软件基金会的通知在一定层面上代表了开源社区的意见:“不爽”两个大字。Facebook 既想得到开源社区的尊敬和贡献,又想搞非标准许可证保护自己的利益,鱼与熊掌怎能兼得?
在彭禹斯看来,Facebook 的专利许可证和霸王条款差不多。而李子骅倾向于认为整件事背后可能是 Facebook 的法务在主导,并非开源项目在公司内部的主要贡献者和管理者希望看到的。防御专利纠纷的用意可以理解,但站在局外人的角度,他对这种许可方式仍然难以认同,“这种许可方式弊端很明显,大家讨论、担心的核心是 Facebook 侵犯自己的专利。”
华盛顿大学研究助理、深度学习框架 MXNet 的主要贡献者解浚源在知乎上表示:“Facebook 的这个 License 其实开了一个很不好的头。大公司可以通过在开源软件里塞私货来妨碍小公司崛起,进一步巩固自己的垄断地位。个人认为这种污染开源精神的行为很不好,希望 Facebook 能浪子回头,改用 Apache2.0 这种开放友好的 License。”
林鸿则认为:这种做法非常符合 Facebook 的价值观。