資深工程師教你如何選擇開源協(xié)議
踐行開源
現(xiàn)在開源已經(jīng)不僅僅是精神,很多國內(nèi)外的公司已經(jīng)真正的踐行起來。包括FEX,目前已開源了20 多個產(chǎn)品,有賴于很多前端開發(fā)者的支持,在GitHub上的 Star 數(shù)量已經(jīng)接近3000。 所以,自然也面臨開源協(xié)議選擇的問題。

現(xiàn)在市面上的開源協(xié)議很多,至少有100多種,但經(jīng)過開源促進會 (Open Source Initiative)認可的開源協(xié)議也多達70多種。
今天簡單的介紹一下,百度FEX 是如何選擇開源協(xié)議,相信這會對你開源協(xié)議選擇有所幫助。
WTFPL
“WTFPL”是“Do What The Fuck You Want To Public License”的簡寫,中文可以翻譯成“你他媽的想干嘛就干嘛'公共許可證'”,是眾多開源協(xié)議里“最黃最暴力”的一種。雖然這個協(xié)議用得并不多,但還是提一下,因為它是最極端的一種開源協(xié)議,完全沒有 Copyright 和Copyleft 的概念。
什么是 Copyright 和 Copyleft
在通常的商業(yè)軟件中,Copyright (著作權(quán))很常見,它的意思是保留所有權(quán)利,在這里不多作介紹。 而Copyleft(著佐權(quán)) 是一個由自由軟件運動所發(fā)展的概念,是一種利用現(xiàn)有著作權(quán)體制來挑戰(zhàn)該體制的授權(quán)方式。下圖是它的標志,即 Copyright 中的“C”由右朝左了。
踐行 Copyleft 最常見的的協(xié)議有GPL。即如果你使用了這份開源代碼,要求使用者改作后的衍生作品必須要以同等的授權(quán)方式釋出以回饋社會。這意味著,如果是商業(yè)軟件使用這樣的開源代碼并改動,商業(yè)價值有可能會下降。而 Copyleft 也是很多開源協(xié)議的標志性特點。
六種常用開源協(xié)議
知道了 Copyright 和 Copyleft, 對主要的開源協(xié)議有非常重要的影響。下面介紹大多數(shù)公司用得最多的只有6種開源協(xié)議:LGPL、Mozilla、GPL、BSD、MIT、Apache。
烏克蘭程序員 Paul Bagwell,畫了一張分析圖說明應(yīng)該怎么選擇。 只用兩分鐘能搞清楚這6種許可證之間的最大區(qū)別。阮一峰老師將它翻譯成了中文,我在此也選用該圖,此圖也無需過多解釋了:
案例:我們?nèi)绾芜x擇開源協(xié)議
我們最后選擇是用 BSD 協(xié)議。它與 MIT 協(xié)議的區(qū)別在于是否用“你”的名字促銷。也就是說,如果我們用MIT 協(xié)議,當別人修改完我們的代碼時,可以用FEX的名義推廣。
如果是針對個人而言,則是一個很好的擴散影響力的機會。但對于一個企業(yè)或組織來說,我們認為這可能是一個風(fēng)險點。有人會問,你們?yōu)槭裁床挥?GPL 協(xié)議?其實就是我上邊說的 Copyleft 與 Copyright 的區(qū)別了。
我們認為,對于使用者來說。他自由選擇是公開版權(quán),會更有利于讓更多前端開發(fā)者使用我們的開源產(chǎn)品,使用者越多也就能讓我們得到更多的使用反饋,有助于我們第一時間發(fā)現(xiàn)并解決問題,也有利于 FEX“技術(shù)生態(tài)”建設(shè),使技術(shù)長期的產(chǎn)出更有持續(xù)性。
目前我們每天可以收到 GitHub 上的 ISSUE 反饋多達 100 多條,這為 FEX 的產(chǎn)品打磨有非常重要的影響。WebUploader 就是一個非常典型的案例,從開源后到現(xiàn)在,它的兼容問題與上傳性能穩(wěn)定持續(xù)提升,目前已經(jīng)是國內(nèi)很多公司圖片上傳的首選了。
我也希望越來越多的公司走到開源陣營中來,讓開源真正踐行開,使大家都能獲益。