欢迎回来
登录你的知识库账户
忘记密码?
还没有账户?立即注册
创建账户
注册你的专属知识库
已有账户?去登录
找回密码
输入注册邮箱获取验证码
返回登录
请输入图片中的验证码以继续注册
加载中...
取消
新建收藏
手动添加你喜欢的内容
取消
编辑头像与昵称
上传新头像或修改你的显示昵称
支持 JPG/PNG,最大 2MB
取消

问题反馈

notebasewww.notebase.cn
控制台
内容库
动态
管理
账户
U
用户
--
在线
v0.8.7 · 知识库
笔记
KnowledgeBase
网络无边,知识有迹。
0笔记
0工具
30推荐

分类导航

按主题直达

编辑精选

站内用户贡献 · 真实笔记

最新收录

每日更新
继续浏览全部内容 →
>
笔记
0
加载中...
工具
0
此页用于记录用户反馈问题后的每一次改进
笔记用法

“写笔记”支持四种格式——Word 文档、Excel 表格、Markdown、纯文本,起稿或二次编辑时都能随时切换,同一篇笔记想用哪种形态来记,都由你说了算。

md、txt、csv、json 这类纯文本则原样载入,不做多余加工。拿一张现成的表倒进来、改几笔、再导出去,等于白用一台免费的格式转换器。

要带走就在右上角点“下载”,可导出 PDF、Word、Markdown、Excel、TXT 等格式;列表卡片“⋯”菜单里,也有同样的下载入口。

工具用法

在“工具”页点“+ 上传工具”即可发布:填好名称与链接,再用 Markdown 把使用方法写清楚——能解决什么问题、怎么装、怎么用,比堆介绍实在。

要分发安装包就一并上传压缩包(ZIP、RAR、7Z、TAR.GZ,最大 35MB),别人在详情页一键下载;只放链接不带附件也可以。

工具按大家的收藏热度排序,好用的自然会被顶上来。发布后可在详情页或卡片菜单里编辑、下架。

隐藏笔记

写笔记时勾上“隐藏”,这篇就只存在于你自己的账号里:不进列表、不进搜索、不上首页精选,也不会出现在任何公开的页面,链接发给别人同样打不开。

适合放密码、草稿、日记这类只给自己看的内容;想公开,去“发布”打开它,把“隐藏”的勾去掉再保存,之后编辑会默认保持原状态,不会悄悄变回公开。

数据安全

你的内容会同时保存在多个副本上,系统定期做备份与完整性校验,再配合异地容灾机制:就算某台机器出问题,数据也不会丢,可以长期放心存放;特别重要的资料,仍建议你另外再留一份备份。

技术

全站跑在容器化、模块化的现代架构上,更新、部署、回滚都很快,扩展性和稳定性都按长期运营的标准来设计(Built for reliability, designed to scale)。

理念

这个网站最早只是一个人的笔记仓库,后来慢慢长成现在的知识中枢。设计上很克制——没有广告、没有追踪、没有推荐算法,只是干干净净地存放一些东西;既然做好了,就公开出来,万一有人用得上呢。

原则

不做大而全,不做平台梦,保持简单、保持克制、保持好奇。所有内容都由用户贡献、由用户维护:不会突然冒出付费墙,不会在角落塞广告位,也不会把你的数据卖给第三方。

更多

产品会持续迭代,站内日志页记录着每一次改动,改了什么都有迹可循;想了解这个站是怎么一步步走到今天的,翻翻日志就能看到来龙去脉。

举报

如果在这里看到涉嫌违规的内容,点对应卡片右侧的“举报”按钮就能提交,我们会尽快核实处理;也谢谢你花一点时间,一起把这里维护干净。

趋势
// 点击导航加载发现
归档
// 归档为空
最近浏览
// 暂无浏览记录
发布
// 加载中...
用户发布
// 加载中...
用户管理
// 加载中...
访问统计
// 加载中...
内容审核
// 加载中...
个人信息
// 加载中...
返回首页

React 等四大项目改用 MIT 许可:一场开源社区信任危机的复盘

1970/1/1编程开发

因社区持续质疑,Meta 将 React、Jest、Flow、Immutable.js 转为 MIT 许可,承认此前专利条款损害生态信任。

背景:BSD+Patents 许可的争议与失控

2017 年 9 月,Meta 工程副总裁 Adam Wolff 发布了一篇简短的公告:下周起,React、Jest、Flow、Immutable.js 四个开源项目将正式改用 MIT 许可证。这距离 Meta(当时仍叫 Facebook)在 2015 年为这些项目引入 BSD+Patents 附加专利条款(即著名的 "FB Patent Grant")已过去两年。

那条附加条款的初衷是保护 Meta 免受开源技术使用者的专利诉讼——如果一家公司用 React 构建产品,却反过来对 Meta 或其关联方提起专利侵权诉讼,那么该公司的 React 使用授权将自动终止。这在法理上看似对等(你也可以理解为"你若起诉我,我就不许你用我的代码"),但在社区的实际感知中,它成了一颗随时可能引爆的法律地雷。

核心矛盾在于:大多数企业法务在评估开源许可证时,只熟悉 MIT/Apache/GPL 这类经过几十年司法检验的文本。BSD+Patents 是 Meta 自创的组合,没有先例判例可循,意味着一旦发生极端纠纷,双方都要承担高额的司法不确定性。哪怕 Meta 从未真正执行过这一条款,社区的恐慌也在蔓延,因为风险不在于条款是否会被行使,而在于它是否可能被行使。

社区的持续施压与替代方案的选择

公告中有一段非常诚实的话:"虽然我们仍然认为 BSD+Patents 能给用户带来一些好处,但我们承认未能果断地说服社区。"这背后是数十个知名项目和公司公开表态拒绝使用 React——最典型的是 Apache Software Foundation 直接将其列入禁止依赖的许可证名单,WordPress 的 Calypso 项目被迫内部替换,甚至连一些知名的 React 教程都加上了免责声明。

更致命的是,整个事件被集中引爆,不是因为某个技术缺陷,而是因为 npm 生态的复制习惯——当一个核心库许可证存疑,依赖它的数千个库全部受到连带质疑。许多开发团队在权衡后,开始大规模转向 Preact、Inferno 甚至 Angular/Vue。这一轮"用脚投票"让 Meta 意识到:即便法律上他们站得住脚,生态共识才是开源项目真正的护城河。

开源的深层逻辑:许可即信任契约

这篇公告的深刻之处,在于它揭示了一个常被技术人忽略的真理:一个开源项目的繁荣,并非只取决于代码质量或性能,而是取决于无数下游开发者对"未来不会被突然盯上"的安全感。 当 Meta 声称"我们不想因为非技术原因阻碍前进"时,其实是在承认技术优势无法覆盖法律信任赤字。

从博弈论角度看,BSD+Patents 的失败是一个信号传递问题:Meta 无法低成本地向社区证明"我不会害你",而社区也无法低成本地验证"它真的不会害我"。在这种双盲不信任下,理性选择永远是规避——哪怕规避的代价是使用一个功能弱一点的替代品。而 MIT 许可证之所以成为默认选择,正因为它的文本极其简单:允许任何人做任何事,只要保留版权声明。它不需要附加解释,不需要法务逐条审查,这种零解释成本就是最大的生态优势。

对其他 Meta 开源项目的影响与保留条款

公告同时明确:Meta 旗下其他热门开源项目(如 GraphQL、Relay、create-react-app 等)暂时仍保留 BSD+Patents 许可。但 Meta 表示"正在评估"这些项目的许可,只是"每个项目情况不同"。言下之意是:React 因为处于 Web 生态的核心位置、影响面最大,所以优先响应;而其他项目需要单独评估专利组合的交叉风险。

这种"逐个重新评估"的策略,被业内解读为一种分批次撤退——先从社区反弹最强烈的核心前端库开始,再根据反馈决定外围项目。事实上,之后的历史确实印证了这一点:2018 年 Meta 最终将所有开源项目都统一转为 MIT,包括 GraphQL 和 Relay。但当时的谨慎态度,也说明一个大企业内部对"放弃自有专利保护条款"的阻力有多大——这牵涉到法务部的风险模型和专利部门的核心利益。

React 16 的配合发布:用技术稳定军心

公告的第二大信息点:新许可将随 React 16 一起发布。React 16 是时隔一年多的重大重写版本,其内部架构完全重构,引入了 Fiber 调度机制,为后续的并发渲染(Concurrent Mode)和异步渲染铺平道路。将"许可变更"与"重大里程碑版本"同步推出,显然是有意为之——用技术上的重大进展,来转移社区对许可争议的注意力,同时给予忠诚用户一个升级的理由。

这也暗示了 Meta 对这场危机的最终态度:他们明白,单靠一封道歉信不可能赢回那些已经迁移到其他框架的团队。正如 Wolff 在公告中坦言的:"我们不指望通过这一改变赢回这些团队,但我们确实想留一扇门"。这是一种典型的长期主义——先恢复基本信任,再用技术迭代吸引开发者自然回流。坦白讲,这一策略奏效了:React 16 的发布取得了巨大成功,而两年后 React Hooks 的推出,更是把许多曾经的逃离者重新拉回了 React 阵营。

反思:开源许可证的本质是什么?

站在今天回看这一事件,其价值远超一个公司决定更换许可证的公关操作。它给整个开源产业上了深刻一课:

  1. 许可证是营销文档,不只是法律文档。没有人会通读每个依赖的许可文本,开发者只会根据常识信任某一种"品牌许可"。凡是自创条款,再有理也需要付出数十倍的社区教育成本。

  2. "你能做什么"比"你想做什么"更重要。Meta 从未实际行使过专利条款,但仅仅是"可能"就够了。在开源世界里,未验证的权力就是负面的信用。

  3. 技术的竞争维度不只有性能,还有制度通约性。React 和 Vue 之争证明了,哪怕 Vue 的架构在某些场景下"不够激进",但只要其许可是干净的 MIT 或 BSD,团队就会倾向选择它。选择框架的时候,CTO 会问"如果这个项目三年后换东家,我们的法律风险会变吗?"

  4. 生态核心项目的许可动荡,会废掉整个技能生态。当 React 许可存疑时,不仅是前端项目受影响,整个围绕 React 的教程、组件库、招聘岗位、内部培训体系都遭到了质疑。这就是为什么 Meta 在公告中强调 React 是"Web 开源生态的基石"——他们清楚地知道,这已经不只是自己的事了。

尾声

公告发布后一周,React 16 如期发布,所有代码仓库头的许可证文件全部换成了 MIT。事件没有引发更大的连锁反应,Apollo 和 React Navigation 等项目也相继跟进切换了基础依赖。今天,React 是全球使用最广的 UI 库之一,MIT 许可早已成为它的默认形象,甚至很少有人记得那两周的"许可证风波"。

但这次事件留给技术管理者一份永不过时的备忘录:任何对现有许可证的"创新",都必须以十倍于代码合规审查的严格程度来审视。你写的每一行代码都会被复制,但你的许可证条文会被逐字阅读。技术可以重构,信任却不能。 当你在谈论开源战略时,你实际上是在谈论一种社会工程——代码能画出的最大边界,是人心中愿意承担的法律风险的边界。

原文链接:https://code.facebook.com/posts/300798627056246

编写使用方法
Markdown 格式 · Ctrl+Enter 确定
新建笔记
预览
数据表格
点击单元格编辑 · Tab 移动
A1fx
Sheet1
BIH1H2≡🔗</>
隐私提醒

取消
编辑工具
取消