論“GPL就是給軟件開發者們準備的坑”
本文轉載自微信公眾號「微月人話」,作者衛劍釩。轉載本文請聯系微月人話公眾號。
在百度里面搜“斯托曼 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的初心,本來就不是賺大錢的。
就好比你不能埋怨一個慈善組織,說他賺錢太少。
想賺錢,你要靠其他方法,你不能靠建立或加入慈善組織來賺錢。
結語
怎么說呢,一個很現實很狹隘的人,理解不了有理想有情懷的人。
一個滿腦子資本主義的人,理解不了共產主義。