为什么我选择BSD-2-Clause许可证?

注意
本文最后更新于 2025-09-17,文中内容可能已过时。

搞开源的,应该都知道许可证这东西,用的最多的当然就是GPLMIT。不过我却相当不待见这两个许可证。

我的理念:最小约束,最大自由

多年来,我经历了从盲目追随主流到形成自己立场的转变。我既不赞同GPL的_“父爱式管制”,也拒绝MIT的“毫无节制的宽容”_。我的核心信念很简单:

我应对我的作品保留最基本、最合理的约束,同时给予使用者最大限度的自由。

这一理念引导我走向BSD许可证家族,尤其是BSD-2-Clause(简化BSD许可证)。

许可证光谱:从管制到放纵

让我们用一张光谱图来理解主要许可证的哲学定位:

1
2
3
4
5

GPL ───── MPL ───── Apache ─── BSD-3 ──── BSD-2 ──── MIT ──── 公有领域
│         │         │         │           │         │         │
强制回馈  文件级保护 专利保护+  署名+不代言  纯署名    无约束     完全放弃
自由     弱传染性   商业友好   道德约束                

我为什么拒绝光谱的两极

反对GPL:并非因为它不好,而是因为它的哲学基础与我的信念相悖。GPL���信“真正的自由需要强制保护”,用法律手段确保自由永远传递。这很崇高,但我认为它用限制开发者自由的方式保护用户自由,这与我“最大自由”的理念冲突。

反对MIT:它过于天真。将代码投入世界时说“随便用,我不在乎”听起来很酷,但实际上放弃了所有道德主张。MIT允许:

1
2
3
4
5
6
7
8

    抹去我的署名

    将代码用于恶意目的

    用专利进行攻击(因为没有专利条款)

    无任何回馈义务

这在我眼中不是自由,而是责任的放弃。

BSD-2-Clause:优雅的平衡点

1
2
3
4
5
6

BSD-2-Clause(又称"简化BSD许可证"或"FreeBSD许可证")只有两个核心要求:

    保留版权声明

    免责声明

就这么简单。

它给予的自由:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12

    任意使用(商业、个人、教育)

    任意修改

    闭源分发

    重新许可(可整合到其他许可证项目中)

    无专利报复条款的复杂性

    无“传染性”要求

它保留的约束:

1
2
3
4

    署名权:使用者必须承认你的劳动

    责任界限:你不对使用后果负责

为什么不是BSD-3-Clause?

BSD-3-Clause增加了第三个条款:“不得使用作者名称为衍生作品背书或推广”。

这个条款很有道理,但我发现:

1
2
3
4
5
6

    在实践中很少被违反

    增加了一点法律复杂性

    对于真正想恶意使用的人来说,约束力有限

BSD-2更简洁、更纯粹,完美体现了“最小约束”原则。

我的最终选择

基于我的哲学,我为不同场景制定了清晰的策略:

  1. 个人小项目 → BSD-2-Clause

    工具脚本、小型库、实验性项目

    理由:简单明了,鼓励随意使用和传播

  2. 大型项目 → Apache 2.0

    框架、基础设施、可能涉及专利的代码

    理由:专利保护在现代软件生态中越来越重要

  3. 文档和创意作品 → CC BY 4.0

    使用指南、设计文档、博客主题

    理由:为创意作品设计,明确署名要求

  4. 永远不会选择的:

    GPL家族:违反我的“最大自由”原则

    MIT:放弃太多,约束太少

    SSPL/BSL等“源码可用”许可证:不是真正的开源

给开发者的建议

当你不确定时:

  • 从小开始:用BSD-2开始你的开源之旅

  • 明确声明:在README顶部清晰标明许可证

  • 保持一致性:项目内所有代码使用相同许可证

考虑你的受众:

  • 希望广泛采用?选择宽松许可证(BSD、Apache)

  • 构建社区项目?考虑弱copyleft(MPL)

  • 有强烈的道德立场?研究Hippocratic许可证变体

一个简单的决策流程:

1
2
3
4
5
6

你的优先考虑是什么?
├─ 最大采用和自由 → BSD-2
├─ 需要专利保护 → Apache 2.0  
├─ 希望改进开源但允许闭源使用 → MPL 2.0
└─ 确保所有衍生品开源 → GPL

结语:选择即宣言

许可证选择不是技术决策,而是价值观的表达。每个选择可以这么总结:

1
2
3
4
5
6
7
8

    MIT说:“我不在乎,拿去吧,干什么都可以,与我无关”

    GPL说:“你可以用,但必须遵守我的规则,你享有的自由是我定义的”

    Apache说:“自由使用,但让我们互相保护”

    BSD说:“这是我送给任何人的礼物,收到礼物的人要记得是谁给的,然后去做伟大之事”

大道至简,BSD-2-Clause的简洁与优雅,或许就是自由的最终含义。


本文采用BSD-2-Clause许可证发布。你可以自由使用、修改、分发,只需保留此处的原始署名和许可证声明。