为什么我选择BSD-2-Clause许可证?
搞开源的,应该都知道许可证这东西,用的最多的当然就是GPL和MIT。不过我却相当不待见这两个许可证。
我的理念:最小约束,最大自由
多年来,我经历了从盲目追随主流到形成自己立场的转变。我既不赞同GPL的_“父爱式管制”,也拒绝MIT的“毫无节制的宽容”_。我的核心信念很简单:
我应对我的作品保留最基本、最合理的约束,同时给予使用者最大限度的自由。
这一理念引导我走向BSD许可证家族,尤其是BSD-2-Clause(简化BSD许可证)。
许可证光谱:从管制到放纵
让我们用一张光谱图来理解主要许可证的哲学定位:
|
|
我为什么拒绝光谱的两极
反对GPL:并非因为它不好,而是因为它的哲学基础与我的信念相悖。GPL���信“真正的自由需要强制保护”,用法律手段确保自由永远传递。这很崇高,但我认为它用限制开发者自由的方式保护用户自由,这与我“最大自由”的理念冲突。
反对MIT:它过于天真。将代码投入世界时说“随便用,我不在乎”听起来很酷,但实际上放弃了所有道德主张。MIT允许:
|
|
这在我眼中不是自由,而是责任的放弃。
BSD-2-Clause:优雅的平衡点
|
|
就这么简单。
它给予的自由:
|
|
它保留的约束:
|
|
为什么不是BSD-3-Clause?
BSD-3-Clause增加了第三个条款:“不得使用作者名称为衍生作品背书或推广”。
这个条款很有道理,但我发现:
|
|
BSD-2更简洁、更纯粹,完美体现了“最小约束”原则。
我的最终选择
基于我的哲学,我为不同场景制定了清晰的策略:
-
个人小项目 → BSD-2-Clause
工具脚本、小型库、实验性项目
理由:简单明了,鼓励随意使用和传播
-
大型项目 → Apache 2.0
框架、基础设施、可能涉及专利的代码
理由:专利保护在现代软件生态中越来越重要
-
文档和创意作品 → CC BY 4.0
使用指南、设计文档、博客主题
理由:为创意作品设计,明确署名要求
-
永远不会选择的:
GPL家族:违反我的“最大自由”原则
MIT:放弃太多,约束太少
SSPL/BSL等“源码可用”许可证:不是真正的开源
给开发者的建议
当你不确定时:
-
从小开始:用BSD-2开始你的开源之旅
-
明确声明:在README顶部清晰标明许可证
-
保持一致性:项目内所有代码使用相同许可证
考虑你的受众:
-
希望广泛采用?选择宽松许可证(BSD、Apache)
-
构建社区项目?考虑弱copyleft(MPL)
-
有强烈的道德立场?研究Hippocratic许可证变体
一个简单的决策流程:
|
|
结语:选择即宣言
许可证选择不是技术决策,而是价值观的表达。每个选择可以这么总结:
|
|
大道至简,BSD-2-Clause的简洁与优雅,或许就是自由的最终含义。
本文采用BSD-2-Clause许可证发布。你可以自由使用、修改、分发,只需保留此处的原始署名和许可证声明。