中國開源社群離成功還有多遠?

2puT發表於2016-09-17

自2011年深度科技建立,每年都有國內外的開源社群說今年就是Linux元年,特別是Android這個基於Linux構建的移動作業系統在全世界範圍流行的情況下,很多人非常關心中國開源社群真實的現狀是什麼? 中國開源社群的未來在哪裡? 

自從2004年入坑Linux以來,不知不覺自己已經在開源社群裡摸爬滾打了12年,在深度科技工作的6年親身參加過全國大多數LUG(Linux user group),今天我從自己一個開發者、創業者、佈道者的角度講述一下我心中的中國開源社群。

中國開源社群的現狀

中國的開源社群在最近幾年已經獲得長足發展,特別是Android的流行極大擴張了中國使用Linux的開發者數量,原來Linux只停留在硬體工程師、嵌入式工程師、伺服器開發工程師和運維工程師等極小眾圈子,通過Android的普及,現在一個初級工程師已經可以非常熟練的使用Linux了。

雖然Linux使用人數獲得極大增長,但是Linux依然被限定在開發者領域。不論從整個軟硬體生態、開源上下游廠商、開源概念普及、版權和教育都非常不成熟,相對於Windows的生態和廣大普通消費者來說,Linux依然離普通消費者很遠。

開源社群的成功本質還在於生態建設、社會文化和意識形態的積累,如果不從本質上去分析現在中國的開源社群的問題並解決問題,光靠現在的網際網路方法論是無法解決開源社群和開源生態的問題。 

從我個人的觀點來看,開源社群在中國的問題主要集中在以下幾個方面:

中國缺少一個在開源商業化獲得巨大成功的企業

任何一個產業或者商業模式的發展都是遵循這樣一個規律:
在特定領域,領域內極小的一部分愛好者和技術專家在領域內長期努力,發展壯大成組織或公司,並以更大的力量持續推動特定領域發展。從個人愛好到小眾產品,從量變到質變,最後突破引爆點到大眾流行產品。

這種量變到質變的過程並不像很多網際網路發展模式,在風口上的產品通過1~2年的努力就可以做出很大的影響,開源社群的成功需要一代人至少堅持5~10年的時間才能有效果,在這麼長的時間跨度裡,不論從企業家、政府支援、哪怕是愛好者和普通消費者都很難一同堅持下去。

撇開在開源社群一直堅持的開發者、愛好者以及企業,開源社群在中國最大的困難在於“希望”,開發者對於自己喜愛系統成功的希望,愛好者對於自己信仰普及的希望,企業家看到能夠通過開源技術獲得盈利並不斷持續推動開源的希望,大眾看到中國人自己國人產品自豪的希望。

而希望的關鍵在於至少有一個在開源領域獲得巨大成功的企業,只要有一個企業在不斷髮展,它的技術以及產品在被越來越多的人使用後,希望就有可能變成一種可以被複制的商業模式,就有可能引發更多的企業成功的正向迴圈。

在全世界範圍,在開源領域獲得最大的成功的企業是RedHat, 這個最早做Linux作業系統的企業,通過自身在開源技術領域的專注,通過開源技術在企業級市場大獲成功,2015年RedHat的收入達20億美金,雖然相對於大家心目中的Micrsoft/Google/Apple的營收來說是沒法比的,但是在開源社群這個誰都沒有獲得成功的領域,RedHat不但可以花錢養一大批Linux技術高手,還能自我造血不斷髮展,這本身來說就是最大的希望,只要有RedHat在,全世界的Linux愛好者就會相信開源技術以及開源社群能夠獲得最終勝利。

反觀中國,國內還沒有哪一家企業像RedHat靠開源技術獲得巨大成功。國內只要有一家或者幾家在通過開源技術做產品的公司獲得成功,就會持續不斷激勵更多的人員加入開源社群,而企業就可以用相同的模式在更多行業進行復制。

所以,國內開源社群的最大問題就是還沒有一家在開源商業化獲得巨大成功的企業,只要一家或幾家企業在開源領域獲得成功,就會成功在整個行業種下希望的種子,而希望和堅定的信念是中國開源社群成功必須要經歷的一步。

開源生態不成熟, 上下游廠商進入門檻高, 利潤少

開源技術因為先天的強技術和開放的背景,以Linux為首的開源技術和產品已經在伺服器、嵌入式、智慧硬體領域獲得巨大成功,但在桌面作業系統,不論企業級還是消費級市場都遇到諸多技術和生態障礙,比如:
1、在政府辦公領域,政府內網辦公OA都是基於Windows以及ActiveX技術來構建的,如果OA不進行linux以及html/js技術遷移,只執行作業系統並不能執行業務系統就完全無法辦公;
2、很多企業級市場大量使用Windows 應用,比如QQ、RTX和很多專用軟體,如果這些Windows軟體不進行Linux客戶端遷移,只執行作業系統企業無法正常運作;

這只是Linux桌面系統在部分行業遇到兩個最大問題,我相信在其他很多行業會遇到各種各樣應用生態的問題,如果這些應用生態的障礙不遷移,作業系統做的再好,客戶沒法直接使用,客戶寧願花更多的錢也不願意使用開源桌面系統和開源產品,因為對於客戶來說,花錢是為了節省時間提高運營效率,而不是花錢來解決他們意識形態裡面本就不應該發生的問題(Windows就沒問題)。

其實微軟也是花了幾十年時間來構建Windows應用生態,現在的消費者只是在享受Windows生態完善的紅利。而對於開源社群以及開源產品來說,生態建設的過程不能少,而且開源產品的生態建設要比幾十年前還要困難很多,當年微軟處於的是計算機蠻荒時代,什麼應用都沒有,很多應用都解決的是從無到有的問題,只要任何一個應用開發者或軟體開發廠商開發出一個產品就會有人用,只要有使用者在不斷的使用,產品就會不斷擴大和發展壯大。

而開源社群以及開源產品,不光要解決從無到有的問題,還要解決使用者習慣和切換成本的問題,個人和企業開發出的開源產品不但要解決問題,還要比現在市面上的Windows/Mac 系統上同等應用功能還要好才會有人願意嘗試,而且開源系統的成本遷移還不僅僅是一個應用的遷移,當從Windows/Mac系統切換到開源系統上,使用者系統裡面所有的應用都要有相應的替代品,使用者才能在遷移系統時不影響正常生活和工作。

所以,在中國開源社群的第二個問題就是上下游廠商的准入門檻太高,當基於開源作業系統上開發的應用要投入更多的資源,甚至要解決十倍數量級以上的問題才能獲得Windows 平臺一倍的回報時, 企業的後期回報不能抵消前期的投入,很多企業都不會跟進開源生態的建設中來,這個就和Android早期市場一樣,只有當Android平臺在前期掃平了很多障礙以後,後期個人開發者和企業才會迅速跟進。

版權意識薄弱, 開源的技術優勢和長期成本優勢被盜版持續打壓

因為中國起步開始普及計算機的時代,國內使用者的工資水平都比較低,那個年代人均2000 ~ 3000 的薪水,要一個家庭花2000元左右去買作業系統是非常不現實的,每個人更多的會去選擇盜版光碟,盜版光碟的便宜和方便讓很多人一直都根植到心中一個概念:作業系統和上面的應用軟體都是免費的。

而開源軟體的特點是原始碼完全開放,只要有足夠的技術能力理解和修改,完全可以自己維護。但是開源軟體並不像很多人理解那樣, 開源軟體並不等同於免費軟體,開源軟體的創作和維護成本像閉源軟體的成本一樣高。 

開源軟體的優勢在於原始碼完全開放,不同的開發者和企業可以基於共同的目標在網上進行鬆散開發和維護, 在降低每個人或企業的長期維護成本情況之下,可以持續的使用開源軟體的新功能。開源軟體的優勢不在於短期一次性投入,而在於長期使用情況之下,不僅軟體的功能穩定性和持續性有極大保障,而且還避免硬體不斷升級的投入成本。

而開源軟體的長期技術優勢和成本優勢依然是需要前期進行投入的,不論開源軟體和閉源軟體,不論收入的來源是直接來源於使用者還是第三方,如果一個軟體沒有持續健康的收入來保障開源軟體的前期開發和維護,開源軟體的長期技術和成本優勢並無法得到很好體現。

所以,開源社群在中國第三個問題是版權意識薄弱,如果有一天開源軟體像國內整個環境對正版音樂和正版電影一樣重視,開源社群以及開源技術產品才能獲得更為健康持續的發展。

開源概念普及不夠, 社會對開源的認識和接觸度不夠

開源社群對於現在中國社會,就像二十年前計算機對於當時的中國一樣,說到開源大多數人都是不瞭解的, 雖然大多數人手機裡面就執行了很多由開原始碼構建的應用。

在我看來,不論普通使用者、開發者、企業包括政府都對開源的概念和開源社群的運作模式都不甚瞭解:

  • 普通使用者對開源的理解:很多普通使用者對開源可以說完全沒有概念的,他們從來沒有接觸過開源,他們不知道開源背後的發展歷史和理念,他們也很難像開源開發者那樣對開源從感動到信仰。這也是我非常反對很多國內開源開發者和很多開源佈道者對普通使用者灌輸開源理念,就像寶馬工程師向普通人講解引擎的工作原理和技術細節一樣,每個普通使用者都有自己的生活,他們不會花費時間聽開源開發者bla bla bla。甚至很多長輩聽到開源就是把自己寫的程式碼無償的分享給全世界以後都會說:“你傻啊?”。 
  • 開發者對開源的理解:大多數開發者,依然把開源當做是快速抄程式碼的地方,甚至很多開發者是為了開源而開源,通過參加各種高大上的開源會議來獲得名氣以更快的跳槽。
  • 企業對開源的理解:開源對企業的要求其實和傳統的閉源Windows開發要求一樣,甚至要求更低。但是大多數企業依然只是把開源當成免費軟體庫在使用,然後永遠不再更新和維護。大多數使用開源庫的企業幾乎都不會向上遊提交任何補丁和改進,即使他們在使用開源庫的時候發現並改進了很多問題。
  • 政府對開源的理解:政府方面在開源的認識我覺得是最淺顯的,政府不論從國家博弈還是國家安全的角度考慮完全自主可控都是無可厚非的。從另外一方面微軟對於美國是自主可控的,但是反觀國內的作業系統廠商和國產應用生態現狀,依然在大量在用開源社群的程式碼。對於開原始碼從核心、軟體倉庫到桌面環境和上層應用,即使國內原始碼掌握程度最高的深度作業系統都不能說對所有的開原始碼進行掌握,甚至還有很多地方直接用的是上游開源專案構建而成的。所以自主可控在我看來,本質上是對程式碼的使用和掌握的熟練程度,而不僅僅是現在政府單位認為的只要拷貝上游開源社群的程式碼,甚至連內容都沒改就像很多國內廠商說的自己是完全自主可控的。 如果對於開原始碼的理解程度不夠,僅僅只是拷貝後“佔有”程式碼,這不叫自主可控,說大一點這叫偷竊開源社群成果,說小一點這叫“鴕鳥”,明明沒有掌握開原始碼,然後自欺欺人的告訴自己完全自主可控了。自主可控的目標一定是先學習開源社群的技術,融會貫通,才能編寫真正有影響力的程式碼影響開源社群(就像 RedHat, IBM, Samsung 這些開源大戶做的一樣)。

不論普通使用者、開發者、企業和政府單位,對於開源的理解都要建立在開放的思路上,現在在開源概念的理解上,大多數人都認為只有閉源的程式碼才是最安全的。因為在網際網路時代,軟體、硬體包括互動溝通方式每天都在發生變化,閉源不但不是最安全的程式碼,反而變成最不安全的程式碼。 

因為當我們封閉和不更新程式碼以後,外面的軟硬體以及生態發生變化,我們的程式碼很有可能就因為長期沒有和主流分支進行合併,包括大量的安全漏洞修復和基本執行都無法保障。在這個不斷髮展和進步的世界,恰恰和大多數人的直覺相反,不更新的程式碼就是最不安全的程式碼!即使從國家安全的角度看,當大多數IT強國都在各種開源社群和黑客大會中不斷吸收先進技術構建他們的安全系統,而我們只是拷貝老的程式碼,單單從這一點來說, 不論從功能還是安全上都要大大落後其他國家的步伐。

學校教育落後開源社群10年以上, 培養不出開源人才

在開源社群,最新最厲害的知識只有幾個地方:郵件列表,IRC頻道,各開源社群論文三個地方,開源社群的開發模式完全和傳統的軟體開發和閉源開發方式不一樣。

大多數頂尖的開源技術,最開始的僅僅是一個天馬行空的想法,然後開源專案作者就根據這個想法做一個簡單的 demo 來驗證他自己的想法,一旦想法成熟以後就會把程式碼和想法放到公開的網上,讓世界上所有有共同目標的開發者一起合作開發。 

這些開發者主要交流的地方就是郵件列表和IRC頻道,有些學校的教授還會寫一些非常嚴謹的論文供別人學習,世界上大部分頂尖的開源開發者都通過郵件列表和IRC頻道中和別的頂尖高手互相溝通學習,這些高含金量的知識都是非常碎片化的, 很難被搜尋引擎系統抓取,甚至很多討論中並沒有太多知識, 和頂尖高手聊天學習他們的思考方式都是大多數開源開發者快速學習的重要方式。

打個比方,全世界的開源開發者都在以法拉利的速度在學習和成長,中國的學校教育對於開源的教育還停留在自行車的水平甚至更差。中國除了中國科技大學、西安郵電大學、北京和廣州的一些大學因為計算機老師本身就是開源擁護者, 除了這些大學在維持各自學校的開源文化和氛圍外,大多數大學教授的計算機知識都還停留在遠古時代,大多數計算機的學生除了學了基本的 C 和 Java 程式設計習題外,自己從來沒有獨立編寫過開源軟體,甚至一離開學校後除了 hello world ,根本無法靈活用自己所學的知識,更別提跟上開源社群最新的開源技術。

這就造成當網際網路行業快速發展需要大量開源技術人才的時候,學校大部分學生都完全不能滿足企業的需求, 只有少數從小學習程式設計或在大學自學開源技術的學生才能滿足日益擴大的開源人才要求。而這一部分人才面對行業的需求真是杯水車薪。

從本質上來說,中國開源社群大部分的問題都會歸結到學校教育上來,大部分學校教育都是功利性和死板的,除了死背課本以外,根本沒有教對於學生最重要的獨立思考能力和想法,很多計算機學生空有一身基礎教育和方法論,當有一天他們真正面對問題的時候,連基本的問題分析能力和獨立思考習慣都沒有。

和國外開源社群的差距

上面說了一些中國開源社群的現狀,下面說一下中國開源社群和國外開源社群的主要差距:

生態構建意識薄弱

開源技術的發展離不開離散型的社群化開發模式,它的重要基礎就是程式碼能夠互相編寫,甚至競爭對手共同維護一份相同的開源軟體,比如瀏覽器的競爭對手 google, apple, opera 等等都在向 webkit 這個開源專案提交程式碼。 

在互利互惠這種最基礎開源技術協作原則上,基於開源技術構建的商業模式應該是所有廠商為了減少獨自維護龐大開源原始碼的壓力選擇共同維護,並在共同維護的基礎上根據自己的優勢來構建自己的產品來進行差異化競爭。比如上面說的Google, Apple, Opera都有自己的瀏覽器產品,但他們都選擇共同維護WebKit這個瀏覽器渲染引擎程式碼,大家一起維護不單能減少維護程式碼的工作量,而且能夠互相監督保證WebKit引擎在功能上保持中立,然後各家再在WebKit基礎之上根據自己的產品優勢和市場定位進行差異化競爭。

從本質上來說,開源技術的相互協作開發,甚至競爭對手共同維護程式碼不是基於大家是絕對無私的,恰恰相反,正是基於自私,任何一家廠商(包括像 Apple 這樣的公司)都無法持續的維護和更新專案,只有整個社群一起更新才能發展的更快,而且特別是像很多基礎性或平臺性的開源專案,如果都是一家廠商做了, 即使開源了,也沒人願意加入一起開發。

國外開源社群還特別喜歡互補性開發,如果已經有一家廠商開發了同樣的開源軟體,另外的廠商如果覺得現有的開源工具非常好用,就會選擇開發互補的開源工具,而不是開發同樣的工具。比如最近Docker 在整個開源社群都很火,很多廠商更多是傾向於開發Docker相關的工具和解決方案,而不是重新開發另外一個Docker , 在開源社群, 非常強調先入為主和使用者習慣,領域中第一個出現的開源專案只要有人一直維護,這個專案會吸引90% 的使用者,而不會用相同功能的開源專案,除非新的開源專案在功能和原理上大大超越現有開源專案。

國外很多開發者和企業在知識和能力並不比國內開發者和企業高明很多,甚至我見到的很多開發者就是普普通通的計算機學生,但是造成國內外開源社群發展活躍度差異巨大的原因就是:國外的開發者和企業,從構建開源專案一開始的時候,就是保證開放協作的方式開發,當參與開源專案的人數達到一定量級就會保持非常高的持續性、活躍度甚至跨行業創新。而國內開發者和企業,從一開始就怕競爭對手抄程式碼,或者認為自己是這個世界上最聰明的人把程式碼隱藏,當專案越來越大的時候,使用和開發的人也越來越少,最後自己的維護成本不但成指數型增長,而且發展速度越來越慢。

正確的方式應該就像Chromium 瀏覽器一樣,最開始就開放程式碼,讓競爭對手抄程式碼,開源專案複雜到一定程度後,一定是需要自己研究才能積累掌握開源技術的知識和能力,如果一直抄襲別人的程式碼,不具備改進複雜程式碼的能力,永遠都只能跟在別人的屁股後面走。

從我個人來看,國內外開源社群最大的差距就在“意識”上,越開放的態度和意識會導致整個開源社群越向自己內聚,越封閉的意識反而會把所有人推離自己。

市場化步伐太慢

第二個差異是,國內的開源社群在市場化的步伐太慢了。真正大規模在國內推行開源產品的領域恰恰是大家產生誤解的 “國產化市場”。在中國黨政軍領域已經有很多試點在執行。但是很多試點依然是課題性質的,課題性質的概念就是大家對一些核心專案進行分析研究,進行很多原型研究。政府的課題研究經費在原型研究完成以後就發放課題經費,結果就是很多課題完成以後,經費一收就沒有下文了。從原型到實際使用過程中更加龐大的問題沒有解決,更別說做出來解決市場問題和使用者問題。

大多數課題型專案只是買了一個紙上談兵的方案。大家一起花了很多時間,只是把錢花在了評估上面。真正的市場化專案,有真正解決國產化實際使用中的問題的專案?有,但是鮮有。

為什麼?因為大部分廠商雖然口頭上喊的是大力推行國產化,為國家解決問題。但是實際呢?有困難的領域都不想攻堅,都想讓別的廠商上,自己撿現成的成果。當前業內大部分不做實事的廠商太多了,很多困擾生態建設的關鍵技術點沒人攻克,永遠都在抱怨“雞生蛋,蛋生雞”的問題。

針對市場實際使用問題而進行的市場化步伐太慢是第二個重大差距,國家投入錢很多,理論上只要做了很多努力就會有國產化甚至達到整個中國開源的推動,但是相比國家的投入來說,整個生態裡面的廠商的市場化步伐都太慢太慢。

核心技術落後國外

第三個差異性, 就是核心技術依然落後於整個開源社群最新的技術。

  • 在核心領域, 已經有國內阿里、華為、魅族等廠商都做了長足的研究和貢獻
  • 在桌面系統領域, 深度科技已經完全掌握了桌面環境以及應用生態構建的核心技術
  • 在實時作業系統領域, 國內的RT-Thread 的實時作業系統技術都非常先進
  • 還有很多開源領域, 國內的很多廠商都已經有了相當深入的研究

雖然國內各個領域,國內廠商都在各自領域做到深入研究甚至完全掌握和超越相同領域的競爭開源專案,但是從整個開源社群的發展和中國的廣度和深度來看,中國開源社群,不論從廣度和深度都還遠遠達不到活躍或者大大領先其他國家的開源社群發展水平。

現在中國在開源社群已經跨過了一窮二白的時代,很多頂尖的開源專案都有中國人蔘與甚至主導的,中國的開源社群現在處於一個星星之火的時代,大部分為了商業化的企業或者有開源情節的開源英雄在默默的為開源世界貢獻自己的力量。

我認為中國的開源社群應該保持一個 “踏踏實實做貢獻” 的開源行為藝術,不要浪費時間和任何人去爭論嘴上所謂的快感,踏踏實實寫出讓世界驚歎的程式碼和作品就是最好的進步和迴應。

不遵守開源原則

在深度科技這麼多年的創業過程中,我看到幾種現象不但讓我感到是核心技術落後,甚至是連基本的開源原則都不遵守:

  • 國外的月亮永遠都是圓的,徹底崇洋媚外,很多開發者認為既然開源社群起源於國外,不論國內的開發者和企業做了任何努力,哪怕已經在區域性領先全世界了,他們依然認為只有國外的開源社群和開源企業才是正宗的上游,這些所謂的“高手”都是嘴炮,沒有什麼真才實學,自己不努力還大大阻礙國內真正在做貢獻的開發者和企業,真正做事情的時候看不到他們,任何開發者和企業一發布任何更新,用都不用就開始噴,大大的打擊了國內開源奮鬥者們的熱情。
  • 無恥的抄襲:國內很多廠商直接把開源專案的原始碼名字改一下, 直接刪除原作者的版權資訊後就說是自己原創的,完全不遵守保留原作者名字和版權資訊這種最基本的開源原則。
  • 自吹自擂而不自知:天天開會都說自己要發揚兩彈一星的精神,在很短時間內超越 Google, Apple, Microsoft 這些全世界頂尖的軟體大廠,每次聽到這些我都狂吐,Google, Apple, Microsoft 聚集全世界最聰明的開發人員和科學家,不論從開發人員的質量還是人數都不如別人的情況下,還不踏踏實實的做事情,真是牛皮吹到天上了, 這種言論不是某個開發者和愛好者,而是拿著國家錢的國產化廠商。
  • 競底操作:簡單來說,就是國內廠商為了減少投入,長期保持自己的軟體包版本是老舊的,功能和改進都不做,甚至給政府領導反饋的是,這就是我們國內的水平,大家都一樣,你們看怎麼辦吧?只知道要錢,但是不做實事,甚至都不自吹自擂,這是我至今看到最讓我詫異的國內廠商的態度 如果不是深度科技在一直默默堅持,我從第三方開發者聽到這種拿著國家錢是這樣做事情時,我都會心生絕望。

開源社群氛圍太小,無法靠文化和環境傳承

中國的開源社群有幾個重要的根據地:

  • SHLUG:上海Linux使用者組,這是我在中國見過的不論從參與者數量、知識深度和持續討論等方面都是頂級的Linux根據地,每週四在上海的咖啡廳,一群牛人聚在一起討論Linux相關的各種技術問題, 每個月都會有一次深入的技術分享。
  • GZLUG: 廣州Linux使用者組裡面聚集了一大批中國南方的Linux技術高手, 都是非常務實和活躍的。
  • 中國科學技術大學: 這是國內Linux最活躍的大學, 沒有之一, 中科大的計算機老師本身就是 Linux 的活躍支持者, 加上濃厚的開源文化, 中科大每年都會培養大批Linux高手。
  • 西安郵電大學: 和中科大一樣, 因為有熱愛Linux的計算機老師和學術氛圍, 不斷培養出很多Linux高手, 在Linux核心研究方面造詣頗深。
  • 其他地方: 就我知道的, 比如北京航天航空大學, 中山大學, 華中科技大學很多大學都有非常不錯的老師或者學生組織在一直促進Linux在學校的不斷髮展。

從我這幾年的觀察來看, 中國的開源社群的主要差距在以下幾點:
1、開源線上和線下組織大部分都是單兵作戰, 真正保持開源文化和方向的根據地寥寥無幾, 導致大部分開源愛好者甚至技術高手都無法很好的交流認識, 甚至都沒法找到合適的工作, 而國外的開源社群更像是普通人與人之間的生活社群無縫衍生出來基於開源理念的社群。
2、大部分國內做的大型開源活動來說, 都偏向運營,過多強調活動日期、曝光度和標新立異, 一個活動一旦舉辦完宣傳以後就沒有下文了, 導致大量學生只是為了參加活動而參加活動, 真正引起興趣並最終沉澱下來的幾乎沒有, 因為真正的開源愛好者是不需要通過活動才能堅持, 這一點和過去本身就是開源愛好者相聚的活動非常不一樣, 特別是網際網路運營和踏踏實實的開源技術社群本質上來說很難相容, 網際網路運營強調的是各種網際網路時尚的打法, 而開源技術社群往往強調的是安靜的研究技術,達到一定程度積累, 靠興趣自然聚合在一起討論。
3、很多開源社群大會的舉辦方都不能理解開源, 導致最後很多開源社群的會議都變成了賣門票、傳遞雞湯文和發廣告的, 真正對開源社群有影響力的真知灼見太少。 不說國外, 就拿臺灣每年舉辦的 COSCUP 都要比國內的開源社群活動更接地氣一點。

開源開發者分散, 開源根據地少, 直接導致了國內的開源社群氛圍不能像文化那樣進行傳承, 本質上是教育和社會經濟發展的問題, 但現在確實是一個比較無奈的現狀。

測試體系不夠完善, 測試缺乏標準和無用功太多

在測試方面, 如果只是說社群的測試, 國內開源社群和國外開源社群在這方面沒有差別:“大家都沒有測試”!
大部分個人開源開發者開發的測試方式就是倆:目測和只要能夠啟動就算測試過了
所以只是個人開發者開發的軟體一般來說都是功能不錯, 測試沒做, 質量不好。

從國產化的方面, 特別是定製測試標準的機構, 在我看來還存在幾個問題:
1、缺乏對功能和使用者體驗的最低測試要求, 現在的大部分測試都還僅僅限於Unix命令列和LSB的介面測試, 我不是說 Unix 和 LSB 標準化測試不重要, 而是Unix和LSB的標準化測試本來就是必須要過的, 但是如果僅僅只有這些, 在我個人觀點看, 就是走過場。因為不論國產化的哪個專案都要面對終端使用者, 特別是桌面作業系統及其應用, 如果只測試 Unix 和 LSB 的標準化測試, 使用者拿到最終產品根本無法用, 就算過了標準化測試最終產品難用, 還是一堆使用者吐槽。
2、國產化標準的角度問題需要調整,我看到的很多測試用例完全是為了測試而測試, 比如某個很少用的後臺程式專門寫一個指令碼去把程式搞掛, 然後說廠商的產品有問題。測試的服務物件最終是讓產品在它的使用場景中, 把使用者會用到的功能給高強度的測試一遍, 而不是針對那些使用者從來都不會接觸到牛角尖問題上進行暴力測試。 這樣做會導致兩個問題: 一我們把大量的測試精力花在使用者根本不會遇到的問題上, 二很多廠商為了過測試, 甚至都會寫一些對應的指令碼讓這些看著非常奇怪的測試用例可以通過。 特別是第二條, 我個人都覺得哭笑不得。
3、測試組合爆炸, 國內從作業系統、資料庫、中介軟體到應用軟體等等很多廠商, 每個行業都不下3家, 導致廠商多了以後測試的組合爆炸無法控制, 最後導致只要有一家廠商有變動, 就會重新測試, 最後整體測試周期太長。
4、沒有發揮使用者的優勢: 測試方向和測試標準定好以後, 很多功能性的, 特別是互動體驗的問題, 要讓使用者對測試的結果給予認可。 因為很多關於互動細節和功能性的東西, 只有最終使用的使用者才知道什麼是好用並且適合他們的, 如果我們把所有的軟體的功能性測試都放到測試標準定製機構, 先不論龐大的工作量, 就說裡面各種軟體的專業知識之繁多,幾乎不可能由一個機構完全掌握 , 最終結果就是吃力不討好。
5、測試流程的標準化和縱深防禦測試: 國產化是要求整個產業都要全部用國內廠商開發的, 每個軟體, 特別是像作業系統這種產品, 最容易出現迴歸性測試問題, 前一週測試還是好的, 關閉測試以後過幾周又出現了。因為只要產品還在活躍開發週期, 就非常容易出現bug反覆的問題, 導致單一產品的測試工作量和時間大大增加。

測試的問題, 在我看來上面幾個最嚴重和混亂, 我會在後面講一下解決方案。

我們的優勢

從開源社群的發源文化、廣度和深度各個方面, 中國的開源社群還在全面落後時期, 一方面是我們的計算機起步就晚, 加上東方文化和經濟發展都還不成熟, 我們的開源社群現在依然還是在起步階段。

就和任何事情一樣, 用別人的辦法永遠無法超越, 只有發展出自己獨特的優勢才能做好自己以至於最後贏得別人的尊重。

在我看來, 中國的開源社群在以下幾個方面有我們獨特的優勢:

人口多, 市場大到足夠容納超大變革

第一個在我看來是最重要的, 中國有足夠多的人口, 只要有足夠多的人, 就會有足夠大的市場。而且中國的人口和市場都是世界頂級的, 這麼多的人口可以給任何領域的產品充分發展的空間和機會, 特別是像Linux開源社群這種拼生態環境的行業。

歐洲很多國家的開源技術和開源文化都是頂級的, 世界上很多開源開發者和黑客都分佈於歐洲各國, 但是歐洲的國家很多人口都很少, 即使一個國家全部用一個作業系統,也對作業系統的全球市場份額沒多大影響

而中國這樣的人口環境下, 可以只考慮一個地域的使用者需求, 就足夠支援起一個作業系統級別的生態和養活像作業系統一樣龐大的團隊。

開源社群是全球化協作最為活躍和壯觀的人類行為藝術, 為什麼我們不能像 RedHat 那樣做全球化市場?
1、Linux作業系統特別是桌面作業系統以及相關的軟硬體生態還不能和微軟在產品功能和質量上進行抗衡, 要不 RedHat 今天就不僅僅是在伺服器作業系統上獲得成功了。
2、中國的文化和語言是全球化市場的重要障礙, 東方文化和西方文化存在巨大差異, 本質上開源文化就是一種西方文化, 坦誠直接甚至破口大罵中成長, 而東方文化更是一種儒家文化的衍生, 文化限定了思考方式的不同, 特別是很多中國程式設計師再加上語言障礙更沒法和全球智商相同的程式設計師在同一起跑線上切磋。
3、全球化的市場成功是基於在本地化市場取得巨大成功, 才有更多資源去處理不同國家和區域的文化和使用習慣差異, 而目前來看, 中國國內連一家在國內市場取得巨大成功的開源企業都還沒有。

所以, 中國的人口多的優勢就是培育開源生態鏈的孵化地, 只要有使用者在用, 我們可以做出很多開源產品在這個孵化場中盡情的努力、成長並構建屬於開源技術的生態系統。

中國至古以來都有大國情節, 有全線打通的決心

第二個優勢, 我認為是中國本身的大國情節, 你可以認為是民族情節也好, 還是爭強好勝死活要面子也成。 中國的整體環境氛圍就是, 就要爭第一。

我個人的觀點在於, Linux作業系統, 不論消費者領域還是現在很火熱的國產化領域, 從產品功能、產品質量和軟硬體生態來說, 都和 Windows 相差甚遠。我們可以從愛好者、開發者和愛國者的角度說出千萬個理由支援Linux作業系統以及作業系統之上的應用軟體。

但是差距就是差距, 換個比方, 你再怎麼熱愛國產的東西, 如果國產的手機或者國產的汽車和國外的手機或汽車差距巨大, 你會用國產的手機和開國產汽車嗎?同樣的, 面臨不懂計算機的人來說, 他們會在產品存在巨大差距的情況下,用國產作業系統或者國產應用嗎?

反過來想, 在產品差距巨大的情況下, 怎麼改進這個問題呢?
怎麼讓學了十幾年英語的中國人能夠流利的說英語口語? 就是一個字: “用”

提高產品和說英語一樣, 要反覆用, 只有反覆的用才能發現更多問題, 才能在修復問題的過程中慢慢的追上來。

所以, 中國的大國情結就是用, 甚至強制用才是產品壯大的關鍵, 如果國人我們自己開發的開源產品, 自己都不用, 怎麼能說服別的國家能用? 怎麼能夠達到全球化?

我們更擅長做產品和互動體驗

第三個優勢, 我個人覺得中國的開發者和企業更擅長做互動體驗絕佳的產品, 而不僅僅只是頂尖的開源技術和個人作品。

縱觀現在頂尖的開源社群產品, 很多產品都是個人產品, 開發者根據自己的個人興趣愛好新增刪除功能, 從來沒有做介面和互動設計。包括各種產品的選項都是不同人堆砌出來的, 美曰自定義, 其實是根本沒有思考使用者在不同場景的使用痛點, 用最少的互動設計甚至什麼都不讓使用者操作就已經猜到使用者的意圖並解決痛點才是一個好產品應該追求的。

而國外開源社群, 90%以上的開發者心裡都沒有產品思維, 這也是為什麼開源社群這麼多開發者, 寫了這麼多軟體, 甚至同一型別的軟體還有很多個, 但是最後卻沒有 Windows 和 Mac 好用。 為什麼?

開源社群成功在於全球協作的開發模式, 只要有更多的人, 就能不斷的積累和發展壯大。 同時敗也敗在全球社群模式, 互動設計和產品管理完全不是一個群策群力和投票就能做好的, 互動設計和產品改進體現在一個思想統一的團隊朝著一個方向不斷的矯正, 最終形成一種統一的視覺和互動表達。 超過5個人以上就很難有思想統一, 而在全球的千萬開發者的情況下就更難得到一致的設計和產品觀念。 甚至開源軟體黑客那放蕩不羈的個人情懷很難贊同這種他們認為 “獨裁式” 的設計和產品理念。

在我看來, 開源社群的失敗不在於開發者和開發模式不夠好,非常好! 而在於缺乏足夠多的設計師和足夠多重視產品和互動體驗細節的開發者。

而反觀中國, 從開源社群鄙視的騰訊, 到各種網際網路公司, 互動設計都是放在頭等地位。 重視互動體驗的開發者隨地都可以抓一大把。 這是中國社群相對於國外開源社群而言最明顯的優勢, 我們可以比國外開發者和企業更快的做出更多使用者喜愛的產品, 來更快的達到商業化的成功, 才有更大的能量和資源去推動國內的開源社群發展。

中國工程師更勤奮, 工作效率高

前兩天看到一個微博:

“全球最頂尖的兩個私人太空公司SpaceX和Blue Origin都在開發可重複使用的火箭技術, SpaceX目前領先,它的火箭從地球軌道成功返回著陸在漂浮在海洋上的無人駁船上,而Blue Origin則率先在去年演示了火箭從地球亞軌道返回陸地。從地球軌道上返回的技術難度要大於亞軌道。兩家公司採用的方法反應了兩位創始人Elon Musk和 Jeff Bezos不同的作風。Blue Origin的計劃要穩健的多,其時間跨越長達數十年。但成立時間晚於Blue Origin的SpaceX不同,用Bezos的一位密友的話說,這家公司拼命的跑,工作壓力把人都要壓垮了。SpaceX 公關經理Phil Larson對此迴應說,你不能靠一週40小時將人類變成跨星球種族。Blue Origin的僱員大約600人,而SpaceX則超過了5000人。SpaceX已經從NASA獲得了多筆價值數十億美元的合同,而Blue Origin則與SpaceX的競爭對手ULA達成協議為對方開發和供應下一代火箭引擎。他們都在創造歷史。”

我很認可Phil Larson說的: "你不能靠一週40小時將人類變成跨星球種族。"

中國開源社群在全方位落後於國外開源社群, 我們不能靠像 Google 那樣悠閒的工作的同時還能在技術、產品和開源文化上達到國外的同等水平。

唯一的可能就是不但要做好產品和互動體驗, 而且要做的遠遠比國外的同行做的更快, 更快, 才有可能, 而這一點恰恰是我們的優勢, 中國的工程師不但聰明, 還有遠超大多數國家工程師的勤奮。就像這幾年深度不斷的在桌面環境上發力, 國外的使用者常常詫異我們能夠在保證產品質量的同時做的那麼快, 快的他們都認為我們是政府資助的企業, 我們只是在比別人認真的時候比別人更勤奮。

資源更集中, 更容易集中火力攻克難點

每當我坐著高鐵在各地穿梭的時候, 在體驗高速列車的便利時, 我經常感嘆: 這要在國外, 挖這麼多路, 造這麼多橋, 那得要多久啊?

很多人說中國的政治制度不適合做生態,但是現在中國的開源社群還不處於生態發展中, 而是在生態引爆點之前的攻堅階段, 只有把各個方面的核心難題和生態障礙克服掉才能迎來生態引爆點, 才會面臨真正的生態建設問題。

而中國的政治制度, 恰恰是最容易攻克這些難題的, 就像高鐵一樣, 中國集中資源的做法更容易集中火力攻克生態的難點,不僅僅要趕超頂尖產品 (Windows 和 Mac) 的功能和質量, 還需要跑的更快, 更集中火力更堅決的達到工程極限。

怎麼突出重圍?

前面說了這麼多, 現在開始說解決方案了:

政府做好裁判, 提供市場, 放權給私有企業去競爭

其實推動現在中國開源發展最大的反而是中國政府本身, 因為中國開源的發展首先是要有使用者, 中國在全國範圍內颳得一股國產化的風, 已經大大的在推動了國產化在軟硬體生態的大力發展。

政府只要做好裁判的工作,把國產化的生態的重點下放給私有企業去競爭發展, 保證政府市場的採購量, 私有企業就會從難做轉變成為攻克核心技術,從艱難前行到站穩腳跟。

其實中國的開源產業的發展本身就是兩個問題, 好的產品和使用者量, 前一點是靠各個企業競爭不斷改進產品讓使用者滿意, 後一點恰恰是政府能保證的, 在產品還在發展過程中強制使用, 從用開始, 發現問題解決問題, 最後直到產品成熟達到完全替換的目標。

如果要大力發展國產化和開源技術產業的發展, 還必須要動作快, 使用者的不習慣和產品功能缺陷要在很短時間內得到企業的快速響應。 而政府主要做好裁判, 保證市場的使用決心, 剩下的交給企業和市場競爭就可以了。

在現在的發展階段, 企業需要的不是類似核高基這樣的課題專案, 企業需要的不是政府直接根據課題發放專案資金, 這樣做出來, 還只是停留在課題階段, 如果不能變成使用者最終用的產品, 市場起不來, 錢就白花了。 企業需要的是市場使用政策和公平的競爭機會, 只要有使用者堅持用, 企業就會想盡一切辦法把產品和技術向前不斷推進以滿足使用者需求, 只要政府保證公平的競爭機制和評判標準, 靠使用者和市場就會自然競爭出優秀的產品出來。

過去十年之所以國內開源技術和產品沒有發展起來的重要原因就是兩個:
1、花了大量的錢在課題驗證上了, 但是真正落到使用者看得見和摸得著的產品幾乎沒有, 導致行業真正努力的企業和社會對政府以及專案的公信力極大下降, 特別是包括漢芯和麒麟作業系統抄襲FreeBSD等專案的曝光, 極大的挫傷了大家對國產化的信心。
2、沒有把裁判的水端平, 很多地方, 國有企業既做運動員又做裁判, 導致在政策資訊和專案上, 那些靠產品說話的公司並沒有機會展示和公平競爭, 最後導致真正有資源的國有企業缺因為缺乏私有企業的競爭, 最後進步緩慢。 我本人不反對國有企業來做很多專案, 但是如果競爭機制本身就不公平, 就會導致整個市場缺乏活力, 如果行業內的廠商大家不是靠產品, 靠使用者的滿意度來驅動, 最終傷害的是使用者對國產產品的信任和信心, 如果一個行業的使用者對某個產品在最基本的信念上失去信心, 無異於拿短期的專案資金換來整個行業幾十年的寒冬和一蹶不振。

持續推進生態基礎建設, 逼近引爆點

中國開源生態的本質上不是缺乏在作業系統, 在晶片或者軟硬體解決方案的單點突破, 缺乏的是整個生態的應用建設, 缺乏的是市場引爆點之前的基本可用的基礎建設。

什麼是基礎生態?以桌面作業系統為例, 一個普通使用者或者政府使用者基礎生態包括:
1、作業系統穩定易用, 在現在網際網路時代, 不論功能完整度、視覺和互動體驗最少要和 iPhone 和 Android 達到同一水平, 否則使用者每天用著好用的手機系統, 卻要忍受難用的桌面作業系統, 使用者不論從產品還是心理上都很難接受, 沒有什麼比使用者抗拒這個因素更難推廣的了。
2、基本的應用每一類最少有一款, 比如:輸入法、線上音樂、線上視訊、詞典翻譯、下載工具、遊戲平臺、閱讀器、炒股軟體、瀏覽器、聊天軟體、專業軟體。 深度科技雖然聯合搜狗和網易聯合開發了搜狗輸入法、網易有道詞典、網易雲音樂等行業流行軟體, 但是相對於基礎生態應用來說, 還有很多軟體需要聯合國內的軟體廠商聯合開發, 只有每一類軟體都有一款軟體能夠讓使用者用, 使用者才有可能徹底切換作業系統。 如果政府能夠發揮政策號召力, 號召每個廠商聯合國內作業系統廠商開發更多的應用, 就會極大的加速基礎應用的開發。
3、行業軟硬體: 比如OA要從IE架構遷移到Html5/JS通用技術架構, 行業軟體要開發Linux版本, 硬體廠商要開發Linux版驅動。 只有行業所需要的辦公系統、應用軟體和硬體驅動都滿足以後, 才能滿足政企市場的基本切換, 如果都連基本的使用都做不到, 就不用談更為廣泛的推廣。

蘋果作業系統在中國只有不到 2% 的佔有率, 國內大部分的軟體廠商都會開發蘋果版的軟硬體。 國內政企使用者在整個國內的使用者量佔有在 10%, 只要上面說的基本系統、基礎應用和行業軟硬體生態都滿足了, 國內作業系統以及相關軟硬體生態能夠達到 10% 的完全替換。

一個持續發展的市場只要超過 3% 的市場引爆點, 就會連鎖反應的促進整個行業的井噴發展, 所以持續推動生態基礎建設, 逼近生態引爆點是中國開源產業是否能夠最終成功的關鍵。

攻克關鍵技術難點, 降低開源行業准入門檻, 培育更多上下游廠商

中國開源產業的發展, 政策性的引導和生態建設達到引爆點並不容易, 因為不論在基礎系統, 基礎應用和行業軟硬體方面都存在很多技術難點需要集中資源進行攻克, 只有通過在政府指引下, 軟硬體廠商付出巨大的努力才能攻克。

而攻克的技術難點的目標不僅僅是把市場推送到引爆點, 市場推送到引爆點以後更重要的目標降低開源行業准入門檻, 只有准入門檻足夠低才能讓更多廠商能夠加入這個行業, 不斷通過各種垂直行業的專業廠商的擴充套件, 最終的市場才能從市場引爆點發展成為以國內廠商為主的更廣闊市場。

所以攻克技術難點本身不僅僅是達到市場引爆點, 更是為了將來更大的市場做前期的準備以降低整個行業的准入門檻。

以作業系統為例, 國內開源產業的門檻在幾個方面:
1、硬體相容性標準化, 需要政府推動一箇中立的硬體相容性認證機構, 對國內外的硬體, 特別是顯示卡、網路卡、音效卡、印表機、掃描器等日常所需的硬體裝置進行集中測試和認證, 只有和Linux作業系統相容性認證過的硬體才能進行採購。 硬體相容性不但可以標準化整個行業的硬體准入門檻, 還能大大減少測試標準機構和軟體廠商的相容測試工作量, 只有硬體相容性通過標準化才能徹底提高整體產品的穩定性, 從而大大減少了整個產品的生產和測試周期。
2、建立辦公系統的遷移標準, 針對Linux作業系統和瀏覽器的開放標準建立一套適用於所有作業系統的統一開發介面, 只有介面穩定以後, 不論作業系統、Office廠商還是OA開發商才能更快的並行開發。 只有建立辦公系統的統一遷移標準, 才能保證既不破壞現有OA辦公系統的功能和廠商利益的情況下, 無縫遷移到Linux平臺上。 只有越來越多的OA廠商在Linux平臺不斷進行已有產品的遷移, 整個政企市場才能在不影響正常運作的情況下切換到國產平臺上。
3、促進現有廠商開發出行業解決方案: 現在國產化平臺有很多軟硬體廠商已經發展出自己的產品, 包括作業系統、Office、OA、PDF等各自的拳頭產品, 但是使用者最終需要的不是單一的產品, 他們需要的是完全國產化的整體解決方案, 只有從硬體、作業系統到應用軟體整個使用者依賴的功能形成一整套解決方案才能徹底解決使用者無縫遷移的問題, 而現在國內的廠商, 特別是作業系統和辦公軟體的基礎功能和可用性達到以後, 更應該聯合更多的軟硬體廠商配合, 針對各個不同的行業開發出真實可行的整體解決方案。

只要硬體相容性標準化、辦公系統遷移標準化、行業解決方案三個關鍵問題解決以後, 就會把整個開源行業整個准入門檻拉低90%以上, 這樣很多不是靠過硬技術, 但是對特定行業有非常專業的理解和服務質量的廠商就可以基於現有的開源技術和行業解決方案對現有行業的快速發展和替換。

中國開源產業的發展只有在培育越來越多的上下游廠商, 整個生態才會越發展越健壯, 最終達到蓬勃發展的願景。

建立完整的測試體系, 提高產品質量

關於測試體系, 可以從以下幾個方面去改進:
1、基於使用者反饋來建立測試用例: 提出對於終端使用者關心的功能和使用者體驗做出最低要求, 這裡面的使用者不是隻生產產品的廠商, 而是使用廠商產品的終端使用者。 可以由測試標準定製機構和最終的使用者建立一個有效的溝通和反饋平臺, 通過國產產品在終端使用者的功能和質量反饋來建立測試用例。 基於使用者反饋的測試用例建立是最為直接也最為有說服力的測試用例, 因為這些測試用例是用來保障終端使用者所需功能和質量的, 才能從源頭上解決廠商不服測試標準定製機構、多方面對問題反覆推諉和測試完成以後使用者不滿意的棘手問題。 深度作業系統已經建立了一套基於使用者論壇、社交軟體、Bugzilla等多平臺的反饋機制, 通過不斷的基於使用者的實時反饋來建立的測試用例不但保證了測試方向的準確性, 還極大的提升了使用者的滿意程度和信任程度, 通過這種開發、反饋和改進的敏捷溝通, 不但解決了很多使用者的問題, 更是超出使用者期望滿意程度。 所以基於使用者反饋建立的測試用例是打通廠商、測評機構和使用者滿意正向迴圈的最佳方式。
2、測評機構引入產品經理: 測試用例的關鍵在於一定要覆蓋使用者的使用場景和功能, 很多測評機構並沒有從使用者的角度去構建測試用例, 導致很多測試用例只是為了測試程式的邊界問題而構建的極限測試, 反而一些終端使用者關心的基本功能和常用功能沒有被覆蓋到, 導致測試用例呈現出違反使用者期望的倒三角測試用例分佈。 而引入產品經理的關鍵在於, 產品經理有更強的同理心能夠以普通使用者的視角去看待功能測試的問題, 能夠幫助測試人員在保障基本測試和邊界測試的情況下, 增加更多的普通使用者最關心的產品功能和互動體驗測試,保證測試用例的完備效能夠覆蓋到基本功能、邊界測試和產品互動體驗等各個方面。
3、建立上下游測試介面: 以上游提供介面, 下游做適配的測試方式對各個廠商的相互測試進行分而治之, 通過測試介面的保證廠商測試只用盯著上游, 而不用像原來一樣要盯上下游, 還要盯同行, 最後導致各家的測試標準完全不一樣, 甚至產生大量的測試組合爆炸。 不但造成測評機構的疲憊協調和整體的測試混亂, 最後還無法交付給使用者穩定的產品。 而介面測試, 每個廠商只用為下游廠商負責, 不用盯其他方面,因為有多家下游廠商的監督, 每個廠商及時為了減少自己的工作量都會主動建立統一的測試標準,反過來因為每個廠商同時只用盯上游廠商, 不會存在產品功能以修改就會影響上下游廠商的迴歸性測試混亂。
4、建立測試標準版本的概念和資訊溝通平臺:因為國產化的上下游廠商都在快速發展中, 甚至半年機會開發出大量的新功能和介面標準出來, 如果測試標準不進行更新就會導致測試標準老化甚至最後變成擺設的結果。 但是測試標準也不能實時更新, 否則引入的只是更多的混亂。 建議測試標準機構建立版本機制, 每半年更新一次, 廠商統一更新標準的同時保證老產品在老的標準上依然可以執行。 這樣整個行業在保證功能滿足使用者的需求情況下, 可以進行定期的標準化升級工作, 同時還不會因為更換標準而導致的產品混亂。 標準版本的建立和更新, 包括測試介面的更新, 都要建立在一個公開的平臺上, 特別是上游的更新要公平的讓所有下游廠商都實時知曉, 做到一對多溝通, 而不是多對多上下游廠商反覆溝通。
5、利用開源工具建立縱深測試體系:以深度科技為例, 作業系統的測試用例成千上萬, 如果都用人工測試很難保證測試的效率和完整性, 而且還會因為測試人員對測試用例的理解不夠產生不同測試人員不同測試結果的問題。 深度科技利用現有的開源工具, 包括Bugzilla, Testlink, OpenQA, Jenkins, Gerrit等建立一整套自動化測試平臺, 大部分的測試用例都可以自動化、標準化、透明化的進行統一測試和展示, 任何問題的追蹤甚至包括測試用例和測試計劃都可以非常明確的執行, 極大的減少人工測試和缺乏工具平臺輔助的低效和不一致問題。國產化本身就是一個超級大工程, 測試更是如此, 如果只有單一平臺的測試, 特別是任何測試都有程式碼階段、軟體打包階段、整合測試不同階段組成, 單一測試平臺已經無法保證軟硬體產品測試的一步到位。 只有通過多個工具平臺來建立縱深防禦的測試體系, 才能通過一層層過濾保證軟硬體產品的bug無處逃逸, 比如 Gerrit 通過程式碼審查保證程式碼階段因為編寫不規範和思考不周引入的bug, OpenQA加上Jenkins能夠解決很多產品整合以後的迴歸性測試, 再加上一些自動化測試指令碼就能把測試人員從簡單測試工作中解放出來, 讓人工測試能夠測試一些更復雜的功能和問題。

像全民創業那樣普及開源基本理念

最近幾年, 在中國颳起一股非常強勁的創業風。 特別是大學生, 如果出門不說自己是創業者, 不給別人遞上 CXO 的名片都不好意思。

除開網際網路環境和資本強力支援以外, 我覺得最大的就是政府在全國對創業進行普及式的宣傳起到了巨大的作用。如果哪一天李克強總理像對待創業一樣在全國傳播開源理念, 我想那將是對開源社群和開源事業極大的促進。

在宣傳開源的時候同時要在開源的基本理念上需要進行必要普及和矯正:

  • 普通使用者: 開源不僅是一種更好的開發模式, 開源不僅僅聯絡到國家安全和民族產業。 開源更是一種精神傳遞和文化薰陶, 開源精神, 分享的精神和自由的精神不斷的激勵更多有夢想的人去追尋本應該屬於自己的那一份踏實和幸福。
  • 開發者: 開源是學習和進步的最快手段, 而不僅僅是抄程式碼, 學習和理解開原始碼後面的思想, 包括對開源軟體進行貢獻不單單是一種榮耀, 更是對自己研發修養和視野的一種提升。
  • 企業: 最節省成本的方法就是對開源軟體吸收借鑑後把改動和補丁作為貢獻反饋到上游, 如果長時間不把程式碼合併到上游, 時間越長, 單獨維護程式碼的成本越高, 甚至有一天會全盤崩潰或落後於更先進的技術。
  • 政府: 自主可控不等於所有的程式碼都要自己寫, 而且隨著網際網路時代越來越開放的方式, 永遠都不會有每行程式碼都自己寫的那一天, 更不要封閉自己脫離開源社群。 只有充分擁抱開源社群, 多做貢獻, 多多掌握核心技術的能力才是自主可控的目標, 否則全世界都在利用開源社群在進步, 而我們只能像鴕鳥埋在沙堆裡面, 短期的自我欺騙。

為什麼國外的開源發展的那麼好? 不僅是國外的經濟和科學技術發展的更早更好, 國外的人更喜歡享受生活。 當人處於物質富足以後, 都會追求精神上的快樂, 我認識的很多開源技術精英不但技術過人, 他們真的特別享受開原始碼分享經驗的過程, 而且能力越強的人越謙遜。 對開源掌握的開發者遠遠要比那些閉源軟體的開發者更加踏實和平和。

開源不僅僅是技術和產品上的進步, 我相信有一天如果國內大多數產品都是開源開發者開發的, 整個國內的創業氛圍、精神包容性和基礎科學的研究都會發展的更快。 因為開源給予開發者的是真真的內心平靜和讓開發者能夠正確的認識自我和自己追尋的東西, 而這些對於每個熱愛開源的普通人都會產生一樣的撼動。 ;)

版權處罰從電影音樂延伸到軟體領域

很多國內的人都是鄙視盜版的, 但是在5~10年前, 我相信很多人都在用盜版, 其實那個時代用盜版並不可恥, 因為那是的國內經濟發展和社會文化, 包括微軟本身的策略來說都是鼓勵盜版的, 如果一個人不用盜版反而會被稱為傻子。

但是盜版傷害的不僅僅是產品開發商, 而是整個軟體行業。

以電影和音樂舉例子, PC時代大家都是下載盜版電影和盜版音樂, 但是隨著國民經濟水平提高和整個大環境大家尊重版權。 現在幾乎每個人看電影和聽音樂都會採用付費的方式來享用, 隨著正版化的推動, 整個電影和音樂行業的創造者們會有更多的收入, 他們也會持久的創造出更多人喜歡的作品。

開源軟體也是一樣, 很多人認為開源軟體就是免費的。其實開源軟體包括原始碼都是開放的, 每個人都可以構建, 軟體本身沒有必要收費, 更多的應該是開源軟體之上的服務和整體解決方案應該收費。

就像現在的法律會處罰盜版電影和音樂傳播者, 我們也應該對盜版的閉源軟體傳播者進行處罰。只有對閉源軟體的盜版進行處罰, 大家才能體會開源軟體的成本優勢和長期優勢, 如果閉源軟體盜版不打擊, 大家永遠都不會自由或認真的去比較閉源軟體和開源軟體各自的優勢, 開源軟體也沒有長期發展空間。

所以對軟體領域的盜版現象進行處罰會極大的從側面推動開源軟體和開源社群的發展。

在大學裡建立開源根據地, 以3年為週期不斷為行業輸入高階人才

開源軟體因為其強大的開發者社群, 不論是程式碼質量, 程式碼示例還是文件來說都是非常豐富, 而且因為開源軟體程式碼的開放性, 很多問題的解決方案都是從原始碼級別進行闡述, 比如我們經常會在 github 和 stackoverflow 兩個平臺看到很多頂尖的開源社群開發者對技術原理進行原始碼級別的講解, 而這些在閉源軟體行業都是非常難以想象的。

正是因為開源社群的開放性, 對開源技術的學習和掌握並不像傳統軟體工程那樣需要耗費那麼長時間, 一個有電腦的大學生自學, 可以在一個月內入門, 半年內開始開發,兩年之內進入中等開發工程師的水平。不論從學習速度還是掌握技能的廣度和深度都要遠遠大於 Windows 平臺的開發成長速度。

我建議很多大學, 以專案和興趣為導向開發很多真實的軟體專案, 通過開發工程中不斷學習開源社群的郵件列表和IRC, 包括閱讀大量的技術文獻的方式來轉變傳統的大學軟體工程教育。 電腦科學特別是開源軟體的學習最好的三個方式就是:
1、實踐
2、實踐
3、實踐

從我這幾年的招聘歷史看, 很多二流大學和工程學院在大三就展示出驚人的天賦和能力, 如果國內的大學, 特別是教計算機專業的學校能夠改變教育方式, 以更快的開源社群的方式教學生, 每三年都會給社群以及企業輸送大量高階開發人才, 甚至是獨立創業者。

從本質上, 開源的社群發展的根源就在教育方面, 只有教育上去以後才能從根本上讓中國開源社群得到實際發展。

中國開源成功路線圖

最後, 很多人都在想中國開源社群的路線圖是啥?

沒有什麼成功路線圖, 在你成功之前你永遠不知道成功應該怎麼做。
在我看來唯有遵循開源規則, 踏踏實實多做貢獻, 少喊口號才是成功建立開源社群的唯一方法。

深度科技已經在開源上堅持了12年, 我們甚至還要堅持5~10年才能推動國內開源生態達到引爆點的那一天, 生態的建設是所有創業型別中最難的一種, 不過我相信我們能夠取得最後的勝利, 開源萬歲, 自由軟體萬歲!

   

相關文章