04_開源文化的興起與Github生態(tài)系統(tǒng)

內(nèi)容摘要: 開源在近十年來逐漸形成了一種趨勢干毅,開源讓技術(shù)更迭更加快速姨拥,各種開源協(xié)議五花八門。現(xiàn)在想學(xué)編程技術(shù),有看不完的代碼屠阻,各種優(yōu)秀的項目層出不窮,這一篇文章,讓我仔細(xì)聊一聊開源文化和最值得一提的Github生態(tài)系統(tǒng)蝇闭。

1逻悠、開源的意義

開源軟件是一種源代碼免費向公眾開放的軟件,任何團體或個人都可以在其License的規(guī)定下對其進行使用、復(fù)制、傳播及修改趋距,并可以將該修改形成的軟件的衍生版本再發(fā)布。

很多科研軟件專業(yè)性強,涉及到學(xué)科眾多狼渊,由于其科研的屬性城须,決定了這些軟件需要不斷的創(chuàng)新與發(fā)展蘸嘶,而軟件開源無論在激發(fā)用戶創(chuàng)新動力方面,還是在促進軟件不斷成熟方面都具有重要的意義你辣。

開源不僅有利于繼承性創(chuàng)新宴凉,還有利于促進科研成果價值的體現(xiàn)籽暇,同時開源社區(qū)的不斷壯大也是大勢所趨舟山。

維護開源軟件生態(tài)是一項艱巨的任務(wù),但做好了會對整個行業(yè)的發(fā)展起到推動作用符相。

  • Unix開源后,對PC操作系統(tǒng)產(chǎn)生了深遠(yuǎn)的影響
  • Android開源后,對手機操作系統(tǒng)產(chǎn)生了深遠(yuǎn)的影響
  • 著名的Github社區(qū),對開源代碼管理標(biāo)準(zhǔn)化產(chǎn)生了深遠(yuǎn)的影響

我是一個堅定的開源支持者,但對于開源還有一些事情你必須要知道。

2、開源協(xié)議有哪些

開源軟件的有點是可自由使用、享有版權(quán)、特定License惕味、可獲得源代碼躺同、無許可費捎谨、無任何擔(dān)保畏邢。而且開源軟件及源代碼可以免費獲缺矍蕖掏缎;大多都有開源社區(qū)支持,可保證軟件質(zhì)量嫌拣,協(xié)助問題解決及特性開發(fā)腥例。

但每種開源軟件在具體使用的License并不完全一樣,如果不遵守License會被投訴甚至起訴脐供,還可能引入安全漏洞;此領(lǐng)域知識產(chǎn)權(quán)糾紛頻頻發(fā)生京腥;若自行修改厅各,可能形成“私有開源代碼”憔古,需自行維護全部開源代碼,需有外部或內(nèi)部團隊掌握相關(guān)關(guān)鍵技術(shù)及獲取社區(qū)支持。

另一方面,如果你要開源自己的代碼,最好的選擇是采用國際通用的開源協(xié)議爪膊。這樣既有利于開展國際交流時保護版權(quán)榔昔,也有利于促進國際同行之間的交流。

現(xiàn)今存在的開源協(xié)議很多壁顶,而經(jīng)過Open Source Initiative組織通過批準(zhǔn)的開源協(xié)議目前有58種(http://www.opensource.org/licenses /alphabetical)。我們在常見的開源協(xié)議如BSD沛豌,GPL竹勉,LGPL城看,MIT等都是OSI批準(zhǔn)的協(xié)議。

BSD吟税,Apache,GPL,MIT是最常用的開源協(xié)議每篷,每種都有它們的適用范圍刑巧,準(zhǔn)備開源或者使用開源產(chǎn)品的開發(fā)人員應(yīng)該對每種協(xié)議特點有一個了解。

BSD開源協(xié)議是一個給予使用者很大自由的協(xié)議.基本上使用者可以“為所欲為”可以自由的使用,修改源代碼,也可以將修改后的代碼作為開源或者專有軟件再發(fā)布.但“為所欲為”的前提當(dāng)你發(fā)布使用了BSD協(xié)議的代碼,或則以BSD協(xié)議代碼為基礎(chǔ)做二次開發(fā)自己的產(chǎn)品時,需要滿足三個條件:

  1. 如果再發(fā)布的產(chǎn)品中包含源代碼,則在源代碼中必須帶有原來代碼中的BSD協(xié)議.
  2. 如果再發(fā)布的只是二進制類庫/軟件,則需要在類庫/軟件的文檔和版權(quán)聲明中包含原來代碼中的BSD協(xié)議.
  3. 不可以用開源代碼的作者/機構(gòu)名字和原來產(chǎn)品的名字做市場推廣.

BSD協(xié)議鼓勵代碼共享,但需要尊重代碼作者的著作權(quán).BSD由于允許使用者修改和重新發(fā)布代碼,也允許使用或在BSD代碼上開發(fā)商業(yè)軟件發(fā)布和銷售,因此是對商業(yè)集成很友好的協(xié)議.而很多的公司企業(yè)在選用開源產(chǎn)品的時候都首選BSD協(xié)議,因為可以完全控制這些第三方的代碼,在必要的時候可以修改或者二次開發(fā).

MIT協(xié)議是和BSD一樣寬范的許可協(xié)議,作者只想保留版權(quán),而無任何其他了限制.也就是說,你必須在你的發(fā)行版里包含原許可協(xié)議的聲明,無論你是以二進制發(fā)布的還是以源代碼發(fā)布的.

Apache Licence是著名的非盈利開源組織Apache采用的協(xié)議.該協(xié)議和BSD類似,同樣鼓勵代碼共享和尊重原作者的著作權(quán),同樣允許代碼修改,再發(fā)布(作為開源或商業(yè)軟件).需要滿足的條件也和BSD類似:

  1. 需要給代碼的用戶一份Apache Licence
  2. 如果你修改了代碼,需要再被修改的文件中說明.
  3. 在延伸的代碼中(修改和有源代碼衍生的代碼中)需要帶有原來代碼中的協(xié)議,商標(biāo),專利聲明和其他原來作者規(guī)定需要包含的說明.
  4. 如果再發(fā)布的產(chǎn)品中包含一個Notice文件,則在Notice文件中需要帶有Apache Licence.你可以在Notice中增加自己的許可,但不可以表現(xiàn)為對Apache Licence構(gòu)成更改.

Apache Licence也是對商業(yè)應(yīng)用友好的許可.使用者也可以在需要的時候修改代碼來滿足需要并作為開源或商業(yè)產(chǎn)品發(fā)布/銷售.明,無論你是以二進制發(fā)布的還是以源代碼發(fā)布的.

圖1 開源協(xié)議類型

上圖是各種開源協(xié)議的區(qū)別迫卢,無論是你用別人的開源代碼還是日后也想開源自己的成果盆犁,都可以參考一下呦沛善!

3、Github是什么

在最開始的開源陣營中哼御,很多人都是憑借愛好和熱情來工作的,沒有公司愿意把自己的成果拿出來免費個人用吝秕。更沒有現(xiàn)在的所謂開源商業(yè)模式,僅靠一些開源組織的項目資助,并不富裕续担,所以这敬,遠(yuǎn)程協(xié)作崔涂,拼湊基礎(chǔ)設(shè)施都非常普遍蝙茶。

這種情況下蹄衷,面臨的首要問題就是開源項目的代碼或者數(shù)據(jù)放在哪里?還有各種不同版本怎么管理领舰。以云為中心的技術(shù)和應(yīng)用程序部署刨仑,對開源項目提出的新問題:

  • 競爭項目,通常有多個開源項目在相同的應(yīng)用程序上工作夹姥,可能結(jié)果是注意力的分散杉武。
  • 變化率,開源項目通常每年都會有2個辙售、3個甚至4個版本轻抱,通常會對API和行為進行重大更改。使用這些版本費時費力旦部,同時還要考慮下一個版本的變化問題祈搜。
  • 版本兼容性,版本之間可能不會向后兼容士八,造成遷移和升級操作復(fù)雜化
  • 長期支持容燕,開源項目的成功取決于廣泛的社區(qū)支持,如果指定的項目失去社區(qū)支持婚度,該項目可能會逐漸消亡蘸秘,剩余的用戶會被擱淺。

以上這些問題蝗茁,不光是開源會遇到醋虏,但是對于開源軟件來講,更需要做好這些才能贏得用戶的信任哮翘。這時候GIT工具(什么是GIT工具灰粮?)提供給了開源者非常大的幫助,在版本管理和多人協(xié)同方便都很大程度上改善了開發(fā)者的工作模式忍坷,圍繞GIT工具加上云的不斷發(fā)展粘舟,這時候出現(xiàn)了很多相關(guān)的服務(wù)提供商。

Github這是這一輪競爭中的優(yōu)勝者佩研,該公司自2008年以來柑肴,收入一直以每年300%的速度增長,2018年以75億美元被微軟公司收購旬薯。

Github提供給開發(fā)者們一套完整的生態(tài)工具晰骑,從代碼托管,質(zhì)量控制,可持續(xù)集成與部署硕舆,與自動化文檔秽荞,都提供了很好的解決方案。所倡導(dǎo)的理念就是:“只要你開源抚官,我的服務(wù)就免費”扬跋。目前,Github上面的開源軟件倉庫已經(jīng)超過1億個凌节。

但Github的缺點是服務(wù)器在國外钦听,國內(nèi)有些地區(qū)訪問速度很慢,不過后面我們會討論這個問題以及相關(guān)的加速方案倍奢。

2018年起朴上,我們團隊的也正式入住Github,近年來為了推動地球物理軟件方面的教學(xué)和科研卒煞,計劃通過5年時間痪宰,初步建立起一套從科研到應(yīng)用的實用化生態(tài)鏈條

圖2 面向地球物理學(xué)的Geoist開源軟件包

以服務(wù)社會公益事業(yè)的美國地質(zhì)調(diào)查局(USGS)為例畔裕,他們也全部采用Github平臺完成團隊協(xié)作和軟件開發(fā)管理酵镜。

圖3 美國USGS項目的開源化管理

結(jié)語:

Github將社會化編程的概念演繹到了極致,為全球開發(fā)者提供了空前的資源柴钻,從一個軟件Stars數(shù)量淮韭,到更新頻率,讓用戶可以足不出戶贴届,直接了解當(dāng)前最新國際前沿發(fā)展趨勢靠粪。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市毫蚓,隨后出現(xiàn)的幾起案子占键,更是在濱河造成了極大的恐慌,老刑警劉巖元潘,帶你破解...
    沈念sama閱讀 217,084評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件畔乙,死亡現(xiàn)場離奇詭異,居然都是意外死亡翩概,警方通過查閱死者的電腦和手機牲距,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來钥庇,“玉大人牍鞠,你說我怎么就攤上這事∑酪蹋” “怎么了难述?”我有些...
    開封第一講書人閱讀 163,450評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我胁后,道長店读,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,322評論 1 293
  • 正文 為了忘掉前任攀芯,我火速辦了婚禮屯断,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘敲才。我一直安慰自己裹纳,他們只是感情好择葡,可當(dāng)我...
    茶點故事閱讀 67,370評論 6 390
  • 文/花漫 我一把揭開白布紧武。 她就那樣靜靜地躺著,像睡著了一般敏储。 火紅的嫁衣襯著肌膚如雪阻星。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,274評論 1 300
  • 那天已添,我揣著相機與錄音妥箕,去河邊找鬼。 笑死更舞,一個胖子當(dāng)著我的面吹牛畦幢,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播缆蝉,決...
    沈念sama閱讀 40,126評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼宇葱,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了刊头?” 一聲冷哼從身側(cè)響起黍瞧,我...
    開封第一講書人閱讀 38,980評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎原杂,沒想到半個月后印颤,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,414評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡穿肄,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,599評論 3 334
  • 正文 我和宋清朗相戀三年年局,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片咸产。...
    茶點故事閱讀 39,773評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡某宪,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出锐朴,到底是詐尸還是另有隱情兴喂,我是刑警寧澤,帶...
    沈念sama閱讀 35,470評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站衣迷,受9級特大地震影響畏鼓,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜壶谒,卻給世界環(huán)境...
    茶點故事閱讀 41,080評論 3 327
  • 文/蒙蒙 一云矫、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧汗菜,春花似錦让禀、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至菌瘪,卻和暖如春腮敌,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背俏扩。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評論 1 269
  • 我被黑心中介騙來泰國打工糜工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人录淡。 一個月前我還...
    沈念sama閱讀 47,865評論 2 370
  • 正文 我出身青樓捌木,卻偏偏與公主長得像,于是被迫代替她去往敵國和親嫉戚。 傳聞我的和親對象是個殘疾皇子刨裆,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,689評論 2 354