在本文上篇《局與破局》中我提出的觀點是儘快用同類開源軟體替代Matlab,並建立機制讓中國市場需求與開源軟體運動結合發展,這是破解美國對中國科技制裁招數的關鍵。那什麼是開源軟體?跟開源軟體運動結合能給中國軟體業帶來什麼?依靠開源軟體是否就是放棄自主創新?怎樣結合才能加快開源基礎軟體的成熟與完善?在本篇中,我們就來討論這些問題。
中篇:勢與順勢。本篇分為四個部分。
一、世道變了:開源軟體運動出現的背景
二、世道又變回來了:開源軟體運動引發的新趨勢
三、順應世界開源運動大勢,中國軟體業需要積極有為
四、禁用Matlab,是個好機會,切莫錯失了
一、世道變了:開源軟體運動出現的背景
開源軟體這個名詞相信大家這些年應該都聽說過,它是相對於我們平常接觸的商業軟體(或稱為閉源軟體)提出的概念。開源軟體一般可以免費獲取,並且會開放軟體的原始碼,允許使用者和開發者進行修改,以眾人的力量共同促進軟體發展。
想到開源軟體,往往會聯想到一群網路俠客,因受不了商業公司高價牟利的行為,用無私的精神向世人奉獻智慧產品。也就是說,一般印象裡是先有商業軟體,再有開源軟體。但如果我告訴你,世界上最早的軟體都是開源軟體,開源軟體才是軟體業的主流正統,而商業軟體不過是後來崛起的支流旁門,你會不會覺得顛覆了自己的認知?這個事我們要好好捋捋,對於後面我們的對策非常重要。
如是我聞,在計算機最早出現的時候,都是佔地很大的大型機,使用者都是軟體開發者或研究人員,使用者往往自己開發軟體並相互傳播原始碼進行交流。最開始的計算機都是國家計劃或者科學研究需要的產物,到1949年才出現了第一臺商業計算機BINAC。商業計算機公司在銷售硬體時會免費提供配套軟體,並且延續傳統附帶軟體的原始碼。軟體問題可以由使用者自行解決,這樣能減輕企業的售後服務壓力。使用者往往會對軟體進行修改與擴充套件來滿足一些特定的需求。使用相同硬體的計算機科研人員或愛好者會組成小團體,分享技術心得和各自編寫、修改的軟體。
在這樣的背景下產生了許多對日後影響深遠的軟體,其中最重要的是作業系統軟體。而作業系統中最成功的一款是由貝爾實驗室的兩位研究員肯·湯普森(Ken Thompson,1943年2月4日—)和丹尼斯·裡奇(Dennis Ritchie,1941年9月9日—2011年10月12日,同時還是C語言之父)在1969年編寫的Unix作業系統。Unix因其簡單實用、可移植性好而廣受歡迎,許多圈內同行都索要軟體原始碼。Unix很快成為當時作業系統的範例,各大學和研究機構也開始對其進行了各種各樣的改進和擴充套件。Unix逐漸成為作業系統事實上的標準。
1975年,湯普森獲得了帶薪休假一年的機會,他選擇到加州大學伯克利分校訪學。湯普森的到來引發了伯克利的轟動,因為Unix早已在校內產生巨大影響,師生們組成了興趣小組專門研究並改進這個系統。湯普森為伯克利帶來Unix最新的第6版的原始碼,這成了日後BSD(Berkeley Software Distribution,伯克利軟體發行)Unix的母版。
同年,計算機行業發生了一個歷史性的轉變,市場上出現了基於英特爾8080晶片的微型計算機Altair 8800。
Altair 8800是計算機歷史上一款神級產品。它本身基本沒有任何實用功能,卻取得了巨大的成功,共賣出6萬多臺。它的成功激起了市場的狂熱,不斷有廠家推出類似產品,從此形成了一個嶄新的產業——面向個人使用者的微型計算機。由於計算機使用者群體的增加和使用範圍的擴大,硬體附帶的軟體無法滿足需求,一批專門開發通用軟體的商業公司應運而生。其中以比爾·蓋茨的微軟公司最為成功。微軟起家就是為Altair 8800編寫BASIC語言編譯器軟體,最後發展出MS-DOS和Windows作業系統。商業軟體公司依靠對軟體收費來獲取利潤,但軟體收費與提供原始碼存在矛盾。因為如果提供原始碼,就無法阻止使用者或者競爭對手複製或改寫軟體程式碼。越來越多商業軟體公司開始只提供目的碼(也就是可執行檔案)。這種新的風潮隨著1981年計算機行業的霸主IBM推出其微機產品PC 5150,並在1983年執行“僅目的碼”策略後形成市場慣例,幾乎所有的商業軟體公司都不再提供軟體原始碼。
這種潮流一下點醒了貝爾實驗室的母公司AT&T:喲嚯,軟體還能拿來賺錢吶,我怎麼沒想到?
於是1979年的Unix 7成了最後一個廣泛釋出的研究型Unix版本,之後開始禁止大學使用Unix的原始碼,也不允許在教學中講授。1981年,AT&T基於版本7開發了Unix System Ⅲ的第一個版本,這是一個僅供出售的商業版本,不過依然提供原始碼。又於1983年釋出了Unix System V Release 1,從這一版本開始不再提供原始碼。
同時,AT&T不斷出手打壓其它版本的Unix,特別是BSD,直至1992年對伯克利發起了訴訟。雖然這場官司在1994年以和解收場,但造成的影響非常惡劣,伯克利Unix興趣小組都不得不解散。Unix在軟體行業內人心盡失。在把市場攪得一片狼藉之後,AT&T這位大哥把Unix賣給了Novell公司,事了拂衣去,深藏功與名。大哥走好,大哥不送!
Unix的商業化是一個標誌,軟體行業田園詩一般的美好時代從此結束了。世風日下,人心不古。面對時代的變化,不同的人做出不同的選擇。有的人在感慨之餘,決定追逐潮流投入商海開起了自己的軟體公司。而有的理想主義者則決心捍衛軟體業的傳統。畢業於哈佛大學曾在麻省理工人工智慧實驗室工作的理查德·馬修·斯托曼(Richard Matthew Stallman,其簡稱RMS更為知名,1953年03月16日—)就是理想主義者最傑出的代表。1985年,RMS發表了著名的GNU(GNU's Not Unix,這是技術宅們喜歡的一種遞迴縮寫方式。他還把RMS解釋為RMS Means Stallman)宣言,號召建立開源的Unix替代系統和軟體,由此拉開了轟轟烈烈的自由軟體(Free Software)運動的帷幕。“自由”一詞是對軟體開發傳統的概括,同時也表明參與者精神上的追求。同年10月RMS創立了自由軟體基金會(Free Software Foundation)來為GNU計劃提供技術、法律以及資金支援。
年輕時的RMS與他開創的GNU軟體
經過6年的努力,到1991年,GNU計劃需要的許多工具軟體(如編譯器集合Gcc、命令列介面Bash、文字編輯器Emacs)已經基本完成,但是還缺少最重要的一項:作業系統的核心GNU Hurd。這是由於該核心採用了超前的微核心設計,導致專案複雜性大大增加而遲遲未能完工。但是GNU Hurd的缺位卻成就了另外一種作業系統的崛起。
1991年,芬蘭赫爾辛基大學計算機系大二的學生林納斯·託瓦茲(Linus Benedict Torvalds,1969年12月28日—)購買了一臺當時流行的英特爾386 PC機。因為不喜歡預裝的MS-DOS作業系統,他換成了Minix(一種相容Unix,主要用於教學的開源作業系統)。但Minix作為一個教學系統並不完善,許多功能無法滿足他的需要,而商業版的Unix則貴得離譜。於是他萌發了自己做一個作業系統的想法。參考Minix並受Unix思想的啟發,他在暑假結束時的9月17日,拿出了一個0.01版的核心,但該版本還無法正常執行。不過1個月後他就寫出了0.02版,在這一版上就能承載各種GNU工具軟體了。
Linus和Linux
林納斯將他自己稱作“一個學生的作品”的核心以Linux的名稱放到已經開始普及的網際網路上,並加入GNU計劃開放原始碼允許任何人蔘與修改。這一專案立即吸引來了世界各地眾多程式設計師的關注。各種對Bug的反饋、修改意見、漏洞修復與增加新功能的程式碼通過網路向他湧來。受到鼓舞的林納斯不斷更新該作業系統的版本。在匯聚了世界各地優秀程式設計師的智慧後,Linux以極快地速度成長成熟,1.0版本於1994年3月14日正式釋出。當人們將GNU計劃的工具軟體與Linux核心結合起來時,一個偉大的作業系統GNU/Linux誕生了。
Linux的橫空出世對於自由軟體運動具有非常重大的意義,主要體現在:
1. 驗證了自由軟體運動道路的可行性。自由軟體運動作為對軟體行業上古遺風的堅持,天然佔據道德的制高點。但是在軟體行業已經完全商業化的現實之下,自由軟體是否有真正的發展空間?自由軟體運動能否吸引足夠的力量投身其中,從而產生有強大影響的基礎性軟體?這些疑問的答案在Linux成功之後已經不需多言。
2. 使自由軟體擁有了堅實的發展基礎。在RMS發起自由軟體運動後,雖然成果不斷,但一直沒有搞定最基礎的作業系統。自由軟體還是寄生在各商業平臺之上,成了對商業平臺的補充與點綴。只有屬於自由軟體的作業系統出現,獨立的軟體生態才能形成與發展。而Linux出現之後自由軟體生態迅速形成規模,使得那些打算看不愛錢的傻子笑話的人們大跌眼鏡,不得不正視這股力量越來越強的影響力。
3. 開創了一種全新的軟體開發模式。GNU Hurd長期難產除了技術路線過於超前造成開發難度巨大之外,還有一個原因是其採用的開發模式與商業軟體其實是相同的。也就是由一些資深大仙組成的核心團隊來對軟體進行總體控制,依靠明確的目標與清晰的計劃按部就班開展。這種模式被稱為“大教堂模式”,因為這個過程像建造一座大教堂一樣安靜和有序。在這種模式下的開源更多地是起到蒐集使用者意見的作用。在應用於作業系統這種複雜度超高的軟體開發時,如果沒有穩定的團隊以及大量的資金投入,這種模式會出現嚴重的效率問題。而林納斯在啟動Linux專案時,自覺地把自己定位為一個行業小白(雖然後來證明他是個天才)。他並沒有要把專案引向何方的高瞻遠矚,只是執行一個簡單的策略:每週釋出更新,並在接下來幾天內根據反饋進行彙總修改。這個過程就是通過網際網路合作的大量志願者的隨意之作,但是工作效果卻出奇地好。原來需要專業團隊長時間反覆測試才能發現的Bug,在志願者千萬雙眼睛的監督下被迅速捉出,軟體以意想不到的速度進行迭代。這種開發模式最大地激發出了開源與網際網路社群的潛力,使得開源不再是軟體分享的方式,而成為軟體存在與發展的理由。僅僅經過不到3年,Linux在穩定性和可靠性上就已經和很多商業版Unix不相上下,效率之高令人咋舌。Linux的開發模式被總結為“集市模式”。因為它像是一個亂糟糟的大集市,各種工作都像一個個攤位一樣在以自己的方式同時往前推進,然而卻亂中有序構成了總體的高效運轉。兩種開發模式的對比被埃裡克·雷蒙德(Eric Raymond,1957年12月4日—)寫成了《大教堂和集市》(The Cathedral and the Bazaar)一書,該書也成了自由軟體運動的經典著作。
前有RMS義旗高舉、篳路藍縷,後有Linux新基鼎定、建極綏猷,讓理想不死的軟體業者心有慼慼、雲集響應,自由軟體運動風雲際會勢如卷席,不斷改寫軟體發展的歷史程序。在這個過程中,因為“自由軟體”(Free Software)中的“Free”會讓人認為等同於免費,甚至產生品質低劣的印象,不利於進一步擴大影響尤其是吸引商業公司參與,雷蒙德等人建議用“開源”(Open Source)作為運動新的口號,並且於1998年創立了開源促進會(Open Source Initiative,OSI)。應該說這種考慮是從實際出發,有其積極作用。但是後來圍繞這兩個名詞出現了一些爭執,運動參與者也出現了分化(對於中中國人而言,這種分化並不陌生。根本原因就是在一些理想主義者看來,這個運動開始“變修”了)。但在我看來自由軟體與開源軟體本質上是一樣的,它們所指向的軟體集合也基本相同,不管是叫艾麗絲還是叫二丫頭,都是同一個銀,我們不用太過於執著這種名詞之爭。
二、世道又變回來了:開源軟體運動引發的新趨勢
Linux現世之後,開源軟體運動翻開了新的篇章。越來越多優秀程式設計師投身其中,重量級基礎軟體也接連出現。比如,1995年出現的開源Web伺服器Apache,它與Linux的組合執行穩定、高效,比商業軟體更可靠、更靈活、更具擴充套件性,更重要的是極大省錢!很快,執行Apache的Linux機器成為網路伺服器的首選,不斷擴大市場份額,時至今日已經有約60%的網站執行在Apache之上。開源軟體不再是市場的配角,完全可以稱霸天下。
面對開源軟體的來勢洶洶,一些商業軟體公司感受到威脅,試圖力挽狂瀾。衝在最前頭的是軟體業大哥:微軟。史蒂夫·鮑爾默在2000年接替蓋茨擔任微軟CEO後,直接將Linux稱之為“惡性腫瘤”,並在執掌微軟期間用盡各種手段打壓Linux。一段時間網上黑Linux安全性與侵犯專利的公關稿,背後往往浮現微軟的影子。而另一些商業公司卻在思考,與開源運動結合是否能給自己帶來切實的好處。
最早採取行動的是網景(Netscape)公司,而這家公司之所以投向開源運動起因還是微軟。網景公司曾經是矽谷神話,它於1994年釋出了世界上第一款民用網路瀏覽器軟體網景導航者(Netscape Navigator),一度佔據瀏覽器市場90%的份額。但後來微軟採取將IE瀏覽器與Windows作業系統繫結銷售的策略,網景的日子一落千丈。作為絕地反擊措施,1998年網景公司啟動Mozilla計劃將導航者瀏覽器作為自由軟體免費提供,其原始碼也全部公開。雖然Mozilla計劃沒能拯救網景,但它開了商業軟體轉向開源運動的先河。Mozilla計劃後來成立基金會獨立發展,產生了包括火狐瀏覽器、火狐OS移動作業系統、雷鳥電子郵件客戶端等成功的開源產品。
除了網景這樣因為鬥爭失敗轉向開源的商業公司,更多的公司在開源運動中發現了商機。有的從事開源軟體的諮詢顧問服務,並在安裝、售後、培訓等環節中獲取費用。有的推出Linux發行版進行營利。這是因為Linux實際是一個核心而非完整的作業系統,它缺少許多正常使用中必要的軟體,而Linux發行版就是將Linux核心、GNU軟體包、工具集和文件、桌面環境等打包在一起的一個完整作業系統。我們熟悉的發行版有紅帽(Red Hat)、Ubuntu、Debian,國內也推出了紅旗Linux、Deepin等。使用者付費購買發行版可以獲得定製服務與技術支援。還有的公司提供面向開源軟體的開發介面或服務,以吸納開源社群使用者使用自家產品。如甲骨文的企業級資料庫向Linux開放介面,IBM與開源Apache伺服器軟體團隊合作開發大型伺服器應用平臺WebSphere,戴爾提供預裝Linux系統的個人計算機。
這一趨勢演化到最終階段則是商業公司開始基於開源軟體開發新的軟體或者直接發起新的開源專案。其中最成功的案例是Google推出的智慧手機作業系統:安卓。Google是一個智慧手機市場的後來者。當它準備下場時,場子裡已經有蘋果、微軟、諾基亞、黑莓等諸多前輩玩家。論實力、論經驗、論創新,它都排不上第一。Google的策略就是徹底擁抱開源:基於Linux核心開發安卓,嚴格按照開源運動要求開放原始碼,並從Linux開發過程中獲得靈感,依靠開源社群吸引全世界關注並集萬眾之力快速迭代軟體版本。2007年1月蘋果推出第一代iPhone,11月Google釋出第一版安卓,2008年10月釋出第一部Android智慧手機,2011年第一季度,Android在全球的市場份額首次超過諾基亞的塞班系統,躍居全球第一。在開源力量霸氣側漏之下,即使是智慧手機新局的開闢者蘋果也毫無應戰之力,微軟更是可憐最後不得不放棄自家Windows Phone作業系統,諾基亞、黑莓現在安在焉?開源在商業競爭中顯露獠牙,展現出不可戰勝的威力。
深受啟發的各大公司以無比的熱情投身開源。他們或者採用開源軟體組合進行開發、搭建服務。開源語言PHP、Java、Python,開源資料庫MySQL等越來越受歡迎。或者收購開源軟體增強自身競爭力。2008年SUN公司以10億美元收購開源資料庫MySQL,而2009年Oracle又以74億美元收購了SUN。越來越多的商業公司也主動發起開源專案。站在微軟身後抵抗開源運動的戰友日漸稀少!
大勢如此,無力迴天,微軟該何去何從?誰也沒想到這位大哥來了個180度大轉身,完全不怕閃著腰,邁著妖嬈的步子走向開源。大哥大哥他來了,他帶著禮物走來了!2014年薩提亞·納德拉成為微軟第三任CEO,在他的帶領下老大哥做出許多改變。其中一項就是改變對開源運動的態度,喊出“微軟愛Linux”的口號。口號雖然肉麻了點,但行動還是挺真誠的:當年微軟就在GitHub(面向開源及私有軟體專案的託管平臺,其版本管理工具Git由Linux創始人林納斯於2005年開發)建立官方賬號,開源.NET框架。2015年,微軟釋出了開源開發者工具Visual Studio Code,現在是GitHub最受歡迎的專案之一。2016年,微軟成為GitHub專案貢獻第一的組織。2018年10月,微軟加入開源專利聯盟OIN(Open Invention Network)並向其開放了6萬項專利……當然大哥也知道光行動是不夠,最展現誠意的還是要——2018年10月27日,微軟宣佈以75億美元收購GitHub,並承諾GitHub保持獨立運營。好,到位了,真讓人感動!
阻擋開源運動的最後一個堡壘陣前起義、和平解放,開源成為世界軟體行業不可阻擋的大勢!而它之所以能夠實現這樣逆天改命的偉大壯舉,一是因為網際網路時代可以讓世界各地軟體開發人員協同合作,以極高效率創造出超越傳統模式品質的軟體產品;二是開源運動的機制設計在保持軟體開源、開放的同時,並不天然排斥商業利益,使得開源運動的參與者可以獲得可觀收入從而更有動力持續投入。
而在開源運動的維護機制中,許可證制度是很重要的組成部分。RMS為開源軟體設計了最早的許可證。他考慮到如果有人利用開原始碼牟利卻不給社群提供任何回饋,會使開源軟體最終走向枯竭。為了防止這種情況發生,他認真鑽研法律挖空心思搞出了一份通用公共許可證(General Public License,GPL)。與強調私有、限制他人任意修改和傳播的Copyright(著作權)不同,在GPL協議下的開發者權益被概括為Copyleft(著佐權)。其中條款明確了開發者許可使用者對程式碼進行復制、修改、傳播和銷售獲利,前提是這樣做的人必須保持原有的版權資訊並公佈修改後的全部原始碼,以保證智慧與思想能夠一直自由傳遞。也就是說,如果某個軟體使用了以GPL協議釋出的原始碼的任何一部分,那麼該軟體就繼承了GPL協議,必須隨應用程式一起釋出原始碼以回饋社群。這種條款被稱為“病毒條款”、“傳染條款”或“喪屍條款”,意思是隻要沾上它的軟體都會自動變成開源軟體。
GPL在開源軟體發展過程中發揮了重要作用,但隨著運動的參與者成分變複雜,不同層面的利益訴求開始提出。GPL被認為要求過於嚴格。於是參照GPL的方式,多種許可證被提出並分別被後來的開源軟體所採納。這些許可證從最嚴格到最寬鬆依次為:GPL、MPL(Mozilla Public License)、LGPL(Lesser GPL)、Apache、BSD、MIT。這其中最寬鬆的許可證已經不再要求使用其原始碼的軟體繼續開源,只需宣告原始碼出處即可。這些許可證帶來了更多靈活性,使用者可以根據實際需要採用不同許可證下的原始碼。這其實也是一個“解放思想”的過程,極大地消除了商業公司加入開源運動的顧慮,使得軟體業在開放原始碼方面最終達成了整體的一致。
三、順應世界開源運動大勢,中國軟體業需要積極有為
中國軟體行業與開源運動早在上世紀90年代中期就已經有了交集,但一直髮展緩慢。從2005年起,世界開源運動出現發展的高潮,國內的大型IT企業如阿里巴巴、騰訊、百度和華為等紛紛加入,推出許多開源專案。同時,隨著國內開源社群的興起,個人主持或者參與的開源軟體也逐漸多了起來。據統計,當前已經有超過一萬個由中國人發起的開源軟體專案。
在這些中中國產開源軟體中,出現了Vue.js(構建使用者介面的漸進式框架)、ECharts(基於JavaScript的資料視覺化圖表庫)、Apache Dubbo(分散式RPC服務框架)、Deepin(Linux發行版)、Oceanbase(分散式資料庫)等許多成功專案。但其中絕大多數專案都集中在工具與應用層面,基礎軟體很少。而且它們的開發與使用範圍都侷限在國內,能將影響輻射到全世界的開源軟體非常少,說明我們與世界開源主流環境嚴重脫節。這種現狀亟需改變。
在當前中美科技競爭加劇的背景下,中國軟體業與開源運動結合的必要性與重要性尤其凸顯。構建在美國商業軟體基礎上的所有應用成果都存在被美國政府下令禁用的可能,不及時調整將陷入極大的被動。而開源軟體卻可以給中國科技發展提供更穩固的基礎。也有人擔心美國政府一聲令下,就能禁止來自美國的開源軟體被中國使用。這樣的擔憂其實是沒有必要的。開源軟體出現的目的就是為了分享並傳遞人類的智慧產品,它只有參與者沒有所有者。任何人或組織發起某個開源專案後,這個專案就成為全世界共有的公共產品,發起者沒有權利阻止任何人以符合許可證要求的方式使用該專案的軟體或原始碼。這也是為什麼在美國禁令之下,微軟能禁止華為使用Windows,MathWorks能禁止哈工大與哈工程使用Matlab,而Google只能禁止華為使用GMS(谷歌移動服務),只能排除華為參加它主導的安卓技術活動,卻不能阻止華為繼續使用安卓。
美國政府一味蠻幹,是因為它自認為擁有“力量”卻又錯誤地理解了“力量”。它認為自己在科技方面的強大無人可以挑戰,當今世界的科技成果都是構建在美國提供的基礎之上,它有能力構建這個基礎當然有能力決定其它國家科技的生死。它沒有明白的是,它提供的科技產品與技術基礎被世界接受,是因為滿足了世界發展的需要。是世界選擇了它,而不是它決定了世界。它沒有意識到的是,因為過度的商業化與人性的貪婪早已讓世界人民不滿。開源軟體運動的出現與成功,是因為理想主義者的堅持是因為關鍵人物的偉大創舉,更是因為世界做出了新的選擇。世界人民的意志已經不允許讓軟體成為某個國家或某些組織可以任意操縱的工具,軟體特別是基礎性的軟體正在向全世界公共產品方向演進。美國的蠻橫霸道只會引起世界人民的反感與警惕,大大加快這一歷史程序。歷史的海洋正在蓄積能量,準備掀起驚天的巨浪。我們將親眼見證一個逆歷史潮流而動的強權,如何失去人心失去力量的過程。我們也將同時見證在被巨浪蕩滌汙穢之後,人類在全世界共有的嶄新的基礎上重新構建智慧產品的偉大工程。
在這個歷史大勢中,中國應該找準自己的定位,積極有為。首先,要明白世界並不需要一個新霸主。美國逆勢而動,會加快失去對基礎性軟體產品的控制權,但這並不是取而代之的機會。中國現在既沒有全面取代的能力,也沒有這個必要。我們只需順應大勢,早日促成世界公有基礎軟體的建立就是勝利:能把美國踢下來就行,沒必要非得自己上位。其次,在整個大勢進行過程中,中國軟體業不能坐等,更不能只索取不貢獻。老大哥已經累了,我們應該多想辦法讓他早日體面。
這個過程中,中國科技的基礎必定經歷一次相當徹底的更換。被動等待,不在基礎研究上下工夫,我們將失去一次重要的機會。結合開源運動,不是要放棄自主創新,而是在新的基礎上加強自主創新,積極參與、積極貢獻,才能培養出中國基礎軟體的優秀人才,才能緊緊跟上下一次科技進步的步伐,獲得下一輪技術發展更多的主導權。這個過程我們已經在通訊行業走過一遍了,華為的崛起給了我們充分的信心,中國軟體行業應該見賢思齊勇於擔當。最後,中國現在世界開源軟體運動中缺少話語權,這個不是光靠喊口號能夠得來的,必須要靠實幹才能得到。但我們也要明白,中國開源軟體圈與世界主流存在隔閡,許多重要領域已經被歐美開源軟體擠得沒有地方下腳。要想出頭,必須集中力量,發揮中國的市場優勢,找幾個領域單點突破,拿出中中國人的基礎軟體方案,用我們的優勢做大影響力,打破中國軟體只有中中國人蔘與的小圈子融入世界大環境,贏得世界開源運動的認可與尊重。
我們迫切需要一個機會。
四、禁用Matlab,是個好機會,切莫錯失了
好在這樣的機會美國已經送上門來了。
要選準突破口本來是一件困難的事。因為改變正在使用的基礎軟體不僅是一個使用習慣的問題,還涉及已經投入的大量人力與資金,善財難捨,背後需要利益相關方經過好一番博弈才能確定。但是美國的行動已經幫我們快速做出了選擇,就是它了:都不讓用了,還有什麼瓶瓶罐罐捨不得的。事實上,Matlab所在的科學計算軟體領域也正好是一個非常合適的突破口。在上篇中我分析過Matlab並沒有太強技術壁壘,依靠現有積累實現突破不難。更重要的是,中國市場已足夠支撐一個新的科學計算基礎軟體的發展。
在世界開源運動整體大發展大繁榮的背景下,科學計算領域開源軟體的日子卻過得並不太好。雖然已經發展多年,像Scilab都有二十多年的歷史,深孚眾望卻一直進展緩慢。缺乏大規模應用是主要原因。更要命的是,缺錢。像Octave、Spyder都遇到過經費問題,Scicoslab與Scicos已經處於停止更新狀態。現狀其實是比較淒涼的。如果能與中國力量中國市場結合,將給它們帶來質的飛躍!
一方面是兵強馬壯急需登頂機會的新興力量,另一方面是有大義名分與多年積累卻衰敗凋敝的開源科學計算軟體。這種情況讓我想起了一段歷史:那就是東漢末年,朝廷經歷董卓之亂,又被李傕、郭汜洗劫,狼狽不堪。獻帝發詔要各地勤王,諸侯豪強們卻視而不見。只有曹操發現他的價值,抓住機會把這塊神主牌給供了起來,才有了日後的基業。在歷史的關鍵時刻,眼光與策略都非常重要。
軟體被禁,利益遭受損失;被動應戰,並非源自稱霸野心;匡扶漢室,不是,扶持開源,而非另搞一套。在中國實力的支撐下,順應世界軟體開源、開放的大勢,從為全人類做貢獻的角度出發推動基礎科技產品更替,世界人民又有什麼理由不歡迎呢?這個突破口、這條路切實可行。
在具體操作上,我們要參照開源軟體發展的經驗,發揮好關鍵人與關鍵組織的作用。歷史表明大學與科研機構是軟體業的創新基地,伯克利、麻省理工、貝爾實驗室都為美國軟體發展做出過開創性貢獻。這次美國政府打擊的物件集中在這兩處,為的就是要扼殺我們的科技創新能力。我們必須要讓他們的目的落空,把大學與科研機構的創新潛力進一步激發出來,把中國軟體業的下一代領軍人物鍛煉出來。
在專案推進過程中,我們還需要借鑑開源運動行之有效的做法並結合中國實際,以新機制來促進開源軟體的發展。有效做法可以總結為兩條:一是以基金會來為開源軟體進行資金等多方面支援,提供第一推力;二是藉助強大社群力量,擴大影響集思廣益快速調整迭代。這些做法都可以結合到科學計算替代軟體的開發過程,並用中國市場來進行放大,增強療效。
試想一下,可以採取以下步驟:
第一步,聯合國內受禁令影響的學校與機構,其它學校自願參與,把原來買美系平臺軟體的錢拿出來成立一個基金會。以這個基金會為主力機構推動開源基礎科研軟體專案的開發與推廣。
第二步,由基金會組織公開招標軟體核心開發團隊。應該鼓勵學校師生與科研機構成員挑頭組隊或參與開發。不同的隊伍可以選擇不同的技術路線,可以加入現有的國外開源科學計算軟體專案,也可以綜合幾家之長啟動新專案。各團隊除了承擔開發任務,還要設計好商業化路徑,為專案長期發展做足準備。
第三步,在日常教學實踐與科研中將開源軟體用起來。要將國內理工院校與科研機構組成一個超大型超活躍的開源社群,積極宣傳或採取一定措施推動在日常學習工作中使用開源軟體。因為這已經是一項重要且緊急的任務,相信我們的科技工作者有覺悟有意願參與其中。只有大家真正把軟體用起來,將發現的問題反饋出來,或更進一步參與程式碼維護,替代軟體的發展成熟將是指日可待。我們的科研人員與師生不應只滿足於用軟體,還應積極參與寫軟體,特別是鑽研底層技術。老師可以在教學中結合基礎軟體開發中出現的問題,給學生布置作業或課題。如果這種研究能夠蔚然成風,時勢造英雄,我們有理由期待出現中國的林納斯!
只要搞定了Matlab,形成了行之有效的經驗與做法,再逐個把其餘的基礎工具軟體進行替代就容易多了。這個過程不僅可以將收費軟體換成免費軟體,為今後節省大批開支。更重要的是培養鍛鍊隊伍,讓中國軟體研發從集中在應用科技層面逐漸下沉,形成自己的基礎研究人才積累,為下一輪科技革命做好儲備。還可以加強與世界開源運動的交流,增強中國軟體影響力與號召力,讓中國的產品與服務加快走向世界。
進行基礎軟體的開源替代是我們必須要走的道路,負重前行路阻且長,我們要做好長期的準備。但我們應當堅信,只要我們能順應世界新技術趨勢的發展要求,符合世界開源、開放文化的前進方向,保護世界最廣大人民分享智慧產品的根本利益,就必將取得勝利。
未來中國軟體業的發展,必將對我們的創新創造能力提出更高要求。應該虛心承認,現在中國的創新能力與影響力比歐美還有很大差距,這從當今世界最受歡迎開源專案仍由歐美主導就可得知。歐美在基礎軟體方面的創新為什麼能夠源源不斷?他們的創新之道是什麼?我們可以學習哪些經驗?我將在本文的下篇《道與法道》中再講。