劉平川:如何選擇開源協議
踐行開源
現在開源已經不僅僅是精神,很多國內外的公司已經真正的踐行起來。包括 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 團隊中FIS、UEditor、腦圖、GMU以及 WebUploader 等多款開源技術受到業界廣泛使用。
相關文章
- 在選擇開源時需要基於自身需求選擇合適的開源協議協議
- 4種傳輸協議設定,檔案傳輸協議如何選擇?協議
- 開源協議協議
- 大白話開源協議協議
- 看懂開源許可協議協議
- 主流開源協議對比協議
- 開源協議的分類協議
- 開源≠免費 常見開源協議介紹協議
- 常見開源協議詳解協議
- ASP.NET Core 修改開源協議為MIT,.NET全平臺 MIT協議開源了ASP.NET協議MIT
- 企業如何選擇開源的零程式碼開發平臺
- 常用開源協議商用限制解讀協議
- Fecbbc多商戶正式開源免費,BSD開源協議協議
- 8款OKR開源系統與非開源系統:如何選擇適合的?OKR
- 如openGauss、PolarDB、OceanBase等選擇開源
- 開源 | SOFAMesh 的通用協議擴充套件協議套件
- 開源軟體許可協議介紹協議
- 何為開源,聊聊軟體開發中的那些開源協議協議
- 趣談網路協議-劉超-極客時間協議
- 動態選路協議協議
- 5W1H聊開源之What——開源協議有哪些?協議
- 疫情居家辦公,如何選擇團隊協作套件套件
- 漫談計算機網路:網路層 ------ 重點:IP協議與網際網路路由選擇協議計算機網路協議路由
- 主流物聯網協議選擇:MQTT、CoAP 還是 LwM2M?協議MQQT
- 學習開源專案,不能選擇性眼瞎
- Elastic開源協議改了,使用者怎麼辦?AST協議
- 為什麼建議新手選擇Ubuntu?告訴你選擇理由!Ubuntu
- 相信開源的力量:Nebula Graph 採用 Apache 2.0 作為其開源協議Apache協議
- 如何選擇CDN
- Win10如何開啟NetBIOS協議_win10系統開啟NetBIOS協議步驟Win10iOS協議
- 又一巨頭選擇將資料庫開源資料庫
- 短影片軟體系統開發:選擇開源原始碼原始碼
- 程式設計師如何選擇並開始一個有價值的開源專案?程式設計師
- 阿里自研標準化協議庫 XQUIC 正式開源!阿里協議UI
- OceanBase的一致性協議為什麼選擇 Paxos 而不是 Raft?協議Raft
- 音訊和視訊流最佳選擇?SRT 協議解析及報文識別音訊協議
- 企業選擇人力資源管理系統(HRMS)的一些建議
- 引入外部資源協議寫法協議
- 如何選擇一款安全的協同辦公軟體?