再見,Github
我拋棄了 Github,所有現在的,以前的,還有將來的項目的更新都將使用我自己的服務器。我的決定是由 Github 最近的一次更新引起的(性能下降),但我的這個想法由來已久。下面來說說為什么。
我也許應該先說一下 github 是一個偉大的工具,是一款讓人驚艷的軟件。但是它的一些基本概念是錯誤的,和我以及很多其他人使用軟件的方式不兼容。
Github 進行了太多改造。最明顯的例子就是 pull requests ,這個功能替代了 git 工作良好的 send-email 和 am 功能。Pull requests 非常不自由,并且和任何東西不兼容,除了 Github。當然還有其他的地方也做了類似的改動,為了解釋的更加簡潔明了,我就拿這個來舉例。Pull requests 是讓我離開 github 的主要原因。
有時候抱怨一種新的實現是有趣的,但 pull requests 不是。按照 Github 的說法,pull request 工作的很好,并且非常易于創建和使用。當然,我有性能方面的顧慮,但這不是太大的問題。我主要的顧慮還是兼容性,這是 pull reuqests 所沒有的。
我相信做市場的人都希望把自己的產品做成行業標準。例如人們說“搜索”往往指“Google”,人們說“微 博(micro-blogging)”往往指“推ter”。這是所有做市場的人都渴望的圣杯,把自己的品牌做成行業。Github 在這個細分領域里面已經做到了這一點。當你問別人在用什么版本控制工具的時候,你很有可能得到的答案是 github 而不是 git。即使有人回答 git,那也常常是指托管在 github 的那個 git。從市場營銷的角度來講,github 就是 git 正如 google 就是搜索一樣。
這 里的問題是 github 斷然不是 git。假如一個人使用 git(因此而使用 send-email)想要和某個使用 github 的人協作,他們之間必須有一個人妥協,去用他平時不會去用的界面。沒有第二種方案:github 不是 git 的補充,github 替代了 git。你只能選擇 git 或者 github。
兩個產品擁有幾乎同樣的功能:一個是開源的,另外一個是閉源的,有依賴性的。你選擇哪個?
粗 一看,Google(尤其是 gmail)似乎和 github 處于相同的境地。但是為什么我還在使用 Google 的服務?那是因為 Gmail 沒有替代 email。其他使用老式網頁email客戶端的人并沒有丟失任何信息,我們看到的是相同的世界。Google 很好的兼容了通用的協議。我使用 fetchmail 和 alpine 讀取郵件,我的有些朋友使用 mutt 或者 thunderbird。Gmail 和其他 email 系統是兼容的。Gmail 的工程師顯然認識到 gmail 是 email 生態系統中的一個產品。他們的目的是為了提高人們使用他們服務的體驗(聯系人建議,日歷整合),并且有可能的話推動整個 email 生態系統前進。
Github 不是這樣的。Github 的工程師認為 github 是構建于 git 技術的一個產品,而不是基于 git 協議的一個產品。他們并不改進或者向 git 貢獻(更新:有很多 github 的工程師以個人的名義在向 git 做貢獻)。他們的工作使得 github 和 git 越來越不兼容,雖然他們的功能從根本上來說是一樣的。“We think you should use github for all your git needs, and if you don’t, fuck you.” 這句話從市場營銷的角度來講是對的,但是對于用戶卻是有害的。
那 些操作協議(更通用一點就是所有的協作技術,例如 git)的前端工具不會很容易就過時。我使用 alphine,有人使用 gmail、thunerbird 等等,我們可以很好的協作。目前網絡上的很多東西還是可以通過十幾年前的瀏覽器訪問。但是那些期望成為協議并且有限兼容第三方工具的服務很容易就被另外一 個牛逼的東西給取代了。Xanga,MySpace,Digg……這個列表可以說是無限長。有點腦子的人都知道接下來五年這個列表還會添加 推ter、非死book,這些目前看起來的巨人。當然,github 也會和 sourceforge 一樣走下坡路。
協議會 很長久,而最終像 github 和 sourceforge 這樣的服務只是一時的流行,并沒有太多附加值。我覺得跟隨這些潮流,看看它將去向哪里是比較有趣的。但是歷史告訴我們創新很少由這些潮流創造。 Soureforge 并沒有讓版本控制更好,github 也沒有。自己托管版本控制服務很簡單,也很便宜。我可以很容易的和其他人協作,并且 push 就是一眨眼的時間。再見,github。