作為一個(gè)無版權(quán)習(xí)慣的碼農(nóng),終于遇到一個(gè)大坑,堵住了自己一條光明大路。
那就是:版權(quán)
大部分程序員遵從的原則就是不重復(fù)造輪子,作為一個(gè)非著名相聲演員,哦不,非大牛程序員(咳咳),把這句至理名言發(fā)揮的更是淋漓盡致。只要有需求,想好大致架構(gòu)思路和邏輯,就去Github了。
分為幾種使用方式:1.拿來直接用;2.拿下來依據(jù)自己的想法和需求去改造;3,拿下來,仿寫部分功能,完善添加其他功能。
終于:重點(diǎn)來了
本人有一天去IBM面試了,順利通過中國區(qū)大神一面,迎來了二面。
全英文,愛爾蘭分部的愛爾蘭帥哥視頻面(話說我去面的時(shí)候那邊還沒起床),一個(gè)半小時(shí),我全程用低空飄過大學(xué)六級分?jǐn)?shù)線的水平,愉快的聊了這么久。自己還沈沈滴呸服自己的時(shí)候。一個(gè)不起眼的問題拋出來了:問我用的三方框架都遵守了什么協(xié)議?我哪里關(guān)注過這,一心以為開源就是免費(fèi),免費(fèi)就是白拿,白拿就是我根本不關(guān)心你什么協(xié)議。于是我表示沒注意過,還說應(yīng)該是沒什么協(xié)議,It is free to all。那邊明顯頓了一下表情。但是我沒注意這個(gè)是一個(gè)決定性的問題,直到通知我二面失敗。那感覺就像初次見面擦出了火花,聊得非常嗨皮,但是突然告訴你,姑娘不想理你了的趕腳。
反思!立刻反思!我開始回憶所有問題和我回答的地方!
確實(shí)有些回答的不夠深入和徹底,但是程序員不是全面手,偶有不熟的地方應(yīng)該不會成為斃掉我的原因。英語雖然次,但是起碼我敢開口,大部分他也能聽懂,致死性低于30%應(yīng)該。然后,就沒想到。直至今天,我突然腦子里想起來了這個(gè)問題:版權(quán)!
開源不等于免費(fèi),開源也不等于沒有約束!
國外開發(fā)者在尊重他人勞動成果方面做得非常到位,如果A的作品是因?yàn)锽的作品的啟發(fā)而來,A甚至都沒有使用B任何一句代碼,但A會在他的作品里面指明是受到了B的啟發(fā)"Inspired by YYY link :http://www.ABC.com"。
有協(xié)議和沒聲明協(xié)議的裸代碼是有非常重要區(qū)別的,一般作品當(dāng)中沒聲明協(xié)議的默認(rèn)為Copy right的,也就是版權(quán)保留。此種情況表明他人沒有任何授權(quán),不得復(fù)制分發(fā)修改使用等等,
常見的協(xié)議:
簡單寬松的協(xié)議
如果你只想要一個(gè)簡單點(diǎn)的協(xié)議不想太麻煩的話。
MIT協(xié)議相對寬松但還是抓住了要點(diǎn)的。此協(xié)議允許別人以任何方式使用你的代碼同時(shí)署名原作者,但原作者不承擔(dān)代碼使用后的風(fēng)險(xiǎn),當(dāng)然也沒有技術(shù)支持的義務(wù)。jQuery和Rails就是MIT協(xié)議。
考慮有專利的情況
如果你的作品中涉及到專利相關(guān)。
Apache協(xié)議也是個(gè)相對寬松與MIT類似的協(xié)議,但它簡單指明了作品歸屬者對用戶專利上的一些授權(quán)(我的理解是軟件作品中含有專利,但它授權(quán)你可以免費(fèi)使用)。Apache服務(wù)器,SVN還有NuGet等是使用的Apache協(xié)議。
代碼分享與促進(jìn)
如果你在乎作品的傳播和別人的修改,希望別人也以相同的協(xié)議分享出來。
GPL(V2或V3)是一種版本自由的協(xié)議(可以參照copy right來理解,后者是版本保留,那copyleft便是版權(quán)自由,或者無版權(quán),但無版權(quán)不代表你可以不遵守軟件中聲明的協(xié)議)。此協(xié)議要求代碼分發(fā)者或者以此代碼為基礎(chǔ)開發(fā)出來的衍生作品需要以同樣的協(xié)議來發(fā)布。此協(xié)議的版本3與版本2相近,只是多3中加了條對于不支持修改后代碼運(yùn)行的硬件的限制(沒太明白此句話的內(nèi)涵)。
以后千萬要培養(yǎng)版權(quán)習(xí)慣和意識,不然最后吃虧的是自己。
查找資料的時(shí)候,一篇比較詳細(xì)的介紹:http://www.cnblogs.com/Wayou/p/how_to_choose_a_license.html