中國開源現狀如何?


很遺憾樓上沒有見到滿意的答案。談到開源,不論個人還是公司,都很容易過分地為開源在道德層面賦予太多意義,把它看成一場犧牲小我、成全大我的慈善活動,我國沒有過的新教資本主義精神和黑客倫理在西方生根發芽的結果。可是,像 IBM, Oracle 這種股東利益至上的公司,難道他們的美德高於百度小米,可以出於利他的動機而參與開源?

關於這個問題在最近半年思考了很多,正好在這裡嘗試總結一下:

  • 系統軟體發展到今天,其複雜程度與人力成本已經超過任何一家公司能獨立掌控的程度。留意一下,最多參與社區開發的主力軍仍為老牌系統軟體公司。他們的選擇其實很簡單,要麼參與 Linux 的開發,要麼抱著自己的 UNIX 去死。
  • 主線之外的開發成本很高,臟活累活很多。將修改回饋社區是降低維護成本的選擇。
  • 社區開發傾向於提供機制,而非策略。這意味著其產出多為基礎設施,而產品的包裝與差異化則屬於商業公司的工作。
  • 開源並非至善,甚至不乏別有用心的資本運作。
  • 互聯網行業與開源社區相輔相成,此外開源社區的協作模式也一直都在影響著商業公司內部。
  • 隨便一個流行的開源項目都能看到不少國人的名字,炫耀也好邊角料也罷,竊以為這對做事情的人來講根本不重要。
  • 實踐個人的參與,比思考國家大環境的絕望更有價值。

前段時間做了個GitHub 全球 Developers, Organizations and Repositories 排行榜,我想能夠從側面反映中國的開源現狀。

1、大家可以先看下組織 star 綜合排名 Organizations Ranking

  • 阿里巴巴全球組織排名12名;
  • cocos2d 全球組織排名 88 名;
  • Baidu EFE team 全球組織排名 77名;
  • Bilibili 全球組織排名 107 ;
  • Tencent全球組織排名219名

2、全球個人的 star 綜合排名 Developers Ranking

  • 前端網紅程序員 @justjavac排名27;
  • astaxie 排名 31;
  • Vue.js 作者@尤雨溪排名 40;
  • Android 程序員 daimajia 排名41;
  • 滴滴 Android 程序員 Trinea 排名42;
  • 阿里巴巴前端專家阮一峰排名43;
  • YYkit 作者 ibireme 排名 52;
  • MD 程序員 phodal 排名53;

3、全球單獨項目 star 排行 Repositories Ranking

  • VUE 全球排名 12;
  • 阿里巴巴 WeeX 排名193;
  • 百度 echarts 排名 124

我就稍微摘抄了下,沒有非常非常仔細,但是啊,真的找不出啥著名的開源項目組織和個人,整個中國互聯網公司我想阿里應該可以及格,阿里也在國內外開源社區最活躍。


補充幾句,大家看完結果肯定大跌眼鏡,裡面除了 Vue 之外幾乎沒有多少具有國際影響力開源項目了,當然阿里給開源社區的確也是貢獻了不少東西,但是中國是美國之外互聯網最強的國度,上面的結果意思很明白,中國互聯網軟體行業從開源社區獲取很多,但是幾無貢獻!


歡迎大家給我補充。@winter@vczh@趙劼這個答案感覺需要召喚知乎三大程序員


看看 Github 上活躍的中國人吧:
https://github.com/lepture:最活躍用戶全球排名18,貢獻4038,領域 JavaScript,來自杭州,也就是現在在我樓上這位。
https://github.com/lifesinger:最活躍用戶全球排名38,貢獻3030,領域 JavaScript,來自杭州。
https://github.com/RubyLouvre:最活躍用戶全球排名128,貢獻1714,領域 JavaScript,來自中國。
https://github.com/fengmk2:最活躍用戶全球排名183,貢獻1300,領域JavaScript,來自杭州淘寶。
https://github.com/JacksonTian:最活躍用戶全球排名192,貢獻1241,領域JavaScript,來自杭州阿里巴巴。
https://github.com/chloerei:最活躍用戶全球排名199,貢獻1215,領域Ruby,來自北京。
https://github.com/saberma:最活躍用戶全球排名206,貢獻1197,領域Ruby,來自深圳。
https://github.com/levey:最活躍用戶全球排名208,貢獻1173,領域Objective-C,來自杭州。
https://github.com/xushiwei:最活躍用戶全球排名236,貢獻1093,領域C,來自上海七牛雲存儲。
https://github.com/lilydjwg:最活躍用戶全球排名247,貢獻1045,領域Python。

上面的這群人表述著中國開源的現狀,更多的默默無聞,但是將寫代碼看成一種休閑和樂趣的中國人,將會表述中國開源的未來。
-----------------------------------
既然lepture現身說法了,我也必要多寫幾句,表達我的支持。胡適先生說過:「多研究些問題,少談些主義」,排名第一匿名的回答,就有些主義的味道,只是根據看到部分的現象,就得出了整體的結論,不太可取。在蠻荒之地開拓的人,第一要務是生存,但當倉廩實時才會知禮儀,這個道理放之四海皆準。第一代的巨擎,微軟/Oracle/蘋果,哪裡看得到開源的影子,當年聽說微軟開源 DOS,我暗笑了許久;第二代的巨擎 Google,在開源上做的好了許多;而到了 Facebook和Twitter,內部用啥,就開源啥。中國的高科技公司,在階段上和美國第一代差不多,所以開源不開源,不應該過多的苛求。說點題外話,對於個人來說,是否參加開源,和道德一點關係沒有,國外熱心開源的人,也是在實現個人價值或者為自己的經歷添磚加瓦;對於企業來說,是否將基於開源代碼開發的部分開源,本身也不是道德問題,是法律問題。

前面說了這麼多廢話,想表達的個人觀點是:看開源的現狀,不應該看公司,而應該看個體。任何事情切不可妄自菲薄,可能我們的英語是不如美國人好,也不象他們那麼會推銷自己,但是中國人有的特質,放在開源上,都是優點,我用代碼作為我的語言,我們雖然口語不好,寫作其實都挺強的,多寫寫開源的文檔,水平也不差多少(開源的早期,代碼和注釋完成了大部分文檔的活,只是到後期,如果用戶數達到一定規模,好的文檔對於開源項目的推廣和大規模應用變得尤為重要,但這時,實際上你已經不是一個人在戰鬥了),況且我們還有聰明和勤奮,上面的列表就是最好的證明。每個人(針對碼農,想轉行的也歡迎)都停止抱怨,從我做起,從今天做起,每天為開源社區做點貢獻,相信在不久的未來,我們不僅擁有更好的騰訊百度和阿里,還會擁有完全靠開源成長和壯大的公司。
-----------------------------------
拜託大家一件事情,如果有 Github 帳號的,請完善一下 Github 上的帳號信息,地址至少包括城市和國家,向阿里的同學學習(阿里同學的地址都很完整:Hangzhou, China),多謝了。


從我自己接觸到的信息來看,中國開源有一些進展,但整體還是很不好。

  • 從政府層面來看
    還是那些老先生,那些老調調,總是強調要自足知識產權。大量的資金投入,也沒有見有什麼好用的開源軟體出來。
  • 企業開源來看
    最近這幾年,淘寶,網易,百度這幾家互聯網公司把自己公司使用的一些產品拿出來開源,也開始參與一些重要開源項目的開發。但這些公司開源的項目往往更多的是為了和開發社區拉近關係,給自己貼上一個開源的標籤。和google, facebook, yahoo這樣公司的開源還是有根本出發點的區別。這類的開源項目其實我很擔心後續的持續性。
  • 開源開發者
    國內最近還是有不少的開源愛好者做了一些開源項目。但這些項目的定位、後續的文檔支持、開發維護、項目的代碼質量、宣傳都有很多問題。所以絕大部分的開源項目最後也不了了之,難以為繼。
  • 開源社區
    最近幾年的亮點也許就是開源中國社區了。難得紅薯和蟲蟲他們幾位對開源非常了解,又非常熱愛開源,按照開源的路子來運作社區。所以對很多開源項目的宣傳起到了實實在在的作用。相反其他的一些社區,之前和開源沒有任何關係的,現在也要往自己身上貼標籤,標榜自己要支持開源社區。不點名了。
  • 開源用戶
    國內的開源用戶基本上還是那樣,索取者多,奉獻者少。在國內做開源,難啊。

我從04年做bugfree開始算起的話,到現在也差不多10年了。後來參與了ecshop開發, 09年自己創業做禪道項目管理軟體,今年開始做蟬知開源企業門戶系統。這10多年走下來,自己有幾點感觸:

  1. 擺脫程序員思維,用產品的角度去做事。
    我們程序員做東西,往往程序員的思維更強,但做開源軟體,應當用產品的角度去做事情。這樣做出來的軟體才更有市場。
  2. 做應用類的開源更有發展前途
  3. 免費的東西要做到最好
    用戶其實現在對免費開源的東西往往要求更高。所以做開源軟體,朝著商業軟體的品質去做。給用戶提供實實在在的價值,會有很多企業樂意買單的。現在大家對軟體的價值認可比較以前強多了。

首先我想說,開源是國際的。
前些年某個國人軟體開源了,還會被授予「國人出品」的光環,似乎給我大中華民族掙了一口氣。
近幾年來,有賴於github/bitbucket等代碼倉庫的迅速發展,國人的開源作品也借著這些渠道迅速湧現、分發。這其中我看到一個個如獨行俠般古道熱腸、樂於分享的碼農兄弟,公司、企業卻不多。
他們用英文寫 readme,認真解答每個 issues,在他們心底,代碼本身就是跨國界的,分享和協作本身就是跨國界的。這樣一群開會說不上話、毫無存在感地敲著代碼、見著美女有賊心沒賊膽的窮忙適齡未婚屌絲,恰恰是樂於分享、足夠真誠的理想主義者。慶幸的是,現在的中國這樣的人很多。當然,這也是不幸。

每一個開源小碼農||大神都是「世界是平的」最好的踐行者,他們已經越過邊界看到了遠方,你為什麼還要問「中國」開源現狀?!


談一點我對開源的看法,不一定能夠直接回答「中國開源現狀如何?」這個問題。

  1. 使用開源軟體搭建自己的網站和商業系統,沒有任何道德問題,可以理所當然地這麼做。實際上大部分場景都是這樣的。我覺得這是開源的目的之一:分享和利用人類的發展成果。(另一個目的:自由)
  2. 在當前這個階段,一家企業做開源,其出發點不是道德,而是利益。可以舉很多例子,比如 IBM 很早就擁抱 Linux 操作系統,其結果是它能夠賣出更多的軟體、硬體和諮詢服務。在最近很多年,Linux 內核的發展是大公司推動的。
  3. 選擇了用開源軟體搭建網站、商業系統,實際上是選擇了一種技術路線(roadmap),對於小規模的公司,只使用開源軟體(即「索取」)問題不大;對於一家業務規模很大的公司,伺服器成本、軟體的開發和運維成本是不可忽視的,幾乎不可避免對開源軟體做修改,以及從社區(也就是其它公司)不斷地拿 patch。在這個場景里,只索取不貢獻,有兩個結果,1)自己的版本與社區版本越來越不兼容,維護成本很高,到後來甚至無法索取,2)被孤立。在當前階段,很多大的開源軟體,開發的時間和人力成本都很高,實際上已經無法靠一家公司開發。而有時候,開源軟體幾乎是唯一的選擇,比如 Linux 操作系統。
  4. 小規模的、影響力小的開源軟體,代表技術人員的理想(也可以說是狂熱)。事實上所有有影響力的開源軟體都是這麼來的。在這個情境里,更多是技術人員的執著和熱心。
  5. 軟體的開源機制是一種有益的病毒,它促使人們共享技術,並且不影響各自的獨特性。

小型的開源項目,我想github上多了去了,應該有不少是國人的作品,雖然我不知道誰是。
曾在一些著名開源項目代碼里看到國內大學學生的簽名,讓我覺得很振奮。也在檢查看ivy cache的時候不小心看到阿里巴巴的某個開源庫,突然會莫名覺得好為中國人長臉。
我在矽谷為startup工作,在這裡一個創業公司怎麼在技術圈提高影響力?開源某個牛逼項目,馬上會有很多人想要為你幹活的。
一個成功的大型開源項目背後大多都有商業公司/教育機構支持,或者原本就是某公司/學校貢獻給社區的,只是靠一群熱情的程序員,很難把稍大一點的開源項目管好。
但是開源是很頭大的事情。我們開源了一個文件系統,因為這個和業務邏輯關係最小。原本準備開源上面的分布計算框架,說了半天也沒見動靜,因為這東西已經為了公司的業務被優化了很多特殊的case,完全無法不改動就開源。開源之後會變成2個branch,維護也是麻煩,更不用題開源之前要各種code review修改,否則很多趕工寫的代碼是沒法見人的。
這麼多麻煩為啥還要開源?大多數公司還是希望能在技術社區保持影響力的。這好比富豪做慈善,不能否認他們的真心,但也不用忽視這樣做能保持形象。大環境崇尚hacker精神和分享精神,這是國內所沒有的文化氛圍。回饋社區是一種很高尚的事情,能提高公司的向心力和影響力。
我出國之前覺得國內startup的氣氛不濃厚,找工作大多數還是沖著大公司和工資去的,RMB給的多掃廁所也可以啊。就算會挑公司,也更看重公司的經營理念,技術什麼的就很浮雲了。這種環境下,開源一個項目能給公司帶來的利益太少了,很少有人因為你開源了什麼項目就覺得想要給你幹活,或者覺得身為公司員工很自豪。


我看回答里部分人充滿負面情緒,悲觀的抱怨中國的開源環境如何不好。
在抱怨之前,不妨想想自己為這個環境做了什麼。
環境改善的太慢,也許是和抱怨的人多於實幹的人有關吧。

說到中國企業的開源,我所在的公司阿里巴巴是國內參與開源力度最大的,從Linux內核、Hadoop生態圈、分散式文件系統、K/V存儲、JVM、Web伺服器,到前端開發組件,堪稱國內第一(開源的軟體不止GitHub上這些:https://github.com/alibaba)說實話這些軟體並不完美(本來就沒有完美的軟體),但是阿里開源的真誠態度和開放程度你可以看到。阿里向開源做了貢獻,也有不少收穫,這是一個正向的循環。
我很榮幸自己參與了阿里開源的整個過程並貢獻了自己的力量。

最後,我對中國的開源以及IT的未來,充滿信心。


同意 @fleuria 的觀點, 開源並非道德高尚, 而是一種商業模式的選擇, 僅此而已。

我想從科學計算的角度來提供一些情況介紹, 美國開發核武器的三大國家實驗室發起並維護了大量的開源計算軟體, 很多都是業界領先的大規模數值模擬和分析程序。 看起來很高尚, 很慷慨, 實際的目的是這樣的:

  1. 這些軟體一般是一些通用的基礎程序,不涉及核心機密, 開源不會對美國的核安全產生致命的影響。
  2. 這些軟體的用戶群較廣。 以大規模數據可視化軟體為例, 科研和工業領域有廣泛的需求, 開源之後會帶來較大的用戶群。
  3. 重點來了如此規模的用戶群在使用軟體的過程中會幫助發現bug, 同時一些有能力的用戶為了滿足自己的需要會貢獻新的功能和代碼。

看出來了么, 表面上是共享精神, 實際上是利用用戶群來幫助開發計算程序, 也就是相當於免費僱傭了一支龐大的軟體測試開發團隊。在這個過程中, 維護者和用戶均得到了好處, 實在是聰明之舉。


開源軟體不值錢——這是我做開源這些年來聽到和體會到的。

我從2008年起開始使用開源的FreeSWITCH(http://www.freeswitch.org.cn)做互聯網應用,後來逐漸參與彙報Bug,打補丁,現在也經常貢獻代碼並參與一些核心功能的開發。

我們也做一些外包開發之類的賺點小錢,客戶大部分是集成商,很少是最終用戶。對於集成商而言,他們往外賣軟體時肯定不說這是開源軟體,而說成是自主研發的。原因很簡單,開源軟體沒法賣錢。最終客戶往往只有這麼一句話:開源的怎麼還收錢?

我相信,所有看到開源這個主題的人都知道開源的背後凝聚了多少開發者的努力和貢獻,而這些貢獻甚至都不能用多少錢來衡量的。看遺憾的是,真正為開源項目買單的人不是理解開源的人。

但我還是相信開源的。在這些年裡,我通過自己的努力,融入了社區。通過FreeSWITCH,我們也能掙到一些錢並生存了下來。FreeSWITCH使用比較寬鬆的MPL協議,但我還是把大部分的代碼和成果都反饋到了社區。一來有些成就感,二來就是減少維護的成本。

誠然,對於我們這樣的小公司而言,回饋社區的成本還是很高的。且不說研發的成本,單就是跟蹤代碼庫的成本就很高。FreeSWITCH是跨平台的,很多時候,master分支里的代碼都比較激進,更新也比較活躍,而我跟得比較緊,更新頻率比較高,這就導致了需要花很大精力彙報新出現和Bug,有時甚至需要自己打補丁。當然,獲得的好處就是通過幾年的努力學到了很多東西,也認識了世界各地的不少的朋友。

我們不是什麼大公司,FreeSWITCH也是比較小眾的開源項目。但是通過擁抱開源,我們公司也活了下來。雖然沒掙到大錢,但是我們也沒有做那種將開源項目拿過來說自主知識產權那麼齷齪的事情,一直都是沿著開源的路線走的。也沒有受什麼社會大環境、潛規則之類的影響,一步一個腳印地做了幾個項目。更重要的是,我們的FreeSWITCH-CN中文社區得到了越來越多的關注。

在跟FreeSWITCH的主要作者和開源社區負責人Anthony Minessale聊天的時候他也說到,其實,在世界上所有的地方都一樣,你開源了,就沒人願意付錢。但是,像Linux、Apache這樣的項目,真的是為了賣錢嗎?當然,在國內,程序員的生存狀況確實要差一些,寫代碼還是我們的謀生手段。但這些都不妨礙我們的開源精神,上面各位指出的開源項目就是國人貢獻的很好的例子。而對於我們來講,我也很高興的看到我們的FreeSWITCH-CN中文社區現在已經受到比較多的關注,並且收到幾筆捐贈,不管錢多錢少,這些至少可以讓我相信開源,並願意一直做下去。

當然,我說的這些並不能回答「中國開源現狀」這麼大的一個問題,但至少,FreeSWITCH是開源的,我這幾年的一些切身經歷了或許也能代表一點小小的現狀吧。


任何事情空對空總是容易流於膚淺。但是一旦具象化地討論又不會那麼有趣。我比較喜歡具體化,因為這更接地氣,離真相更近。講個故事先。


死亡最容易觸發人思考生命的意義。睡我下鋪的兄弟過勞死讓我震驚,隨後我也與死神擦肩而過。沒日沒夜的加班到底有何意義?做出來什麼產品?這些產品給人們帶來了什麼益處?沒有我滿意的答案。唯一可觸摸的是,我獻出青春,換回養家糊口的報酬。


總要做點什麼事情才好。10年中秋後開始啟動一個實際的項目:設計一個ARMv6指令集兼容的處理器。這個東西有點用處,並且還有點意思。


為了讓它真的有用,我為這個項目制定了幾個自我約束的規範:完全開源,任何人都可以使用;使用流片的標準編寫代碼;禁止使用公司資源,每一行代碼都自己開發;利用業餘時間完成。

現在回想起來,當初是過於樂觀了。原計劃三個月時間完成的工作,拖了三年。


一個每天在公司工作10小時的人,理論上講還有14小時屬於自己。實際上,刨去吃喝拉撒睡還有家庭孩子消耗的時間,剩下幾乎沒有可以利用的了。因公司業務太忙,3月或者半年都沒有為這個項目寫一行代碼是經常出現的情形。


現在,項目預設的目標是完成了,但整個過程給我的體會是:乾巴巴的苦!快感只是瞬態,常態則是日復一日的平淡無聊。為了避免又一次放棄和逃避的結局,只好把無聊當有趣,硬著頭皮做下去。


回到中國開源現狀的議題。開源即全球性的知識共享,沒有國界的概念。區分國內國外,應該是指國內或者國外對開源運動的貢獻。


我覺得中國目前的IT行業還不具備適合開源文化生存的土壤。推己及人,公司生存不易,員工生活也不從容。這種環境下出現的開源項目也只能是星星之火,無法形成規模和氣候。


比特可以copypaste,你很難對原子做相同的操作。將比特承載的信息固化到一組原子中則是一個複雜的過程。集成電路設計領域很難有開源的情況出現。要開源,也只是前端設計代碼開源。

IC前端設計的開源,國外至少還有Gailser(LEON3),和http://Opencores.org社區。國內可以直接給兩個字:沒有。不那麼武斷的回答是:還處於萌芽狀態吧。


接著講故事。現在的晶元IP模塊售價動輒幾百K美元,我承認在現有的知識產權框架下,這些收費是合理的,畢竟硬體設計消耗的時間人力金錢確實不菲。我的想法是,難道IC設計世界只有一種玩法嗎?


A公司工程師花了三周設計了一個串口模塊,B公司如果不買的話,還得自己花一個月開發它。而這個串口功能概念少說也有60年了,根本沒有必要重複性地做這種簡單勞動。做這種白痴工作,而且還加班豈不傷人自尊!

Okay,現在我把這個串口做出來,把這個處理器做出來。工程師兄弟們,拿去用吧,把精力放在更有創造性的工作上;需要MCU的公司們,拿去用吧,省下的資金用在最需要的地方好了。


想到一段文字,可能有點離題:

中國的互聯網企業都有一個毛病,那就是沒有開源共享的精神,對開源社區索取大於回饋,百度也是如此。這些企業總是以為自己的技術高人一等,又不想做那些」瑣碎「的基礎工作,將開源的項目拿過來修修補補貼點牛皮蘚後就開始到處吹牛逼說什麼世界領先國內一流。比如我在的時候,百度宣稱自己的Hadoop集群在規模、負載和利用率上是世界前三的。可是這又有什麼用呢?
第一,Hadoop不是百度開發的,百度只是打了點補丁做了些定製而已;
第二,百度的Hadoop集群數量只有10+個,遠遠比不上Google 100+個GFS集群這樣的規模,其整體的自動化運維水平也差了一個世代;
第三,百度所做的所有「改進」很少回饋過開源社區。

其實在Hadoop之前,百度也曾想過開發自己的GFS+MapReduce+BigTable,沒錯,百度想要開發的系統就是基於Google那三篇著名的論文的。這個系統叫做Pyramid,其領銜人是王選的高徒陽振坤博士。Pyramid大約開發了2-3年,最終以失敗告終,據說最後與Hadoop PK的時候完敗下來,陽振坤也在其後離職加盟淘寶。我不知道Google開發GFS+MapReduce+BigTable用了多久,但是GFS的論文是03年,MapReduce論文是04年,BigTable應該是07年,想來Google應該也是開發了4-6年左右的時間。Pyramid的失敗直接導致了Hadoop在百度的崛起,不到兩年,Hadoop的機器數量從無到有,很快就突破了萬台的規模,並且機房也從北京開始像長三角擴展,百度也終於邁出了跨數據中心的步子,儘管這個步伐似乎比Google慢了5-8年?

不過百度雖然自己用Hadoop用得很High,負載什麼的,報表都弄得不錯,集群規模也上了國內少有的3000+台,但是卻很少對Hadoop社區進行開源回饋。其內部Hadoop是基於Hadoop 0.19-0.20改進的。這樣做的好處就是快,一方面依賴社區拿到已有的代碼基,整合測試就可上線,同時也不用管什麼倫理道德奉獻回饋的鳥事,但其缺點就是內部的Hadoop和官方的Hadoop會逐漸越走越遠,上游的Patch和改進越到後來會越難引進合併。這樣做的結果就是和社區分離,用自己一人之力對抗全球智慧,最終只能自討苦吃。

我記得有一次內部年會上,有位工程師跳起來問,「公司可不可以做一些開源的產品呢?很多東西本來就是從外邊拿過來的。」我只記得當時台上的兩位高管,其中一位女高管臉色稍變,過了一會又開始講什麼「做開源需要時間精力;好的東西才好意思開源出去,否則會丟臉」什麼什麼的。我想,一個IT公司有沒有勇氣擁抱開源,是一個公司是否對自己的技術有足夠自信的一個表現。在這方面,百度乏陳可善,不但沒有代碼,連論文也很少。而淘寶在章文嵩的帶領下,其開源已經做的如火如荼,算是國內IT企業中開源做的最好的一個。

引用來源: 李彥宏的「罪己詔」


就如一群人圍著看街頭雜耍:胸口碎大石,好!生吞火把,好!刀槍棍棒,好!各種叫好,可等到要收錢時,各位看官悻悻然走開了。


開源軟體沒有國界,但開源開發者有國界。
開放源代碼的軟體就擺在哪兒,你說是你開發的又如何?我們拿過來照樣用。但是我們缺的是沒有人,沒有開發者去維護、改進開源軟體!所以,歐美比我們多的,就是一群計算機精英而已。
說一下開源的現狀
目前,我們的軟體僅僅關注於完成功能,所以,找個人/公司來搞定一切,有問題就找你,開源不開源的我們才不在乎。這是把軟體當外圍工具。
但是,在一些與IT結合較緊密的行業,已經出現了軟體需求快速變化的現狀:我們今天要做一個XX功能,你們能不能幫我們做;抱歉,我們的合同中沒有這樣的內容,想要的話重新簽署合同吧。
總之,開源軟體可以消除技術綁定(?)。這也是淘寶去IOE的原因之一吧。
另外,IT行業日益基礎化,開源軟體肯定會稱為軟體行業的重要部分,就像汽車零件的設計不都是參考原始零件的么?難道那些原始零件沒有版權。
開源的推動力量
甲方:作為甲方,肯定不希望自己被綁定在一家公司的技術上,所以軟體的源代碼開放、市場上這個軟體的服務商也多肯定是優先考慮的對象。
乙方:我們自己做的軟體,把類MIT協議的代碼拿過來省下了很多開發成本;GPL的話,只能考慮把GPL部分代碼獨立成模塊發布。
開發者:參與開源項目,自己獲得認可、交流思想等。


其實我這準備是回復別人的評論的,結果不能超過1000字,所以只能寫在這裡了。
其實我是要回復這個人:
=======================
RobertDing
不好意思 真沒弄明白是什麽意思
=======================
我不是軟體相關行業的,僅僅是一個門外漢,說一下我的理解吧:
1 一個軟體的成功,一方面取決於代碼在完整度基礎上的快速增長,另外一方面則是用戶的井噴式增長,而一個軟體的擁有者的成功,則是其知名度的快速提升和報酬的增加。軟體的成功如何能夠導致擁有者的成功,這個屬於模式問題,這裡不討論。
2 同功能的軟體之間的競爭,其決定性的因素則是宣傳力度和軟體迭代速度。從這一點上來說。(這一條你可能覺得沒啥用,可以先留存),宣傳力度這個就不講了,因為對問題的解決意義不大,接下來專註於迭代速度。
3 閉源軟體的迭代速度取決於自身有多少優秀的程序員和內部的分工及組織架構,而開源軟體的迭代速度則取決於這個世界上有多少對此軟體感興趣的人。
4 如果以上觀點不同意,則可以直接點摺疊了,如果你同意,接下來說說國內幻境:
(1)國內還沒有形成對待開源的思維,仍然停留在各大論壇上貢獻的免費軟體一樣,索取為主,沒有交流,更談不上貢獻了,說白了,用戶就是個黑匣子,用的好不好他也不說,拿過去改了什麼他也不說,有問題他也不說,我個人認為這個可能跟國民性格有關係。
(2)對於有能力貢獻代碼的人,有的是習慣問題,比如說骨子裡的實用主義,拿過來用了,改了,然後就結束了,也沒有交流,這個也跟一個國民習慣有關係,國內的好為人師,大部分都是行為式的,也就是你必須按照我這麼做,不這麼做就不行,而不是展現式的。所謂展現式,就是我呈現給你看,你願意學,ok,不願意,也ok。長此以往,大部分學習的手段就是拿來就可以了,沒有思考,也沒有反饋,因為一反饋就挨揍了(軟體行業肯定沒這回事,別的行業比較多)。
(3)對於有能力管理開源的人,可能就是一個管理模式的問題了,這一點我就不了解了,不做評價。
(4)國內大部分人會基於一個想要後續獲取利益的目的來發布軟體,(當然,不能說這樣不對),閉源的話,能力又不夠,所以選擇了開源,這樣導致的問題就是自立山頭比較多,而山頭下的兵少,好不容易兵多了,結果因為準備不夠,將又少。
5 基於以上幾點,所以,一個軟體開源了,很容易就被大公司或者其他人給閉源處理了,迭代比你快,優化比你好,所以,開著開著,就死了。
以上你應該理解了在國內做開源的困難了吧。
接下來說說國外的開源的好處:
1 知名度和殖民地:
以前的軟體模式屬於養雞場,開發者和使用者之間的差別特別大,使用者就只管使用就可以了,以前市場也小,閉源軟體完全能夠管理,所以以前是一種領土擴張的形式,就跟秦朝統一六國是一樣的。
後來形式變了,用戶也開始變成開發者了,要鬧獨立了,比如linux,這個時候死守養雞場,可能雞就全跑了。怎麼辦呢,變成了殖民地的模式,就是我開發一個框架,開發一個範式,然後你自立塊地,然後自己辦養雞場去吧。
這個時候,其實爭的就不是雞了,而是頭雞,有時候甚至要去培養頭雞。這個過程呢,有幾個關鍵點需要說明:一個是頭雞跟場主的關係,頭雞使用了場主的秘方,就決定了要時刻關注場主的行為方式、特點、緊跟其主義,不然一不小心,可能場主弄出一個更新出來,跟你頭雞的思維方式不一樣,這個時候你再轉變,是要有點頭疼的。第二個,是所謂開源,一般是開一個框架出來,大家在這個模式下思考,這種的比較高端,直接弄一個應用出來的也有,但一般就不以此軟體的本身利益為出發點了。。。。
所以,一個場主帶呼啦啦一群頭雞的場面,是很拉風的,也很有利的,主要是可以拐跑別人家的雞,甚至頭雞,另外,有能力的雞,你還可以吸引過來做大將用。21世紀什麼最貴,當然是雞婆啊。
另外,把框架貢獻出來,還有一個另外的好處,就是可以不斷的完善。這裡面有一個公理,就是非戰鬥雞在有限的時間,有限的精力,有限的思維模式下,是不會寫出完美的代碼的,這個時候怎麼辦,公開出來,如果可能的話,恨不得讓外星雞也看一看,有能力的就貢獻個代碼,沒能力的測試下使用環境,有熱情的捐點錢,沒熱情的寫點使用教程,使用心得也是要的。
外國雞大家都貌似比較閑,所以大家的心態比較好,能做到上面這些,所以,開源的就比閉源的迭代快,擁護多,亢奮雞也多,所以,就有利益啦,畢竟,發個廣告還不少錢呢。


從高中到大學的情況來看,不盡人意,還需努力。

我在美國當高中生交換生的時候,第一次了解到了開源軟體,並參加了開源競賽。比賽後我加入了FOSSASIA,一個面向亞洲的開源組織。

在谷歌開源競賽中,我看到最多的是印度和巴基斯坦人,然後是美國人,大陸學生好像因為wall什麼都不知道,沒幾個人參加(估計的,我自己完成了不少task但是沒見到一個大陸人)

還有就是在開源組織FOSSASIA裡面了。這個組織在東南亞國家和歐洲國家都有些名氣,但是在中國什麼音訊都聽不到,WTF,現在他們組織了一個國際開源競賽到目前也沒有一個大陸人參加,順帶安利下這個競賽,全年齡段都可參加哦! http://codeheat.org

我在這個組織裡面除了我也沒看到別的大陸人在積極貢獻代碼,大部分都是來自歐洲國家的人在做

自己在清華實習的時候,問了下實驗室師兄有沒有在github上上傳有意思的項目,沒想到有的說github用來搭博客了,有的只fork了些shadowsocks之類項目,我相信清華是國內開源氛圍最好校園之一,但是開源完全沒有發展起來啊

至於大公司作為高中生我不清楚,應該比個人要好很多吧。

而且看國人在github上的代碼不少沒有文檔(我自己有些也不寫文檔),有文檔也有不少是中文的,外國人根本用不了。寫文檔還是盡量寫英文的,看起來也爽

In short, 中國開源還需努力,我也會持續在中國普及開源

安利比賽 http://codeheat.org


因為沒有做過開源,沒想好該怎麼聊這個話題,只能講幾點感受。
黑客..開源..創客.....這些名詞兒最早來自歐美文化圈, 為什麼發源地不是中國或者是印度什麼的,我想這大概和區域文化,經濟程度,科技水平等環境因素有關,而我們的主流做法基本上都是是拿來主義 , 有點水準的理想主義者我承認的確有,可他們不代表主流,大家都知道我國對待開源的主流做法是什麼,好聽點的其實是微創新,不好聽的就直接山寨了,玩包裝藝術。國人大多數還處在溫飽線上,但鋪天蓋地的歐美文化時刻都在耳邊提醒我們要趕快賺錢享受生活提前退休。這種心態,我們怎麼玩開源?

我也干過分析開源代碼的事,在那些經歷中卻發現,其實開源也是有保留的(代碼開源了,文檔卻沒有,或者文檔做成使用說明書,根本就不講代碼背後的原理 ),開源的作者們基本上都不是為了讓別人更好得學習而開源,很多僅僅是把代碼放在網上,只不過這個地方恰好是流行的能代表身份的開源地,而跟隨者們多半也是直接拿來應用。有幾人有水平有時間有理想去研究那上千上萬行的源代碼. 更多的都是公司行為,借別人的開源找自己的機會發自己的財,能用就用,不行再改,再擴。這也是不重複造輪子思想下的產物嘛.

開源是基於興趣和某種樂觀情懷的,這兩樣我都不具備。最後感謝那些開源的人們,他們的確讓這個世界更美好了一點( 雖然我還沒粘過他們的光 )。我還有一個問題,國內的淘寶,百度,騰訊,新浪......等用了開源代碼的這些個土豪門有沒有感謝過那些作者們一毛錢?當然我知道人家不圖錢. 但是感謝過嗎?人家讓你美好了,你好歹也意思意思吧.....所以別把自己描得太美一身正氣, 真實點嘛. 其實大家都這樣。我也在努力讓自己快點"被美好"。


其實不能簡單意義上的把開源定義為把一段代碼共享到網路那麼簡單,多種軟體開源協議我們是否仔細的閱讀過,從另一個角度去分析,開源需要工程師付出大量的時間和精力而沒有明確利益回報的事情,往往很多開源項目是依託於公司,團隊服務於公司項目服務於公司,項目也開源共享給網路,這樣的開源具有鮮活的生命力,還有一種形式是純粹的開源,基於互聯網團隊的興趣愛好所磨練打造出的項目,這個很少我想最大的原因就是沒有一個利益的支撐體系來活躍項目,很多人抱怨國內沒有完全意義的開源項目,或者是沒有優秀的開源項目,我們不能片面的去分析這個事情,行業和社會的發展階段決定了這一現象,越來越多參與和從事這一行業,我想開源不分國界在任何一個地方任何一個優秀的開源項目都可以閃耀光輝。


個人認為中國開源的狀況不僅僅包含技術上的源代碼的貢獻狀況,回答這個問題需要從一下幾個方面回答:
1、個人開源的狀況分析:從少數人參與已經到了多數人參與、從傳統的軟體開源逐漸擴大到互聯網應用開源、個人的參與程度逐漸在提高!我2007年初經參加國國際開源Openoffice。org社區,當時國內互聯網企業還在摸索探索自己的商業模式很少有人參與開源;但到目前國內的互聯網企業已經逐漸開源了;目前國內個人開源愛好者數量在增多、是因為他們首先想到的是源代碼是否可以幫助我解決實際的工作問題,等待問題解決後在反哺給開源社區、當然反哺者還是比較少,但至少已經開始反哺了; 個人開源愛好者需要先通過工作解決生計問題、才能有心思考慮做開源,這是普遍現象也是正確的思路;個人開源愛好者目的性太強、往往上去之後就想著源代碼可以幫到我什麼或者我可以直接貢獻哪些源代碼出去,很少有人站在產品、市場、應用場景角度去思考開源的產品和項目,這樣直接導致不知道為什麼而開源?
2、國內企業開源的狀況:國內企業想做開源的或者已經做開源的,往往不是來自CEO或者老闆的壓力、不是自上而下的推動開源,因為開源的項目不能直接給他們帶來什麼,這些老闆還是比較短視的,這種短視可以理解。 老闆們考慮的更多的是開源可以為我帶來什麼,我需要多少投入! 可以說老闆們還是沒有找到如何讓開源促進產品、產品如何更好的帶動開源,更沒有人考慮如何使開源的上下游廠商受益,如果一個開源項目沒有考慮到上下游廠商的利益、很難持續發展下去!
3、國家層面狀況:幾年前以院士倪光南等人還主張開源、主張國內廠商站在開源的基礎上研發產品可以節約研發經費、也可以加快和國際社區接軌,更是防止壟斷的利器!前幾年開源的呼聲比較高、現在官方組織結構很少人主張開源了。也許開源會侵犯到某些個別廠商的利益、會阻礙一些人發財;國家層面更因該借鑒一下俄羅斯、巴西、澳大利亞、歐洲等一些國家鼓勵國家機關優先選購開源產品。
4、開源與不開源都不是盈利模式更不是商業模式的範疇,開源只是一種開發模式或者說一種手段/方法,通過開源可以聚集相關利益的人,大家一起把這個產業鏈條做大,這樣大家才有飯吃!
5、我的源代碼開放出去了,擔心別人會超越我! 這是一個不自信的想法、最開始你是開源出去的、你就是領導者也是開源規則的制定者,追隨者進步你也再進步,很難一步就可以追上來的;不相信的可以看看國際的開源社區項目。開源最多只是解決項目上的技術問題、但往往制約企業發展不好的不是技術,是其他和技術關係不大的層面。


總覺得開源是從 Linux 社區開始, 泛濫到 Ruby 社區, 被天生開源的 JS 用濫的.
大量公司採用 Linux 作為伺服器, 以及使用 Linux 上的開源軟體, 人數反正不會少了.

我個人在 Github 關注的開源項目主要是 SeaJS 和 Avalon, 兩個都是 JS 的.
Node 項目在 Github 上不少, 但國內大到一群人刷 Issue 的情形不多.
我比較覺得是國內玩開源的一代還沒起來, Github 的觀念也沒有足夠流行.

國人對國外那套開源的東西, 熟悉的人, 應該是因為基數大所以才多的吧,
Github 上的 Markdown 評論, 在 Github 和 CNode 都經常出現沒有標記,
並且國外開源項目標誌性的開源文檔, 國人都用中文, 因此就隔閡在那裡沒法子.

上邊答案提到好多後端項目, 也是託管在 Github 上的, 主要是託管,
託管的代碼國人的也超多, 見過騰訊百度的前端項目也很多呀.
但一個 Github 上的重要事情是參與 Issue 和 Pull Request,
國人貢獻國外項目好多我想是沒有被統計出來的, 而且語言還有隔閡呢.

當然開源不限於 Github... 以上是 Github 用戶的見聞~


推薦閱讀:

什麼樣的軟體適合開源?

TAG:開源軟體 | 開源 | 中國 | 開源社區 |