首页 > 应用开发 > Python > 有人说开源了就别管别人怎么用,我不同意
一条让我想了很久的评论 上篇“我开源的项目被人拿去卖钱了”的评论区,有一条:
“你开源了还管别人用来干啥。”
3个赞。
这条评论代表了很多人的想法:开源就是免费,免费就是随便用,作者管不着。
我不同意。今天说说为什么。
开源不等于“随便用” 开源协议是有条件的授权,不是无条件的放弃。
你选MIT,别人可以商用、可以改、可以闭源,但必须保留你的版权声明。 你选GPL,别人可以商用、可以改,但衍生作品必须开源。 你选AGPL,别人可以商用、可以改,但在网络服务场景下,修改部分必须开源。
不同的协议,不同的条件。 但所有开源协议都有一个共同点:你必须遵守协议,才能使用。
“开源了就别管别人怎么用”——这句话的潜台词是“协议不重要”。但协议是开源生态的基石。没有协议,开源就是一团乱麻。
我管的是什么? 那个卖我项目的人,如果只是原样部署、卖给客户,AGPL允许,我不管。
但如果他改了代码、在公网提供服务、拒绝开源修改部分,我就要管。因为他的行为违反了协议。
我管的不是“别人用我的代码”,是“别人违反我定的规则”。
打个比方:公园免费开放,谁都可以进。但你不能在公园里摆摊卖东西,因为公园的规定不允许。免费开放不等于没有规则。
评论区还有一个问题:“变成公司的呢?” 有人问:“如果那个卖我项目的人注册了一家公司,用我的项目做商业服务,我还能管吗?”
能管。 AGPL v3.0协议不区分个人和公司。只要违反协议,个人和公司都可以追责。区别在于,告公司的成本更高,但胜诉后的赔偿也更高。
但我大概率不会告。 不是因为没理,是因为时间和精力耗不起。我一个人维护项目,打官司的几个月里,项目就停了。
一个更深的问题:开源作者到底图什么? 评论区有人说:“中国开源顶梁柱,很多都是顶着所谓‘开源’,既想又想。”
这句话说对了一半。
开源作者确实“既想又想”——既想项目被广泛使用,又想自己的付出被认可。这有错吗?
我觉得没有。
一个人利用业余时间写代码、写文档、回Issue,把项目免费开放给所有人用。他希望有人点个Star、提个Issue、说声谢谢,这过分吗?
开源不是做慈善。 作者也需要正反馈。Star是正反馈,Issue是正反馈,打赏是正反馈,“跑起来了很稳”也是正反馈。
如果所有正反馈都没有,只有白嫖和抱怨,那开源作者凭什么坚持下去?
我的底线 我不反对别人用我的代码赚钱。AGPL允许商业使用,我认。
但我反对两件事:
第一,违反协议。 改了代码、在公网提供服务、拒绝开源。这是违约,不是“用你的代码”。
第二,把开源当理所当然。 觉得作者就该免费服务、就该随叫随到、就该满足所有需求。这是绑架,不是使用。
项目现状 PyGBSentry已经开源,AGPL v3.0协议,核心功能全部开源,永/久免费。支持GB/T 28181-2022,向下兼容2016版。
部署三条命令:
git clone https://gitee.com/suoten/PyGBSentry.git
cd PyGBSentry/editions/open-source
python tools/generate_env.py --docker && docker compose up -d
Gitee: suoten/PyGBSentry GitHub: suoten/PyGBSentry
你觉得开源作者该不该管别人怎么用?评论区聊聊。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70050062/viewspace-3185952/ ,如需转载,请注明出处,否则将追究法律责任。