GPL 开源协议才是对自由软件世界的独立性之最大威胁

2019-02-21 17:12:33 +08:00
 noli
仔细想想这个问题,我觉得应该会有相当多的人明白 GPL 背后隐藏的巨大陷阱。
IBM,Oracle 等等,愿意投入人力物力到 GPL 的代码之中,真的是一种慷慨吗?

完全 GPL 的 Linux 内核,除了真的是开源的之外,现在真的对我们来说是自由软件吗?
我们实际上真的能够定制 Linux 内核吗?有多少公司或者团队实际上能做得到?
我们实际上可以自由地往内核里面添加想要的功能吗?谁可以做到?

更重要的是,基于 GPL 软件巨头们能够排除其他非 GPL 的竞争对手,同时不会破坏垄断巨头之间的默契。

仔细想想,作为小团队,小个体的我们,除了使用被设定好功能的 GPL 软件,真的能够从 GPL 中获得自由定制功能吗?真的能为更多软件用户作可持续的贡献吗?
4577 次点击
所在节点    奇思妙想
43 条回复
noli
2019-02-24 18:32:31 +08:00
@kahlkn @msg7086

然后还必须接受 GPL 信徒成王败寇逻辑下的蔑视和攻击。

果然 GPL 才是自由软件世界最大的威胁。
noli
2019-02-24 18:45:39 +08:00
@msg7086

如果不希望别人拿去改,那为什么开源?
如果希望开源,但不希望别人用修改后的产品威胁自己的商业利益,那为什么不选择商业授权?

众多开源协议都能提供免责条款,似乎都被你无视了。

我觉得,假如我是 非 GPL 开源的,但我的授权协议与 GPL 冲突,被 GPL 修改了以后我自己反而不能再用了,
你绝不觉得这样的开源更恶心?
xuxueli
2019-02-25 08:52:06 +08:00
GPL 的问题由来已久,这里有一篇分析比较完善的文章。
《为什么 GPL 是更好的开源许可证?》
http://www.ruanyifeng.com/blog/2010/02/why_gpl_is_a_better_choice.html
andyhuzhill
2019-02-25 09:01:27 +08:00
GPL 的 Linux 从 MIT 协议和 BSD 协议的项目中吸取代码, 并没有什么问题阿,本来这些行为不就是 BSD MIT 所允许的么?你使用了 BSD MIT 的代码 甚至可以不用开源的,那么我现在只不过是在原本 BSD MIT 的条件下附加了你所作的修改也必须开源的条件而已,这又有什么问题。

使用任何别人提供的代码,就要遵守对方的授权协议,不管这个协议是商业的 还是开源的。如果你不喜欢 GPL, 大可以完全不用 GPL 协议的代码, FreeBSD 和苹果现在不就是这么做的么,不喜欢 GPL 协议的 GCC, 然后自己开发了 BSD 协议的 Clang。

还有 GPL 并不是 “不希望别人拿去改" 而且希望你所做的修改,其他人也能同样的获得。
edsheeran
2019-02-25 10:34:31 +08:00
自从来了 v 站,中文我都看不懂了
pkoukk
2019-02-25 10:45:34 +08:00
我同意 GPL 是开源协议中非常不友善的一种,但是楼主你主贴里的内容并不是只有 GPL 才有的问题,换个角度来说,你说的那些根本不是问题
noli
2019-02-25 14:35:36 +08:00
@xuxueli MySQL 已经死得差不多了,各种兼容 MySQL 的替代品层出不穷,正好验证了我的说发—— GPL 对创新极不友好。,而阮一峰同志拿 MySQL 作为例子来讲,真是舔 GPL 舔得太早了,毫无鼓气,毫无洞察力。

@andyhuzhill 解决一下我 #20 层里说的,如果我先以 GPL 友好的方式开源,GPL 改完之后,不能再以非 GPL 友好的方式开源的问题。简称 Copyleft 的问题。

@pkoukk 那是因为我(故意)说得不够清楚,你也没看懂。没关系,本来就不是给没有悟性的人看的,也不是给那些不能自己思考问题的人看的。像你这种没有提出任何独立观点的回复,我就回你这么一次吧。
noli
2019-02-25 14:46:14 +08:00
@pkoukk

感觉上一条回复语气过于不友善,我还是补充一下吧。

如果大家(假设程序员)都把自己当作开源世界的一分子,以这个身份来思考问题,那确实 GPL 是救星。
就像大家都把自己当作社会主义新中国的一员,毛主席就是大救星,这是无法质疑的。

但是想想其实你自己离开源的花花世界距离有多远,好好思考作为一个创新者(如果能有创新者的思维方式的话),面对 GPL 竞品的处境。

如果你要做的产品没有 GPL 对手那就算了,如果有,例如像 MySQL,Linux,这样的,大公司们如果愿意投入人力物力,GPL 的方式开源跟进你所做的微小改善,那你很大可能只有举手投降的机会。情形就好像前些年,腾讯人力狂抄别人的创新的做法。而且或许,其他人也还会像你们一样,为 GPL 代码库增长而叫好,甚至反咬一口说你抄袭。

这就是我说的,GPL 对自由软件的威胁,从创新的源头上扼杀潜在竞争对手。
slwl123
2019-02-25 22:57:25 +08:00
感觉 语文白学了啊
问题 1 什么是 “自由软件” ps 个人理解 开源的 每个人都能拿去修改拿去用 不知道对不对
问题 2 把开源的修改后闭源 别人找你要需要代价 还算是自由软件吗
noli
2019-02-25 23:09:10 +08:00
@slwl123

1. 根据 FSF 自己的定义,开源不是自由软件的必要条件——自由软件不一定开源。

V2EX 上有很多优秀的软件作者,他们会根据用户的意见改进功能,也允许用户自由分发。
你觉得这些作者是不是提供了自由软件?

2. 把开源的修改后闭源 别人找你要需要代价 还算是自由软件吗?

这要看别人找我要软件是用来干嘛,如果承诺只用于学习用途,那我给源代码了,但禁止用于商业用途的分发或者再次分发。
这算不算自由软件,得由你自己判断。

你要说这就不是自由软件,那你也给个定义呗。


问题的关键在于,GPL 竞品的存在,扫除了其他一切自由软件的可能性,不管作者愿不愿意给你源代码,不管你愿不愿意付费。
然后 GPL 自身的产品,品质也越来越差。

我说的就是 GCC,MySQL, 等等。
slwl123
2019-02-25 23:23:54 +08:00
@noli #30 wiki 查了下 根据自由软件基金会对其的定义,是一类可以不受限制地自由使用、复制、研究、修改和分发的
明显禁止商用就不算了
那么修改后闭源禁止商用 也是个威胁
noli
2019-02-25 23:49:21 +08:00
@slwl123

你愿意采用了一个更加严格的自由软件定义,为的就是让 GPL 顺利干掉所有你可能用到的非自由软件,我对此感到遗憾。

这情形比较类似于,吃饭为什么要钱,饭堂不是有吗?
kahlkn
2019-02-27 00:33:38 +08:00
@noli 只想说 开源 不一定要去改。就比如 我看到 这个设计思路很好。然后我根据这个思路写了一套自己的,那么是不是也涉及到抄袭代码呢? 就我自己来说,开源不一定要有别人来修改要有别人来看,只想把自己的设计留下来做备忘,万一帮助到别人了更好。 而 GPL 很简单,我不想别人拿了我的设计,改了,做商业做啥呢(做商业啥的不影响),却不把他修改的开源出来让大家学习(影响的是不开源)。

GPL 不禁止商业,但是禁止不开放源码。 我怎么感觉你们都偏向了 GPL 和商业呢! 一个 GPL 的软件,没有特殊条款,应该是可以商业的,而商业可能会有二次修改,这二次修改必须开源。 就相当于你用了我的轮子去谋取利益,我不介意,但是请把你二次修改的代码开源(我觉得这个只有极度热爱代码的人才会想到,因为我相信最初的目的绝对是为了了解对方这样修改的好处等,以更好地优化产品)。

我居然看到了你吐槽 GCC MYSQL 品质差。 行吧,最少我了解的 GCC 应该是 编译器 里面撑起一片天的玩意。MYSQL 不知道多少公司在用。 就算在差,别人也愿意用。 当然也许未来会在这个基础上优化出 更好的。

就此,不要再扯了,谁也说服不了谁,只要热爱着代码就够了。我喜欢 GPL 仅此而已,如果有人用我的东西,我不介意商用,但是让我心痒痒的是他们对这个东西二次开发的思路。
noli
2019-02-27 03:31:36 +08:00
@kahlkn

很明显,我没有可能说服你,反之亦然。
但我孜孜不倦与你讨论的,并不在于 GPL 是怎样设计的,或者说用 GPL 的人是怎样想的。
而是希望让你想到的是,使用 GPL 会有怎样的反直觉的后果。

这个反直觉的地方就是,你以为 GPL 保障了开源者的利益,实际上可能伤害了更多人的利益。
就你的阐述来看,你的考虑是开源出来让大家学习,你的直觉是我可以参考开源的做一套相似的……

但是实际上的情况是,容易实现的、或者规模不大的软件,不需要 GPL 保护,因为别人完全可以重起炉灶。
不容易实现的,规模很大的软件,GPL 只会成为大公司用于打压小规模创新的工具,原因我已经解释过了。 #26

GCC 和 MySQL 的品质当然差。

GCC 和 clang 比 bug 多,生成的代码慢;
MySQL 和 PostgreSQL 比,也是 bug 多,功能和性能与商业数据库的差距,比起 PostgreSQL 都相差太远。

更重要的是,在社区对比来看,为 clang 贡献代码的远比 GCC 活跃;
PostgreSQL 的应用范围也远比 MySQL 广。

就算你不认可我举的例子,你也很容易可以发现 GPL 的出发点 —— 不想别人不开源,这本身就是一种对自由的限制。

在你的软件生涯里面,你使用别人的成果的时间,远多于你的成果被他人所使用的时间。
强制别人开源,最终只会使得每个人,都只能基于不被强制开源的协议来写代码。
因为 GPL 不可能养他们吃饭。

我们都热爱代码,只不过我更热爱选择丰富自由的代码,而不是 GPL 暴政。
dorothyREN
2019-02-27 09:38:29 +08:00
我们实际上真的能够定制 Linux 内核吗?有多少公司或者团队实际上能做得到?
我们实际上可以自由地往内核里面添加想要的功能吗?谁可以做到?
------------
人家给了你机会,你自己不中用还得怪人家喽
kahlkn
2019-02-27 10:00:53 +08:00
@noli 开源( GPL )和 吃饭并不冲突。 即使使用了别人闭源组件,你开源的只是你自己写的调用别人闭源组件的逻辑。然后你要求别人用你写的调用别人闭源组件逻辑时,需要开源他对这个调用逻辑的修改(请注意这个,他对这个逻辑修改之后,可以再打包开源,然后自己的商业东西不开源来调用这个打包的被迫开源的东西)。 至于使用别人的成果,对的我经常使用别人二进制的成果,如果你想要学习别人的代码,抱歉,你只能反编译和反混淆。 去追求你的不开源把。到最后你会发现无码可阅,是无私分享的精神促进了开源。 强制开源就是为了保证分享人的权益,你分享了自己的代码,你要二次修改,你就得再分享出来,但并没有保证分享人能有经济收益。
noli
2019-02-27 13:20:26 +08:00
@dorothyREN

瞧你说的,马云都把成功经验无偿分享给大家了,你怎么没马云的万分之一强呢?不中用啊。
noli
2019-02-27 13:31:16 +08:00
@kahlkn 说来说去你的目的就只为了学习。说得好像别的开源代码就不能学习似的,也说得我好像不用 GPL 就是追求闭源似的。只能说你在学校的环境真是太单纯,从来没想过利益之争在开源世界也是生死大事。

顺带你还鄙视了比 GPL 社区大得多的开源社区。

竖子不足与谋。
noli
2019-02-28 22:11:11 +08:00
重温了一下几层楼里面的回复,发现 GPL 主义者都有些精神分裂:

1. 一方面强调 GPL 强制开源是好事,但另一方面却从不考虑这软件依然有不开源的可能性。
既然不开源是可能的,为什么还指望强制别人开源是有效果的?

如果别人没有开源的意愿,为什么相信 GPL 能让人愿意开源?
这几乎就是一种占便宜的心态,巴不得所有代码都沾上了 GPL 的极端主义。

2. GPL 的很多软件,都需要募集捐款来专门聘请人员维护开发,
但在这些 GPL 主义者对商业开发却嗤之以鼻,认为不开源就不足以成为贡献……

怎么说呢,也不是不可以高姿态,就是比较不谙世事的感觉吧。

3. 对其他开源方式不屑一顾,不传染开源就都有可能被闭源……

感觉就像说,如果人人都搞基,人类是不是要灭绝,大概是这个意思吧。
dalieba
2019-03-01 12:24:18 +08:00
答案很简单,你行就上

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/537336

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX