数据网格组件 Handsontable 本月初发布了一个公告,表示从 Handsontable 7.0.0 版本起,Handsontable Pro 和 Handsontable CE 会合并到一起,并且不再开源(采用 source-available 的形式提供源码),转而使用自拟的非商业许可证。官方称这个许可证为‘free for non-commercial and evaluation’(免费用于非商业和评估)。
更改从2019年3月6日发布的 7.0.0 版本开始生效,摘要如下:
- Handsontable Pro 合并到 Handsontable CE 社区版
- 合并后软件名统称为“Handsontable”
- Handsontable 7.0.0 是 Handsontable CE 6.2.2 和 Handsontable Pro 6.2.2 的继承者
- 之前的 MIT 开源许可证被替换为自拟的‘free for non-commercial and evaluation’许可证
- NPM 上的 Handsontable Pro 软件包被标记为已弃用状态,对应的 GitHub 仓库也已经被归档(处于只读状态)
改变背后的原因
Handsontable CEO 表示,一直以来,Handsontable 基本上是依靠出售 Handsontable Pro 获得的收入而维持运转 —— 这与当初期望开源项目在社区的帮助下而稳步发展的愿景有所出入。更不幸的是,Handsontable 付费用户和免费用户的比例大约为 1:25,如此微薄的收入不得不让他重新思考 Handsontable 的未来。经过长期而激烈的内部讨论后,大家达成了共识,最后认为继续投资该产品的唯一方法是将更多免费用户转换为付费用户。
他们希望不断改进 Handsontable,他们也有极具前瞻性的路线图和充满激情的团队,但更需要一种更加平衡的商业模式以支持长期的目标。
新许可证
新许可证适用于所有使用 Handsontable 用于非商业目的的人,官方表示旨在提供免费软件,特别是以下用户:
- 科学家用于研究和开发
- 学生和老师
- 希望试用该软件的用户
- 真正的非营利组织
- 进行开发和测试的公司
在技术方面,除许可证外,Handsontable 的可用性和开放性方面没有任何变化。它依然会托管在 GitHub 上,并会审查用户提交的 PR。
对于购买了 Handsontable Pro 的客户,唯一改变的是 GitHub 仓库和 NPM 包名称。Handsontable Pro 仓库已被归档,处于只读状态。
由于变更是从 Handsontable 7.0 版本才开始生效,所以 Handsontable CE 6.2.2 及更低版本使用的依然是 MIT 许可证。你可以 fork 这些版本并在许可证允许的范围内进行任意的改动以满足需求,但请注意,官方表示没有计划在未来维护之前的 OSS 版本,因为这会导致开发更加复杂。
各方观点
浏览公告下面的评论,对于 Handsontable 这个决定,有人支持也有人反对,不过总的还是支持者居多。也有别的开发者给出了一些建议,例如 CKEditor 5 的项目负责人表示可以选择不那么宽松的开源许可证,如 GPL。也有开发者建议在 Handsontable 中添加“Powered by Handsontable”的文字(如网格组件底部),其中包含指向非商业版页面的链接。
Handsontable 是一个基于 JavaScript/HTML 5 的数据网格组件,可用于 React,Vue 和 Angular。