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

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