劉平川:如何選擇開源協議

刘平川發表於2014-09-04

踐行開源

現在開源已經不僅僅是精神,很多國內外的公司已經真正的踐行起來。包括 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 就是一個非常典型的案例,從開源後到現在,它的相容問題與上傳效能穩定持續提升,目前已經是國內很多公司圖片上傳的首選了。 

我也希望越來越多的公司走到開源陣營中來,讓開源真正踐行開,使大家都能獲益。 

【關於作者】劉平川,網名 rank;微信公眾號:HiNotes,百度 FEX 負責人。原百度有啊資深前端開發工程師,從事過 C2C/垂直電商/O2O/SNS/支付 等業務研發工作,原百度前端使用者行為分析系統創始人。關注前端/客戶端技術,同時也關注電商及新興產品。目前在百度FEX,負責全端整體基礎技術研發技術及管理方面的工作。FEX 團隊中FISUEditor腦圖GMU以及 WebUploader 等多款開源技術受到業界廣泛使用。

相關文章