為什麼豆瓣在 GitHub 上開放自己的 Code?會對國內的開源造成怎樣的影響?
最近在 GitHub 上看到豆瓣開源了自己的很多代碼。出於好奇,想知道豆瓣這樣的舉動有何原因?也出於好奇,想看看大家認為這樣會對國內互聯網有何種影響?
我相信沒有人比我對CODE的感情更加深厚了,做為CODE項目的發起人,第一行代碼的提交者,現在回想起CODE那兩年的開發歷程,都像是一場夢,一場美妙的夢,甚至有點不真實的感覺,不敢妄談CODE對整個開源界怎樣怎樣,甚至CODE對於豆瓣本身也不過是10年故事中的一個小片段,時光永不回頭,過去的意義就在於過去,剛剛過去的那一剎那,已經片跡不留,剩下的只有回憶。
為什麼會有CODE?我覺得得從豆瓣的文化講起,豆瓣其實是一個挺愛造輪子的公司,尤其是在Python領域,不過有時候造輪子也是出於無奈,隨便舉個例子,豆瓣基於Quixote造了不少輪子,但是因為那個時代還沒有Django,沒有Flask,不造又怎麼辦呢,反正世界也不多這一個輪子。
再說回CODE,豆瓣剛開始用Git的時候,也嘗試過GitLab,甚至還嘗試了最早一個版本的GitHub企業版,無奈這兩個產品在那時都還不夠成熟,當時,我們的第一反應不是等待,而是提出了一個大膽的想法:「自己做一個」,而且,就採用開源軟體的開發模式,沒有全職工程師,就靠大家平時的剩餘時間,包括我本人也是,就這麼一行一行代碼的把她寫出來了。不光是CODE,豆瓣內部的很多系統和平台,都是用這樣一種方式做出來的。當然,這裡牽扯很多項目管理的具體手法,不過這既然是一篇緬懷的文章,這種無聊的東西不提也罷。
而且,這個開發旅程,並不是一個枯燥的過程,很多人在這趟旅途會進來貢獻點什麼,中途也會有人離開,彼此告別之後,又會有新人加入,一起向著前面走去,在這個過程中,開發系統本身已經變成了一個次要的東西,每個人都在貢獻著自己的奇思妙想,而且,這次經歷也讓我自己有了一個收穫,就是只要你想認真的做一件事,哪怕這件事特別不靠譜,只要你堅持下去,一定會有人來幫你。人生就是一場旅行,不在乎目的地,在乎的應該是沿途的風景以及看風景的心情。
到最後,CODE已經不是一個系統,而是一個符號,也有了自己的文化產出,比如,CODE徽章,貼紙,t-shirt,等等:
當然,我不是鼓勵所有公司都去造輪子,甚至自己當了CEO之後,也喪失了很多浪漫主義情懷,也開始認為能用錢解決的問題,就用錢解決,不過,這是另外一個故事了。2015.12.11 夜 - 清風嚯 本想刷下知乎入睡, 看到有人邀我回答這個問題.這次讓豆瓣自己用的版本開源出來 是我做的. CODE內部也有2種聲音, 豆瓣創建以來工程師遠不止給CODE貢獻了代碼90人, 這也說明不是每個人都認可這件事. 不再更新維護了? · Issue #65 · douban/code · GitHub , 我對CODE有特殊的感情, 我自己博客也說了. CODE有自己對於典型的互聯網公司代碼託管, 工作協作交流的理解. 歡迎試用. 題主也不要擔心, 這可能算是我個人的舉動, 很多核心開發都已離職, 我在上述的issue裡面回應,會把它做完. 這是我像CODE貢獻了代碼的90個人致敬, 無論他們現在在哪裡, 我內心都認為我有義務也有能力把CODE放出來, 讓關注CODE的人可以看到, 用到, 感受到這幫豆瓣工程師做的事情CODE一開始的定位也沒想著開源不開源, 豆瓣內部有很多我認為非常好的`輪子`, 我們有自己的理解, 我們有自己寫Python的方法. CODE之前開源進度不快, 最大的原因是CODE和豆瓣的各種基礎環境關係太緊密, 拆分是一件很辛苦的活. CODE涉及到的技術內容涵蓋很廣, 造成自 @XTao 之後一直沒招聘進來合適的工程師來維護. 輪子這件事我認為是有價值的, 現在ruby/go系都有了很好的替代品, Python還真沒有, 如果沒有輪子那豈不是今天你們看到的開源景象不就不要發生了么? django何必要出現呢? django之後為啥還要做flask? 程序員這條路, 有2種選擇, 一種是走一條自己的路, 看不一樣的風景; 另外一種是走別人走過的路, 鄙夷別人在嘗試新的路.
開源這件事就是這樣, 當它不被人知, 不被看好的時候, 諷刺, 鄙視必然出現. 時間會改變這一切, 前提是堅持到那天. 我只能說, 做好我們自己就好了.
我最近心情蠻好的, CODE上了Github trending; 我做完了當時承諾的事情; CODE到了一個新的里程碑. 我不能保證CODE能多美好, 未來能走成什麼樣子, 我心裡沒底, 我能做的是會一直堅持下去. 說的太美好太有情操沒啥意思, 一直在路上而已.歡迎關注本人的微信公眾號獲取更多Python相關的內容(也可以直接搜索「Python之美」):http://weixin.qq.com/r/D0zH35LE_s_Frda89xkd (二維碼自動識別)
是情懷,個人不覺得對國內開源界有任何影響,甚至對於 Python 界而言也是
「哦,終於有了可以和 gitlab 一戰的幺蛾子了」當年巔峰期的豆瓣,那麼多 commit 過 code 的工程師……
如今那張 commiters 的截圖,至少 80% 的人已經各自散落在五湖四海……講真,在豆瓣內部開發是一件非常舒服的事情,出來後的工程師一喝酒就抱怨各自東家傻逼一樣的基礎設施,而 Code 是當年這堆基礎設施的集大成者。說我們沒用過 hg 的,那是你們不知道死得早的某個藍了吧唧的開源項目改的第一代目 Code
說對比 Github 沒卵用的,那是你們不知道我們當年 Github enterprise 和 Code 雙軌,後者頂著各種非議硬上位成功
說僅僅是個「可用的輪子」的,那是你們不知道 Code 是整個豆瓣上線工作流的一環,甚至是最重要的一環12年基本 Code 定型,14年放出,但講老實話包括和 @XTao 濤濤在聊的時候也說過 Code 要剝離整個豆瓣基礎設施實在是麻煩,加之大量工程師出走,這件事並不是一件特別輕鬆的事情。13年我離職後,針對 Code 當時的狀況原本打算自己動手抽離基礎設施(畢竟我對DAE更熟悉),然並卵,糾結了一段時間後甚至為了驗證自己的想法寫了一個 git repo 的原型(CMGS/titan · GitHub)。git 協議啊,本身坑就比較大,那些年光是糾結 show last commit 的時效問題就蛋疼了好幾天,和 @Alex Han@XTao 搞搞幺蛾子 C 啊什麼的,最後也就是做到「能接受的時間內顯示文件樹上每一個文件的最後提交信息和時間」。不信你瞅瞅 gitcafe,文件樹和提交歷史是分離的壓根不給你顯示,gitlab 系的什麼 oscchina 啦,csdn code 啦就不要來戰了,上個 linux kernel 的倉庫分分鐘焦作人,也就是新出的 coding 從另外的角度解決了這個問題。
這還不說當年新出來的 libgit2 各種 leak 和奇怪問題……
至於說造輪子,恩為了解決 repo 能做成分散式(沒錯我們就遇到了太多 repo 導致每天下班點機器撐爆的情況)用 python 擼了一個 ssh proxy (CMGS/maria · GitHub) 就問你們怕不怕,大概能做到和 github 一模一樣架構(repo 在 存儲機上自動平衡)的也就是我們的 code 了。說老實話當年什麼 osc 啊 csdn code 啊我們其實都是看不上眼的(尤其是後者特么還重名了)……所以說,輪子不是不能造,造一個比別人差的這確實沒啥意義,但造一個在某一語言領域從無到有,解決得還挺不錯,順便看齊了另外一門語言的標杆,你敢說這輪子沒意義?
說真的,看到 Code 最終開源可用版放出來的時候,真是鼻子一酸,就跟自家閨女終於長大成人了一樣,感謝 @董偉明 和 @XTao 以及無數個在職或者離職工程師的付出。
-----------------------妖孽的分割線----------------------------
其實就是 Python 界尚未有牛逼的 git 實現,我們就實現了一個很牛逼的輪子,然後順手整理完開源出來了,並且能秒天秒地看齊 Github,怎麼,不服來戰啊!對國內開源沒啥影響。
對國內「自主研發」有很大的催生作用。豆瓣態度也很明確了,這僅僅是個「能用的輪子」,並非代碼託管的最佳實踐,但它也有一些可取之處:1. 用 Python 寫的;2. 一些豆瓣本地化的東西。
該用Github的還是Github該用Gitlab的還是Gitlab
大概題主不知道一個叫做reddit的網站把自己都開源了。。。
說的好像Github會因此跌市值一樣=。=
現在才開,並沒有任何卵用。稍微靠譜點的創業團隊都知道買Github服務省事了,大公司的話,要麼github企業版,要麼git都這麼多年了,早建好自己的代碼管理了先說說CODE本身
這個code開放的功能非常有限,至少一個月前我用的時候基本只能上傳代碼,連在線預覽代碼的功能都還沒有。安裝過程也是挺折騰,沒有預想的順利。
不是說這個不好,很期待看到一些新的實用的功能。
關於豆瓣開源的一些看法CODE從2012年清風做演講的時候在豆瓣內部就基本成型了,14年開放源碼至今沒有看到大的變動。可能就是內部版本與開源版本的差異吧。不管怎麼說開放的態度是很讓人佩服的,不去扯什麼業界良心這種標榜的話,至少讓大家看到了一種實現方式與過程,可以從中學習到很多。至於互聯網的影響,感覺沒多大,豆瓣也只是眾多互聯網公司中的一員,在開源潮中走出了自己的一步而已期待更多開源,讓別人說好才是好,千萬別自 high
很羨慕!羨慕他們的自信,羨慕他們的無私。等我們做出成績,也會來源的。
國內互聯網公司開源的東西不算少,有意思的東西挺多,但是社區生命力強的感覺很少,好東西不是開源出來就完事了,也是需要經營的。
都開源了一兩年了吧, 沒啥原因不原因的, 敢開元的都不是怕別人抄的。 還有就是和業務沒什麼卵關係的。
dpark 這種要是douban 不支持了, 還有沒有別的公司會支持呢?推薦閱讀:
※一張圖看懂開源許可協議,開源許可證GPL、BSD、MIT、Mozilla、Apache和LGPL的區別
※今天就安裝 Linux !
※為什麼國內軟體很少帶有開源許可?
※基於Python的開源預測工具的實踐