漫談Github與開源

edithfang發表於2014-12-20



今天在 Github 釋出了我人生真正意義上的第一個開源專案-『Onepay』,這是一個簡單方便的打賞按鈕/連結生成系統,用來替代已經下線的支付寶收款主頁,截至目前已經在 Github 上面收穫了 21 個 Star 和 8 個 fork。

我回想起去年在北京實習的時候,某天公司一個技術大牛給一個做安卓開發的姑娘講 Github 的使用和 Git 的一些原理,我啥也不懂很想聽聽,但是又擔心如果表現的啥也不懂,會被別人嫌棄,然後遣返回大四川,所以我裝作高深莫測的站在一旁,面帶微笑。技術大牛抬起頭來看了我一眼,可能是被我高深莫測的微笑震住了,我淡定的說,您繼續講,我也聽聽,然後換成不恥下問的謙虛微笑,技術大牛憨厚的點點頭,然後又繼續講了下去,最後講完了,還望了我一眼問道,沒講錯啥吧,其實也沒啥新東西吧?我點點頭說,不就是那些東西嘛。

是哪些東西?其實是很多東西。

要了解 Github,我們首先要知道 Git,Git 是管理程式碼的工具,寫程式碼不是件輕鬆的事兒,一個人寫的時候已經不輕鬆了,一群人寫就更不輕鬆了,但這世界上很多事都是怎麼不輕鬆怎麼來的,大部分人都會和別人一起寫程式碼,問題在於,這麼多人寫一個東西,你今天寫一點,我明天寫一點,然後發現你寫錯了,又影響到了我前天寫的,最後彙總的時候怎麼查詢錯誤?又在什麼時候彙總?這些問題太多了,想想就覺得還是食物美好。為了讓寫程式碼這件事兒美好一點,我們有了一種名叫程式碼管理的東西,Git 正是其中之一,我使用過的還有 SVN,但是今天我們只講 Git。

Git 的核心思想是『分散式』,我們在伺服器上面有一個『主倉庫』,這裡放的是拿得出檯面的程式碼,我們也可以在自己的電腦上建立分支,這些分支由『主倉庫』克隆而來,然後我們就可以愉快的在自己的電腦上寫程式碼了,寫完程式碼可以同步在自己電腦的分支裡面,當你覺得自己的程式碼拿得出檯面,我們可以申請把自己的程式碼更新到『主倉庫』裡面,一旦通過這樣的稽核,我們就對『主倉庫』做了某種貢獻,世界各地的傑出程式設計師不斷的為一個專案的『主倉庫』做貢獻,讓這個專案變得越來越完善。

Github 是運用 Git 思想來工作的一個商業網站,所有開發者都可以在 Github 上面為自己的專案建立一個『主倉庫』,好的專案就像狼群中的小鮮肉一樣,大量的開發者會把這個主倉庫中的程式碼克隆到自己的『分倉庫』去,用更性感的話來說,就是『Fork』。

Git 的方式的確很優雅,但問題在於,會有人願意把自己辛辛苦苦的程式碼拿出來公佈,並且讓人 Fork 麼?

會,不僅會,而且很多,Github 有超過 140 萬使用者,你可能會撇撇嘴說那個啥啥社交軟體都有 2000 萬使用者,區區 140 萬算個啥。可是這 140 萬使用者幾乎涵蓋了這個世界上最優秀的開發者,我相信,你那個有 2000W 使用者的社交軟體的工程師,肯定也是用 Github 的。任何專案,在 Github 上面獲得 fork 或 star,都意味著其它工程師對這個專案的認可,這比 100 個 QQ 空間的贊更有價值。

為什麼這些優秀的工程師會開源自己的專案?

因為開源是一種精神。

無數的軟體開發者苦心積慮保護自己的程式碼不被破解,而還是被聰明絕頂的指令碼小子破解了,但破解無數軟體的指令碼小子在接下來的破解中卻傻眼了,因為這是開源的,不用破解也就破解了破解。

閉源意味著封閉,而開源則意味著開放,封閉很難進步,開放才會進步。開放讓人類的智慧有聚集的可能,人類的智慧聚集起來不再是1+1=2,這是開源的力量。閉源是一種排斥,而開源是包容,閉源是單打獨鬥,開源是同仇敵愾,閉源是敝帚自珍,開源是無私奉獻,閉源是小富即安,開源是世界大同,閉源是資本主義,開源是共產主義。

閉源讓微軟成帝國,讓蘋果成神話,但是,這是商業,如果沒有技術的開源,這些商業的閉源也基本是無米之炊。商業需要閉源,而技術需要開源,利益需要閉源,而情懷需要開源。

開源是技術的『本善』。

我不排斥閉源,但是我讚美開源,就像我我忍受黑暗,但卻心存光明一樣,就像我頓頓吃素,卻依然熱愛肉食一樣。

當然,我沒有頓頓吃素。
相關閱讀
評論(1)

相關文章