Python附魔书 番外篇4:开源协议的前世今生

引言:一场关于自由与共享的持久战

在软件产业初期,源代码被视为企业的核心资产,各家企业严格保密,不示外人。这种封闭、私有的模式,引发了理查德斯托曼等人的坚决反对。

理查德认为,软件的自由关系着人类的自由,他要让技术造福整个社会,而不是少数几家商业公司。

于是,1983年,GNU项目启动了。理查德创造性地提出了象征自由、开放、社区、共产的"Copyleft"的概念,以对标象征封闭、私有、专利的 Copyright 体系。

从传播性的GNU GPL家族,到更加宽松的Apache、MIT,开源社区与 Copyright 的斗争从未停止。GPL的传染性、Apache的开放性、MIT的极简主义,共同组成了开源许可证的三大主要流派。但无论如何演变,开源运动始终坚持着最初的理想:让软件成为人类共同的财富,而不是少数人的特权。这种共产精神,才是当今世界数字文明蓬勃发展、不断进步的内驱动力。

常见的开源许可证

GNU GPL家族

  • GNU General Public License (GPL)

    • :white_check_mark:允许自由地运行程序
    • :white_check_mark:允许自由地阅读、学习、修改代码
    • :white_check_mark:允许自由地分发原版或修改的程序
    • :no_entry:必须以GPL兼容的许可证开源发布修改后的程序。
    • :no_entry:必须保证自由分发,不得添加额外的限制。
  • GNU Lesser General Public License (LGPL)

    • :white_check_mark:在GNU-GPL的基础上,
    • :white_check_mark:允许非GPL软件链接到LGPL开源的库,无需开源
    • :warning:但对于LGPL库本身的修改,必须以LGPL或GPL发布
  • GNU Affero General Public License (AGPL)

    • :white_check_mark:在GNU-GPL的基础上,
    • :no_entry:必须以AGPL兼容的许可证开源发布修改后的程序。
    • :no_entry:通过网络提供的服务,如果使用了AGPL授权的软件,则必须开源该服务端的代码。

Apache所代表的开放性许可证

  • Apache 2.0 License
    • :white_check_mark:允许免费使用软件
    • :white_check_mark:允许自由地修改、分发软件,并对修改后的软件再许可
    • :no_entry:必须保留版权声名
    • :no_entry:必须保留原始的许可证
  • BSD License
    • :white_check_mark:允许免费使用软件
    • :white_check_mark:允许自由地修改、分发软件,并对修改后的软件再许可
    • :white_check_mark:允许以其他许可证分发修改后的软件
    • :no_entry:必须保留版权声名

MIT许可所代表的极简主义

极简、宽松,仅保留最基本的版权声明和许可声明,这就是MIT这类极简主义许可证的主要特点。

  • MIT License
    MIT License来自于麻省理工(MIT),它的内容总结起来非常简单:允许任何用途,只需保留版权声明和许可声明。
  • Unlicense
    放弃版权,将软件完全释放到公共领域。
  • WTFPL
    简单且粗暴的开源许可证,正文仅一句话:“Do What The Fuck You Want”,做你她娘想做的任何事。
  • Beerware
    如果遇到作者并觉得软件有用,可以请作者喝一杯啤酒。唯此,无他。

我该如何选择许可证

没有绝对完美的许可证,只有最适合特定场景的许可证。

严格且具有传染性的许可证,例如GNU-GPL系列,可以有效保证软件的公开和免费,但有可能挫伤其他人二次开发的积极性。选择具体使用什么许可证的时候,我们需要在这两者中做出权衡。因此,对于那些刚刚接触开源的开发者,我建议通过以下标准来合理选择许可证:
如果你的软件是一个成品,例如一个服务器,一个功能完备的程序,那么你可以选择GPL系列许可证;但是如果你开发的是一个模块、一个底层功能,那么GPL通常不是好的选择,你更应该看看BSD或者MIT这样的开放性许可证。当然,如果你希望你的软件彻底公开和自由,同时你也有一个有趣的灵魂,那么WTFPL和Beerware就是你的不二之选。

至于我?

KFC Crazy Thursday Public License

This software is provided "as is", without warranty of any kind.

However, if you find this software useful, you can buy the author a KFC Crazy Thursday meal. You can do this by V me 50 CNY on any Thursday.
11 个赞

她来啦她来啦 python仙人又来啦

你太快了

4 个赞

太强了!仙术大师

那你能V我50吗 :sob:

1 个赞

时间错了,今天应该是你v我 :tieba_087:

时间不对

1 个赞

感谢分享 这个50就很灵性 :tieba_013:

感谢分享

我翔子哥呢?被你用搓衣板封印了?

2 个赞

估计还在打游戏

2 个赞

羡慕捏 :tieba_087:

我也羡慕

1 个赞

向大佬低头

今天是星期四,能V我50吗 :tieba_087:

1 个赞

猝不及防

你这帖子发的时间不对啊 :tieba_093:

太强了!Copyleft

这是我见过最长最有文化的燕国地图 :bili_038: