劉平川:如何選擇開(kāi)源協(xié)議
踐行開(kāi)源
現(xiàn)在開(kāi)源已經(jīng)不僅僅是精神,很多國(guó)內(nèi)外的公司已經(jīng)真正的踐行起來(lái)。包括 FEX,我們目前已開(kāi)源了 20 多個(gè)產(chǎn)品,有賴于很多前端開(kāi)發(fā)者的支持,在 GitHub 上的 Star 數(shù)量已經(jīng)接近 3000。 所以,自然也面臨開(kāi)源協(xié)議選擇的問(wèn)題。
現(xiàn)在市面上的開(kāi)源協(xié)議很多,至少有 100 多種,但經(jīng)過(guò) 開(kāi)源促進(jìn)會(huì)(Open Source Initiative)認(rèn)可的開(kāi)源協(xié)議也多達(dá) 70 多種。
今天簡(jiǎn)單的介紹一下,我們 FEX 是如何選擇開(kāi)源協(xié)議,相信這會(huì)對(duì)你開(kāi)源協(xié)議選擇有所幫助。
WTFPL
“WTFPL”是“Do What The Fuck You Want To Public License”的簡(jiǎn)寫(xiě),中文可以翻譯成“你他媽的想干嘛就干嘛'公共許可證'”,是眾多開(kāi)源協(xié)議里“最黃最暴力”的一種。 雖然這個(gè)協(xié)議用得并不多,但還是提一下,因?yàn)樗亲顦O端的一種開(kāi)源協(xié)議,完全沒(méi)有 Copyright 和 Copyleft 的概念。
什么是 Copyright 和 Copyleft
在通常的商業(yè)軟件中,Copyright (著作權(quán))很常見(jiàn),它的意思是保留所有權(quán)利,在這里不多作介紹。 而 Copyleft(著佐權(quán))是一個(gè)由自由軟件運(yùn)動(dòng)所發(fā)展的概念,是一種利用現(xiàn)有著作權(quán)體制來(lái)挑戰(zhàn)該體制的授權(quán)方式。下圖是它的標(biāo)志,即 Copyright 中的“C”由右朝左了。
踐行 Copyleft 最常見(jiàn)的的協(xié)議有 GPL。即如果你使用了這份開(kāi)源代碼,要求使用者改作后的衍生作品必須要以同等的授權(quán)方式釋出以回饋社會(huì)。這意味著,如果是商業(yè)軟件使用這樣的開(kāi)源代碼并改動(dòng),商業(yè)價(jià)值有可能會(huì)下降。而 Copyleft 也是很多開(kāi)源協(xié)議的標(biāo)志性特點(diǎn)。
六種常用開(kāi)源協(xié)議
知道了 Copyright 和 Copyleft, 對(duì)主要的開(kāi)源協(xié)議有非常重要的影響。下面介紹大多數(shù)公司用得最多的只有 6 種開(kāi)源協(xié)議:LGPL、Mozilla、GPL、BSD、MIT、Apache。
烏克蘭程序員 Paul Bagwell,畫(huà)了一張分析圖說(shuō)明應(yīng)該怎么選擇。 只用兩分鐘能搞清楚這 6 種許可證之間的最大區(qū)別。阮一峰老師將它翻譯成了中文,我在此也選用該圖,此圖也無(wú)需過(guò)多解釋了:
案例:我們?nèi)绾芜x擇開(kāi)源協(xié)議
我們最后選擇是用 BSD 協(xié)議。 它與 MIT 協(xié)議的區(qū)別在于是否用“你”的名字促銷(xiāo)。也就是說(shuō),如果我們用 MIT 協(xié)議,當(dāng)別人修改完我們的代碼時(shí),可以用 FEX 的名義推廣。
如果是針對(duì)個(gè)人而言,則是一個(gè)很好的擴(kuò)散影響力的機(jī)會(huì)。但對(duì)于一個(gè)企業(yè)或組織來(lái)說(shuō),我們認(rèn)為這可能是一個(gè)風(fēng)險(xiǎn)點(diǎn)。有人會(huì)問(wèn),你們?yōu)槭裁床挥?GPL 協(xié)議?其實(shí)就是我上邊說(shuō)的 Copyleft 與 Copyright 的區(qū)別了。
我們認(rèn)為,對(duì)于使用者來(lái)說(shuō)。他自由選擇是公開(kāi)版權(quán),會(huì)更有利于讓更多前端開(kāi)發(fā)者使用我們的開(kāi)源產(chǎn)品,使用者越多也就能讓我們得到更多的使用反饋,有助于我們第一時(shí)間發(fā)現(xiàn)并解決問(wèn)題,也有利于 FEX“技術(shù)生態(tài)”建設(shè),使技術(shù)長(zhǎng)期的產(chǎn)出更有持續(xù)性。
目前我們每天可以收到 GitHub 上的 ISSUE 反饋多達(dá) 100 多條,這為 FEX 的產(chǎn)品打磨有非常重要的影響。WebUploader 就是一個(gè)非常典型的案例,從開(kāi)源后到現(xiàn)在,它的兼容問(wèn)題與上傳性能穩(wěn)定持續(xù)提升,目前已經(jīng)是國(guó)內(nèi)很多公司圖片上傳的首選了。
我也希望越來(lái)越多的公司走到開(kāi)源陣營(yíng)中來(lái),讓開(kāi)源真正踐行開(kāi),使大家都能獲益。
【關(guān)于作者】劉平川,網(wǎng)名 rank;微信公眾號(hào):HiNotes,百度 FEX 負(fù)責(zé)人。原百度有啊資深前端開(kāi)發(fā)工程師,從事過(guò) C2C/垂直電商/O2O/SNS/支付 等業(yè)務(wù)研發(fā)工作,原百度前端用戶行為分析系統(tǒng)創(chuàng)始人。關(guān)注前端/客戶端技術(shù),同時(shí)也關(guān)注電商及新興產(chǎn)品。目前在百度FEX,負(fù)責(zé)全端整體基礎(chǔ)技術(shù)研發(fā)技術(shù)及管理方面的工作。FEX 團(tuán)隊(duì)中 FIS、UEditor、腦圖、GMU以及 WebUploader 等多款開(kāi)源技術(shù)受到業(yè)界廣泛使用。