从Facebook的React框架事件学习一下开源协议

图片描述

前言

前一阵子由于Facebook BSD+PATENTS License的原因,Apache项目禁止使用带该license的代码,引人注目的就是Facebook的React前端框架。
后来在知乎上看到百度内部也要求在半年内完成内部产品的转型,如下图所示。

最近又看到Facebook 的React框架又重新将Facebook BSD+PATENTS License更新为了MIT协议。

以上这些变化,引起了我的好奇,在接下来的内容中将对以下内容进行阐述。

目录

  1. Facebook的BSD+PATENTS License到底说了些什么,以React为例子。
  2. 开源协议选择
  3. 结尾

BSD+PATENTS License

根据维基百科的定义,License即软件许可证,含义如下

软件许可证是一种具有法律性质的合同或指导,目的在规范受著作权保护的软件的使用或散布行为。通常的授权方式会允许用户来使用单一或多份该软件的复制,因为若无授权而径予使用该软件,将违反著作权法给予该软件开发者的专属保护。效用上来说,软件授权是软件开发者与其用户之间的一份合约,用来保证在匹配授权范围的情况下,用户将不会受到控告。

根据更新前的Facebook React仓库中的 Readme文件所示。

React使用的是BSD协议,另外附加了专利许可证。而引起讨论的重点则出在PATENTS 专利许可上。
节选PATENTS专利许可证上的一段话

The license granted hereunder will terminate, automatically and without notice, if you (or any of your subsidiaries, corporate affiliates or agents) initiate directly or indirectly, or take a direct financial interest in, any Patent Assertion: (i) against Facebook or any of its subsidiaries or corporate affiliates, (ii) against any party if such Patent Assertion arises in whole or in part from any software, technology, product or service of Facebook or any of its subsidiaries or corporate affiliates, or (iii) against any party relating to the Software

这一段整体说明了,如果违反了以下三个限制,就会被撤销使用React的许可,在我个人的理解来说,就是Facebook可以反告你一把了。
由 (i)和(ii)看出,如果你采取专利申诉或者是挑战到了Facebook,Facebook的子公司以及合作方,你的React许可就会被撤销。
由(iii) 可以看出:你不能够其他使用了React的公司产生纠纷,不然也会被撤销React许可。
这一段是引起了很大的反向,换句话来说,只要你使用着Facebook的React框架,那么Facebook如果侵权你的专利,你还不能告他,你告他的话,你的React许可就会被撤销,然后被反告一把实锤,想想还真的是挺心塞的哈哈。
所以百度以及其他的一些公司有一些对应的举措也不足为怪。

各种开源协议以及如何选择

因为社区的反响实在强烈,以及Apache基金会的强硬举措,Facebook在近期是妥协了,将Facebook BSD+PATENTS License更新为了MIT协议。
开源协议的数量非常多,但一般来说,我们只需要在常用的当中进行选择即可。阮一峰老师在乌克兰程序员Paul Bagwell的基础上绘制了一份中文的协议选择图,非常浅显易懂。

对于Facebook这次的升级来说,MIT相对于BSD的不同之处在于,使用MIT协议的是可以用原有作者的名字打广告的,其实就是更为宽松了一些。
在这些常见的协议当中,BSD和MIT的协议相对比较宽松,Apache次之,会保留作者的专利版权,GPL限定性更强。知乎网友http://www.gcssloop.com/tips/...也画了一张对应的示例图,从图中可以很清晰的看到各个协议之间的区别。

https://choosealicense.com/ 这个网站提供了选择开源协议上的一些建议。

知乎网友gcssloop在这个的基础上对其做了汉化处理,具体网址见http://choosealicense.online/

结尾

这是个人对这次Facebook React开源协议事件的一些资料收集以及个人看法,希望对大家有所帮助。
同时也对之前网络上盛传的“ 不用学React”这种言论说一句。

且不说你的公司使用React会不会和Facebook引起冲突,哪怕公司层面上有冲突,私下去学习这样一个优秀的框架也是极好的提升机会,切莫浮躁啊。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Vue 和 React 都是相当受欢迎的 JavaScript 框架,在业界都有很大的应用。这两个框架各有优劣,可以根据自己的项目需求和偏好来选择使用。 Vue 是一个轻量级的框架,易于学习,代码可读性也很高。它的组件化设计使得代码复用性较高,能够帮助开发人员更快速地构建应用。Vue 还有一个优秀的社区支持,提供了丰富的文档和工具,使得 Vue 应用的开发和维护更加方便。 React 是由 Facebook 开发的一个用于构建用户界面的 JavaScript 库。它的虚拟 DOM 机制能够有效地提升应用的性能,特别是在大型应用中表现优异。React 在业界的应用非常广泛,有很多成功的项目使用了 React 作为技术栈的一部分。 总的来说,Vue 和 React 都是优秀的框架,没有哪个框架明显优于另一个。你可以根据自己的项目需求和个人喜好来选择使用哪个框架。 ### 回答2: Vue框架React框架都是目前前端开发中非常流行的框架,各有其特点和优势。 就发展而言,从使用率来看,React框架的发展更为迅速。React已经成为全球最受欢迎的JavaScript库之一,并被众多大型公司广泛采用,如Facebook、Instagram、Airbnb等。由于其强大的生态系统和庞大的社区支持,React拥有更多的教程、插件和工具可供开发者使用。此外,React的功能丰富,适用于开发各种规模的应用程序。 然而,Vue框架的发展也非常迅速。Vue有着简单易学的语法和文档,使得初学者容易上手,因此受到许多开发者的青睐。Vue的核心库非常小巧,加载速度快,并且可以渐进式地引入项目中。Vue还拥有许多精心设计的特性和工具,如Vue Router和Vuex等,这些使得Vue成为开发大型单页应用程序的理想选择。 总的来说,Vue和React框架发展都非常良好,适用于不同类型的项目和开发者。React具有更广泛的用户基础和更强大的生态系统,而Vue则更适用于初学者和小型应用程序。因此,选择使用哪个框架应该根据具体项目需求、开发团队的实际情况和个人偏好来决定。 ### 回答3: Vue框架React框架都是目前非常受欢迎的前端框架,它们有各自的优势和发展方向,对比两者的发展情况可以从以下几个方面进行分析: 1. 生态系统:React 拥有更庞大和活跃的生态系统,拥有更多的第三方库和组件可供选择,有更多的开源项目和社区支持。Vue 作为一个相对较新的框架,尽管生态系统也在迅速增长,但相对 React 还是稍显不足。但是Vue的易学性和上手难度较低,使得一些小型项目或新手更容易上手。 2. 性能:Vue 框架在性能方面表现优秀,其采用了虚拟DOM和异步渲染的机制,使得页面更新更加高效。而 React 则使用了Fiber架构,提供了更好的性能,能够更好地处理大型应用的性能问题。 3. 社区和支持:React 拥有更多的用户和开发者,有着更多的教程、博客、文档以及社区问答平台,以及由 Facebook 背书,因此开发者能够更加方便地找到解决问题的方法和资源。而Vue也有一个庞大的社区,但相对React还是稍逊一筹。 总的来说,Vue 和 React 都有各自的优势和适用场景。React适合构建大型复杂应用,而Vue则更适合快速的原型开发和小型项目。最终的选择应根据具体项目需求、团队技术栈和个人喜好来决定。无论选择哪个框架,都需要不断学习和探索,跟随其发展步伐。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值