程序員都應(yīng)該懂一點(diǎn)開源協(xié)議
讓雷軍倍感壓力的00后CEO,攜手300名最小年齡僅為10歲出頭的員工們,竟豪言:一些三四十歲的老前輩已經(jīng)看不懂互聯(lián)網(wǎng)??删驮诒徊稍L的短視頻剛剛傳遞開來的時(shí)候,劇情突然三百六十度大反轉(zhuǎn)。GitHub 開源項(xiàng)目 AndroidTvLauncher 的作者有理有據(jù)、義憤填膺地痛斥這位令人羨慕的00后CEO原封不動(dòng)地抄襲他的作品。
互聯(lián)網(wǎng)之事貌似永遠(yuǎn)有著猜不透的劇情。外行看熱鬧,內(nèi)行看門道。這里,咱們不聊長(zhǎng)江后浪推前浪的勵(lì)志故事,也不聊孰是孰非的后續(xù)劇情發(fā)展,咱就聊點(diǎn)與我們有關(guān)系的事情,開源協(xié)議。
說到開源協(xié)議,必須先簡(jiǎn)單介紹一下 自由軟件 這個(gè)詞。根據(jù)百科的解釋,自由軟件是一種可以不受限制地自由使用、復(fù)制、研究、修改和分發(fā)的軟件。注意,自由并不代表著免費(fèi)。正是這種開放、開源的精神,計(jì)算機(jī)軟件才得以如此飛快地發(fā)展。
而 開源協(xié)議 ,或者叫開源許可證,就是為保護(hù)自由軟件原作者的相關(guān)知識(shí)產(chǎn)權(quán),在作者與用戶之間設(shè)立的一種虛擬合同,或者稱之為授權(quán)方式。其中的條款內(nèi)容,就是用來限制軟件使用者的使用方式等。他人如有違反協(xié)議,作者有權(quán)利發(fā)起訴訟,維護(hù)自身權(quán)益。
開源屆定義有幾百種不同的開源協(xié)議,寬松程度不一,用以滿足開源項(xiàng)目的各種使用場(chǎng)景。比如,是否允許商用,是否允許修改,修改后是否需要繼續(xù)開源,開源是否必須繼續(xù)使用相同協(xié)議授權(quán)等。
不過,作為普通用戶,無論你是作為開源作者造輪子,還是作為普通用戶借輪子,我們只需要知道比較流行的那幾種,并能夠加以區(qū)分即可。否則,上百種協(xié)議真要細(xì)分的話,絕非易事。
早期一名烏克蘭程序員畫有一張分析圖,簡(jiǎn)單明了地描述出六種流行開源協(xié)議的使用區(qū)分。 阮一峰老師 翻譯如下:
更簡(jiǎn)單點(diǎn)的話,也可以參考來自 GcsSloop 博文的這張圖,更加通俗易懂:
更多的開源協(xié)議,我們還可以參考這張圖(目前只發(fā)現(xiàn)英文版):
至于使用的話,不妨借助 GcsSloop 制作的開源協(xié)議網(wǎng)站:
http://choosealicense.online
如圖所示:
選擇所需要的協(xié)議,一鍵復(fù)制即可。
說完這些,回過頭來想想,估計(jì)很多人都會(huì)有疑惑:開源協(xié)議與我何干?但是,作為一名程序員,開源協(xié)議還真與你我關(guān)系緊密。
如果你是 GitHub 重度依賴者,如果你稍作留意,不難發(fā)現(xiàn),基本上出名的開源項(xiàng)目根目錄中都有一個(gè)協(xié)議文件: LICENSE.txt ,而在 README.me 說明文件底部伴隨著 License 內(nèi)容。這就是你需要留意的地方,使用任意開源項(xiàng)目之前,記得閱讀一下該項(xiàng)目的開源協(xié)議。
市場(chǎng)上部分 App 也會(huì)在應(yīng)用中增加第三方開源項(xiàng)目時(shí)的使用版權(quán)說明,比如支付寶安卓版。這也是一種查看優(yōu)秀 App 都使用哪些開源項(xiàng)目的途徑之一。
如果你也是一個(gè)作者,準(zhǔn)備開源自己的項(xiàng)目時(shí),那就更得注意,想想自己需要選擇哪一個(gè)開源協(xié)議更加合適。比如,大名鼎鼎的 Linux 系統(tǒng)采用便是 GPL 協(xié)議;作為安卓程序員,我們當(dāng)然知道,我們賴以生存的 Android 開源系統(tǒng),其內(nèi)核采用的就是 Linux 內(nèi)核。那么 Android 系統(tǒng)到底屬于哪種開源協(xié)議呢,說來真的話長(zhǎng),感興趣的話,推薦你閱讀這兩篇文章:
所以,以后不要再說開源協(xié)議與你我無關(guān)啦,還不信的話,你可以閱讀我微信公眾號(hào)這次的第二篇推文:別總說這事與你沒關(guān)系。