本文转载自微信公众号「微月人话」,作者卫剑钒。转载本文请联系微月人话公众号。
在百度里面搜“斯托曼 GPL”,第一条就是“GPL协议大剖析—GPL就是给软件开发者们准备的坑”( http://www.stallman.cn/38 ),这是一篇猛烈抨击GPL和斯托曼的文章,该网站名为“斯托曼与GNU运动评论”,域名居然是stallman.cn,这可真是太有趣了,略扫一眼,便极大地激发了我的辩论欲。
该网站明目张胆声称:“理查德·马修·斯托曼(RMS),自由软件运动(GNU)发起人、自由软件基金会(FSF)前主席、与知识产权为敌的斗士、XX派、对XXX、XXX等XXXXX也要送温暖的极端左翼分子,被人尊称为顶级黑客、精神领袖,不过是明日黄花。开办此站的目的是正本清源、破除对RMS的迷信、揭露GNU运动的本质、最大程度地清除GNU带毒意识形态。”
这种文风的话语,给我就一个感觉:太嚣张了。
必须得怼回去!
文章没有直接标明作者,但看了一下网站页面底部,作者应该是一个叫“小衲”的人(他似乎还有个网站叫linux.zone)。
小衲在该文中,以标注的形式,对GPLv3全文进行大肆抨击,选用的翻译版本是阮坤良版1。
GPL本身比较难懂,虽然阮版已经翻译的很不错了,但小衲在很多地方还是没有看明白,有很多自称看不懂的地方,也有很多完全理解错误的地方。这些地方我就不说了,直接无视。
我就说说一些可能还有点市场的论点,这些观点多少反映了一些人的困惑。
注1:本文中的GPL,不特指某个版本,虽然主要是说v3。
注2:本文中举的一些开源软件的例子,很多并不是GPL软件,但就是个例子而已,不用太纠结。正如小衲貌似批判GPL,很多地方更多是批判开源精神。
注3:本文所说“GPL软件”,是指按照GPL许可证发布的软件。
图片来自《The Dig》(右边那人像不像stallman?)
下面列出该文的主要谬误和迷思,并一一点评。
纵观该文,小衲的困惑主要是以下五点:
一、为什么只为用户着想,而欺负开发者?
小衲说:“近来细读了一下GPL协议中文版,发现它满是针对开发者的霸王条款,分不清开源的主方(开发者)和客方(用户),一个劲的强调用户自由自由自由,浅一看,挺美好,挺蛊惑人心,但只要仔细想想,这个只为用户着想的协议,本身前提就搞错了。没有开发者的代码,哪里来用户的自由?”
此人可能没有搞清楚开源软件的“用户”是什么概念,据我所知,凡是对源代码感兴趣的,都是程序员,都是软件公司,君不见,那些互联网大厂,哪个不是开源软件和开源代码的重度用户?!那些混迹在各个软件公司、各个甲方、乙方的所谓软件工程师、架构师,哪个不是高度受益于开源软件和开源代码?
从Linux到Android,从MySQL到Postgres,从Hadoop到Elasticsearch,从Apache到Nginx,从Docker到Kubernetes,哪家大厂没有用过?哪个代码是给最终用户看的?
所以,开源代码,最大的受益者是开发者、是软件公司、是互联网公司。
所以,GPL所给的自由,是开发者享受了最多!
不过,今后的世界将进入软件的世界,人人都将成为程序员。自由软件最终造福的,是所有人。
二、GPL自相矛盾,到底免费还是收费?
小衲说“GPL通篇都是一小撮人的一厢情愿,充满自相矛盾的表述,一会儿说所谓自由非免费,一会儿又说开源必须免费,真不知道经历了多少次内斗才形成这么一个文本!”
小衲看来对GPL允许收费的若干处描述没有完全看明白,尤其是他对第10条的理解完全错误(小衲错误以为“一旦第一次对自由软件进行收费,就不能重复收费”,完全不是那么回事嘛,有空可以看看我的“人话解读GPLv3”)。
其实,斯托曼也是人,也知道程序员要吃饭,他当年也曾靠卖Emacs过活,所以并不排斥收费。
下面是我整理的GPL关于收费的部分,给小衲以及不了解这块的看客解个惑。
GPL认为可以收费的有这么几种:
1、你可以卖别人写的开源代码。
比如你可以卖Linux内核源代码,虽然你没有写过一行Linux代码,你都可以卖,而且你收多少钱都可以。
但这里面的逻辑在于:你会下载,别人也会下载,别人为什么要从你这里买?除非他不知道这是开源的。
或者,除非是你整理得很好,包装得很漂亮,弄得很方便,收费也不贵,那是有人乐意花钱买的。(就好比有些收费的Linux发行版)
去年有人在“咸鱼”上买一个开源程序“新蜂商城”,他卖30元,也确实有人买,因为他还手把手教人怎么搭建呢!
“新蜂商城”作者可没兴趣干这事。
2、你可以卖你修改过的别人的代码。
你收多少钱都可以。你觉得有人买就行。
你不要太高估了别人买你修改过代码的兴趣。
就好比你把Vim的源码改了改,你卖,你说能卖多少呢?所以不用给你限价。
3、你可以卖目标码。
所谓目标码,可以简单理解为可执行文件这类。
通常,所有商业软件卖的其实都是目标码。
目标码你卖多少钱都行,但你要免费或者以不高于成本价提供源码。
由于你提供了源码,这样一来,别人也可以做出目标码,别人也可以卖,所以竞价就开始了。
由于作者(可以是公司、团队等)毕竟比较正宗、权威一些,所以可以卖的贵一点,毕竟大家都认他嘛!
为什么说要给源码限价(免费或者不高于成本价)?
我想到的一个原因是,对于一个GPL软件,如果你是作者或者衍生品作者,软件你收10万元,源码你收1000万(如果不限价),由于源码只在你手里,那几乎就是不开源了,因为一般人也买不起。除非有人花1000万买下来挂网上,大家才能免费获得。
4、你可以收维保费。
就是说,你帮着安装软件、帮着解决问题和故障、帮着升级打补丁、帮着定期来看看有没有异常啥的,这种收费我觉得很正常,这就是一种服务费,也是一种典型的商业盈利模式(如红帽订阅)。
大多数有点钱的甲方,都会买大量的维保服务,以免出了事没人托底。
5、其他并不在GPL关注范围之内的情况。
你可以用一切不违反GPL或者与GPL无关的方式赚钱,比如你用GPL软件提供云服务来赚钱(用这种的太多了);你可以利用自己的名声赚钱;原创作者可以通过双许可证赚钱(下面会提到);原创作者还可以弄一个多一些功能的企业版(就是专有软件)来赚钱。
注意,上面说的是可以收费的情况。GPLv3里面还有一条(第10条)是明令禁止收费的:
你不能收GPL软件的版权费、专利费、许可费、版税等等这类授权费。授权都只能是免费的。
三、写代码这么辛苦,为什么让我们免费!
小衲说:“码代码是非常辛苦的活动,有时甚至可以用呕心沥血、鞠躬尽瘁来形容,在这种情况下正当权益还要被GPL剥夺,不是作死吗?”
本人评论:如果你是一个软件的原创作者,没人逼着你开源你的代码,没人逼着你用GPL。
用不用GPL,对原创作者而言,是一个心甘情愿自主选择的事。
而如果你只是拿了别人的GPL源码,做了一些改动,你再呕心沥血,你也要贡献出源码。
道理是很浅显的,你免费用了我的代码,你也要回馈一些,对不对,这很公平吧!
不服你就当原创作者。
当原创作者是有很多好处的,你可以选择不用GPL,而且,即便你用了GPL,你仍然可以再用另一个许可证专门卖给企业。
有人会感到奇怪,一个已经用了GPL的软件,同时可以再以其他商业许可证出售?
是的,因为你是原创作者。你是版权人,你可以给一部分人用GPL授权,给另一部分人用其他许可证授权。
有人会说,那既然有开源的,为什么还会有人去买你其他许可证的呢?
有这么一种情况:企业想用某个开源软件,但又不想把自己的修改版开源,这时就可以花钱请作者授权,许可让自己的修改版无需开源。
说白了,就是“花钱免传染”。
GPL第5条说:“本许可证不允许你以其他形式授权该衍生作品。但如果你得到有权人的允许,那你就可以。”
MiniGUI采用这种双许可证模式,仅在2007至2012年,就获得几千万元的软件许可收费。2
四、为什么开发者只有虚名,没有权利!
小衲说:“GPL协议长篇大论,目的就一个:“确保用户的自由”,而且这个自由是绝对的自由。至于开发者的权利呢?就一条:申明版权,然而这个版权只是个虚名而已。”
本人评论:我活这么大,发现就是有些人,死活也不相信,这个世界真有能做无私贡献的人。
依我这么多年对人性的了解,做无私奉献的人,光他获得的成就感、优越感、声望感,早就把他满足若干遍了,还要啥自行车!
五、开放了源码,怎么挣钱?
GPL第6条说目标码可以收费,源码要免费(或不高于成本)。小衲评论说:“这是为同行(英文counterpart冤家)大开方便之门啊。有了免费的源码,二进制包继续收费有什么意义?”
本人评论:没错,有了源码,理论上大家都可以做出目标码。
所以开源代码的目标码通常也不收费。我下载过很多开源软件的目标码,几乎没见到有收费的。
但GPL的初心,本来就不是赚大钱的。
就好比你不能埋怨一个慈善组织,说他赚钱太少。
想赚钱,你要靠其他方法,你不能靠建立或加入慈善组织来赚钱。
结语
怎么说呢,一个很现实很狭隘的人,理解不了有理想有情怀的人。
一个满脑子资本主义的人,理解不了共产主义。