Github的方法與哲學是什麼?跟歷來的開源思想有什麼不一樣的地方?


@pansz 提到的Github本質上是一個社交網站,這是Github很重要的核心特徵。除此之外,Github本身還是一個「分散式協作」平台,很多人通過Github進行集體創作:例如寫書,寫文章,一起做項目,有點眾包的味道。

現在Github的clone很多,但僅僅抄功能,抄界面,都只不過是皮毛,如果不能認識到Github的社交性和分散式協作平台的本質,都不過是東施效顰。


Github 是一個社交網站,順便搞搞代碼託管。

其他的代碼託管網站則正好相反。

這就是它的哲學。它跟歷來的開源思想一致,因為他意識到開源是程序員對自己的宣傳。


看看名字就明白了。

git 是個分散式版本控制軟體。允許在複雜的需求下多人異地協作開發項目。

hub 是彙集為中心的意思。

把世界上所有用 git 開發的項目都 hub 到一起會發生什麼?就是 github 。

對於一個項目,是 git 。對於所有項目,是 hub 。

工具 + 網站 產生了新的化學反應,把所有開發者連接到了一起。說他社交化沒有錯,但是其實這裡最有趣的交流不是通過回帖,而是通過 pull request 等 git 命令。

簡而言之,這是開發者用代碼做社交的地方。


我的感覺是github就像是一個程序員的交易集市,大家交易的是代碼,具體的交易是通過pull request來實施的,交易的成果就是大家把想完善的功能完善了。


github是開源思想在網路應用繁榮時代的一個良好載體。這個思想和方法都已經由Linux的開發過程淋漓盡致的體現出來了。Github沒有提供新哲學,只是順勢而為,為開源開發過程提供了一個開放便捷的操作界面。


推薦閱讀:

如果世界上所有軟體消失,要怎麼做,才能讓一台電腦正常運行起來?
有哪些好用的開源軟體?
在軟體開發時,選用編程語言的標準是什麼?
BAT、華為網易等大公司軟體開發職位要求的計算機網路基礎和資料庫知識,相關書籍有哪些?
如何清晰定位目標,並高效的寫一個工具,既不會和github重複,有自己的特點,從而不是造輪子?

TAG:程序員 | 軟體開發 | 開源 | GitHub |