禁用Matlab,美國又給我們創造一次機會?(上)破局_風聞
跟陶叔一起学-IT专家-听陶叔聊各种知识与学习感受,解决一些问题2020-06-28 18:38
歡迎關注我的微信號:跟陶叔學編程
6月初,傳出哈工大與哈工程被禁止使用美國MathWorks公司的科學計算工具軟件Matlab。對於這個事件,有人認為美國對中國科技力量正在斷糧,對中國科技發展將造成重大阻礙。有人對我國工業軟件的現狀痛心疾首,呼籲加大投入扭轉局面。有人認為國內現有科研教育體制限制了創新的產生,導致我們產生不了有影響力的工業軟件……對這個事件我們該如何看待?我們如何應對中美在高科技領域較量的新局面?我們如何才能真正擺脱在工業軟件落後捱打的被動地位?經過整理與思考後我寫了這個文章,共分為三篇:上篇是局與破局,分析在Matlab被禁後當前所處的局勢,並提供快速破局的思路與辦法。中篇是勢與順勢,分析世界開源軟件發展的潮流與大勢,以及我國如何順應大勢並借勢發展自己。下篇是道與法道,分析美國工業軟件優勢地位是從何而來,什麼是其創新與發展之道,以及我們應該怎樣學習、吸收並超越。
上篇:局與破局。本篇共分為四部分:
一、Matlab被禁,美帝制裁出新招
二、Matlab是什麼?它重要嗎?
三、那些可以替代Matlab的軟件
四、認清當前局勢,堅定決心破局
一、Matlab被禁,美帝制裁出新招
6月6日,榮登美國政府“實體清單”的哈爾濱工業大學與哈爾濱工程大學學生在使用正版Matlab軟件時,突然彈出了反激活通知,點擊之後當天還能使用,僅僅一天之後,再次啓動MATLAB就已顯示授權許可無效。
聯繫軟件開發方MathWorks公司,對方表示這就是因為美國政府制裁導致的,作為一家“守法”的美國公司,他們也很無奈。很明顯,美國政府對中國的科技封鎖又出新花樣。
要知道,這兩所大學已經購買了正版軟件授權,説不讓用就不讓用了,所謂的契約精神哪呢?是不是應該先把購買軟件的費用退了並賠償損失誒?對此,MathWorks公司並沒有表示。不過,有一點是明確的,如果這兩所大學的師生以後使用Matlab軟件生成的結果發表論文,將被該公司視為侵權,並將面臨被起訴的風險!
這個新聞一出,輿論又興起一波討論熱潮。有人擔心在美國持續出招之下,中國高科技力量是否能夠撐住。有人認為Matlab這類工業軟件完全掐住了科研機構的命脈,我們沒有多少機會擺脱被動局面。還有人認為長期以來, 國內對美國在科技領域的全面領先估計不足,沒有認真準備,導致落入陷阱反抗無力……對此,我的態度還是要冷靜,遇到煩事不要慌,先掏出手機發個朋友圈……不是,先分析當前我們所處的局面是什麼?再找到破局的辦法。
二、Matlab是什麼?它重要嗎?
Matlab是一種科學計算語言和交互式集成開發環境(IDE)軟件,由Matlab和Simulink兩大部分組成。具有科學計算、數學繪圖、系統仿真、數據分析、算法開發等強大功能。自1984年由美國Mathworks公司推向市場以來,歷經三十幾年的競爭和發展,現已成為國際上應用最廣泛的科技工具軟件,在學術研究與工業設計等領域佔有近乎壟斷的市場地位。在國內外大學的理工類專業,Matlab已經成為師生必須掌握的一項基本技能。目前世界上有180 多個國家的超過三百萬工程師和科學家在使用 Matlab。
上面這段描述對於已經領略Matlab魅力的人來説心領神會,但是對於沒有接觸過的人而言則有點不知所謂。如果對這個軟件都不瞭解,卻空談如何應對,這就有點搞笑了。所以我先揀幾個基礎的功能説明一下,讓大家儘快熟悉情況。
1. 科學計算
科學計算相信大家都熟悉,Windows自帶的計算器就有科學模式,但那對於學術研究與工業設計來説太小兒科了。如果要解一個線性方程組
或者求一個不定積分
你是不是會突然感覺菊花一緊呢?但使用Matlab計算卻是So easy。對第一個求解線性方程組,在Matlab中只要輸入三行代碼:
A=[2,3,-1;8,2,3;45,3,9];
B=[2;4;23];
C=inv(A)*B
馬上就可以得出結果:
C =
0.5531
0.2051
-0.2784
這裏的三行數分別是x、y、z的值。如果大家線性代數沒有忘光的話,可以看出這是用矩陣來求解線性方程組,並且是使用逆矩陣法。在Matlab中使用inv函數就可以獲得逆矩陣。
矩陣計算是Matlab的靈魂,其設計哲學就是:“萬物皆矩陣”。Matlab這個名稱就是Matrix Laboratory(矩陣實驗室)的簡化。在Matlab中所有參與運算的數據都是矩陣。因為矩陣的理論和方法是現代科學計算的重要基礎,諸如數值分析、優化理論、微分方程、概率統計、控制論、力學、電子學、網絡等學科領域都與矩陣理論有着密切的聯繫,甚至在經濟管理、金融、保險、社會科學等領域,矩陣理論和方法也有着十分重要的應用。大家還記得有個科幻電影《黑客帝國》英文原名就叫“The Matrix”,也就是矩陣。影片描述了未來人類被超級計算機“矩陣”支配的世界。從矩陣計算的重要性而言,這部電影其實也不算言過其實。而Matlab將大量對矩陣的操作封裝成函數,使矩陣的運算極大簡化,這是Matlab被廣泛使用的最根本的原因。
電影《黑客帝國》海報
前面這個例子是進行科學計算中的數值計算,是求出數學問題的數值精確解或近似解。科學計算還有一種是符號計算,又稱計算機代數,就是用計算機推導數學公式,如對表達式進行因式分解、化簡、微分、積分、解代數方程、求解常微分方程等。Matlab在符號計算領域也佔有着重要地位,雖然是購買的符號計算語言Maple的專利,但也是很厲害了。像上面舉例的求不定積分就是一種符號計算。在Matlab中求不定積分也只需要三行代碼:
syms x t;
f=5*x*t/(1+x^2);
int(f,t)
結果是
ans =
(5*t^2*x)/(2*(x^2 + 1))
其中第一行用syms語句定義了2個符號變量,第二行定義了需要求積分的函數,最後一行使用int函數即可求出不定積分。
2. 數學繪圖
當我們使用Excel等辦公軟件時就有繪圖功能,表現形式還非常豐富。但是它們的繪圖是基於給定的數據來繪製,這叫做數據可視化。而Matlab的強大之處是只需要給定一個數學函數就可以進行二維圖或三維圖的繪製,這對於科研與工業設計提供了極大的便利。比如説,使用下面三條語句:
x=0:0.1:6;
y=sin(x);
plot(x,y);
這就在x軸0到6的範圍內,以0.1的步長繪製出了一個正弦圖形。
除了二維函數製圖,三維製圖也很方便。比如表示機械系統振動衰退情況的函數
x,y代表在時間為 t 時的位置。我們可以獲得一系列(x,y)的值,並畫出(x,y)的二維圖像,但在這樣的圖上時間的影響就得不到體現。
如果我們改用三維繪圖,把 t 的值也畫出來,那麼給研究者的直觀印象就完全不一樣了。很簡單,四條語句就可以:
t = 0:0.1:10;
x = exp(-0.2*t) .* cos(2*t);
y = exp(-0.2*t) .* sin(2*t);
plot3(x,y,t);
這就在 t 軸0到10的範圍內,以0.1的步長繪製出了處於不同時間的物體位置的三維圖像。
除了前面的繪圖,根據不同的需要,Matlab可以繪製許多更復雜也更直觀的圖形,如這樣的
這樣的
還有這樣的
通過這些舉例,相信你會回憶起以前看到過的很多示例圖像可能就是用Matlab來繪製的。
3. 系統仿真
進行大型的系統設計,在投入物力生產之前需要知道系統設計是否合理,所以用計算機進行仿真模擬是一個必須的環節。Matlab的Simulink工具箱具備完善豐富的仿真功能,它提供了一個可用於實現各種動態系統(包括連續系統、離散系統和混合系統)的建模、分析和仿真的集成環境。
Simulink是基於模塊來實現其仿真功能。模塊可以表示物理組件、小型系統或函數,而輸入/輸出關係就是區別各模塊的特徵。簡單理解每個模塊就是一個數據運算單元,對輸入數據進行運算處理後轉換成不同的數據進行輸出。Simulink根據實際需要預製了大量的模塊,它們按功能分屬於不同的模塊庫。例如,要對以常量倍數放大輸入的擴音器進行建模,可以使用Math Operations(數學運算)庫中的Gain(增益)模塊。該模塊以進入擴音器的聲波作為輸入,輸出則是放大後的同一聲波。
將多個模塊進行連接就構成了系統,能夠形成完整的功能。比如一個簡化的汽車運動過程:當踩下油門踏板時,汽車處於加速行進狀態;鬆開踏板後,汽車怠速並逐漸停下來。要創建這個簡單的系統,使用Pulse Generator(脈衝發生器,模擬踩一下鬆一下踏板的動作)、Gain(增益,模擬踩下踏板時獲得的加速度)、Second-Order Integrator(二階積分器,根據加速度分別計算出汽車行駛距離與即時速度)與Outport(輸出端口,選擇汽車行駛距離作為結果進行觀察)4種模塊進行連接即可。
在長度為10的時間內經過系統的仿真,可以查看汽車行駛距離形成的曲線。運行仿真後結果顯示為一條斜向上的線條。
這就是一個非常簡單的系統仿真過程。根據實際的需要增加或調整模塊就可以模擬更復雜的系統。除了豐富的預製模塊,Simulink還提供擴展功能,可以根據需要自定義模塊,這樣Simulink就能適應任何行業的系統仿真需要。
除了前面介紹的三大基礎功能,Matlab還可以承擔數字圖像處理、數字信號處理、管理與調度優化計算等眾多任務,幾乎可以覆蓋所有行業的科學計算需求。
Matlab功能強大、應用廣泛,主要是因為:以矩陣運算為基本運算方式,隨着矩陣理論與方法在各個產業的廣泛運用而成為大受歡迎的運算工具;Matlab語言與平台的開放性使得該軟件可以在實踐中不斷被使用者隨時進行改進和擴展,能快速滿足最新的使用需求;經過30多年的發展,積累了大量的函數與工具,Matlab現在已經擁有二千多個內部函數、超過一百種工具箱。這些積累基本已經能夠滿足工作中的任何需要。因此,Matlab被戲稱為“除了生孩子,什麼都可以幹”。
説了這麼多,把Matlab形容得強大無比,好像是給這個軟件做廣告似的,其實不是這樣。我們在面對Matlab這種壟斷性的軟件時,先要冷靜地承認它的強大,不然它不會達到如今的市場地位。再要了解它的強大體現在什麼地方,力量的來源是什麼?還要了解它的發展軌跡,知道它是如何發展起來的,其成功經驗是什麼。最後,要知道它有哪些缺陷,存在什麼機會可以追上並超越它。
通過前面的介紹我們大概瞭解到Matlab的作用與重要性,知道它確實很強大。但再強大的軟件,也是一點點發展起來的。Matlab的前身是由美國新墨西哥大學克里夫·莫勒爾(Cleve Moler)教授為主於1971年開發出的EISPACK(矩陣特徵系統軟件包)與1975年開發出的LINPACK(線性方程軟件包)兩個簡單的程序。1981年為了方便對這兩個程序的調用,莫勒爾又開發了Matlab作為語言的編譯器與運行環境,最初包括關鍵詞與函數總共只有71個。
1984年,莫勒爾教授的學生傑克·裏特(Jack Little)等人發現了Matlab隱藏的商業價值,組成了團隊進行了函數、工具箱和圖形化等功能的改造與擴充,推出了第一個商業化的版本。至此才走上了一條漫長的發展過程,最終成為科學計算軟件的行業霸主。
但是,Matlab並非沒有缺點。一是作為一個通用平台龐雜而難免疏漏。涉及的專業領域過多,內部工具、模塊大而全,造成體積臃腫,最新的2020a版本整體大小已經達到20多G。而且品控水平不一,很多庫的提示信息莫名其妙又長期得不到更新。Simulink中有些內容加了又刪,讓用户無所適從。二是作為商業軟件閉源且收費高昂。差不多所有重要的算法和框架,都是閉源的,並且是按照工具箱收費,每個基本都是上萬人民幣,一套常用工具箱組合下來需要幾十到上百萬。雖然針對學校與學生有優惠,但同樣是一筆不小的開支。三是作為一個集成計算平台對開發部署不友好。用Matlab編程形成的文件只能在Matlab環境中運行。如果要部署到其它機器上,需要與Matlab Runtime一起打包,其實就是在目標機器上安裝一個小型的Matlab,這樣的程序文件大小一般都會上G,而且運行體驗較差。這造成Matlab在工業級軟件開發上基本無所作為。而類似於Matlab解釋性腳本語言的開源語言Python後來居上,藉着人工智能的火熱,佔據了工業級矩陣計算軟件的半壁江山。四是作為一個擁有幾十年歷史的老軟件不夠與時俱進。隨着5G和工業互聯網的普及,並行計算與邊緣計算越來越多。而大規模並行計算一直是Matlab的短板。因為不能在ARM處理器上運行,Matlab基本放棄了大量使用ARM的移動端與邊緣計算設備。其龐大的體積也不利於在工控設備上部署。
Matlab從簡單的計算工具發展成巨無霸的集成平台,肉大身沉地佔據着行業的壟斷地位。但説到底它不過是一個工具軟件。許多人使用Matlab是因為它確實能解決許多問題,比較趁手,形成了使用習慣。許多同類軟件一直沒有機會,就是這種習慣力量影響太大,並不是因為存在真正的技術門檻。本來大家相安無事,貴點就貴點,體積大點就大點,這些都是可以忍受的。但突然有一天,Matlab説不能讓你用了,這就有點擺不正自己的位置了吧。
一個工具而已,工具是應需求而產生。如果某個工具不讓用了,需求就會消失嗎?需求只會刺激別的工具跳出來搶機會。這是因果關係,不可能倒置。有的人認為Matlab被禁,會給中國科技發展造成很大困難。這種看法顯然是錯的。在我看來,對於這次Matlab事件,我們短期可抵抗,中期可反攻,長期可逆轉。
三、那些可以替代Matlab的軟件
短期可抵抗是指用其它軟件來代替Matlab。除了Matlab,其它著名的科學計算類軟件還有Mathematica、Maple、SAS、SPSS和LabView等,但這些軟件都是商業軟件,而且基本都是美國公司的產品(Maple屬於加拿大公司),我們沒必要再掉入另一個坑裏。好在我們還有別的選擇:
1. Scilab
Scilab是由法國國家信息與自動化研究院(INRIA)推出的“開放源碼”科學工程計算軟件,第一個版本在1994年推出。Scilab 是“Scientific Laboratory"(科學實驗室)的簡化。與Matlab類似,Scilab可以很方便地實現各種矩陣運算與圖形繪製,能應用於科學計算、數學建模、信號處理、決策優化、線性/非線性控制等各個方面。它還提供可以滿足不同工程與科學需要的工具箱,例如Xcos、信號處理工具箱、圖與網絡工具箱等。就基本的功能而言,Matlab能完成的工作Scilab都可以實現。
同時,由於Scilab的語法與Matlab非常接近,熟悉Matlab編程的人很快就可以掌握Scilab的使用。Scilab還提供語言轉換函數自動將用Matlab語言編寫的程序翻譯為Scilab語言。
Scilab的Xcos工具箱類似Matlab的Simulink,同樣可以完成建模與系統仿真等任務,並且界面和使用也很類似。因此,Scilab是具備全面替代Matlab潛質的。
更重要的是,作為開放源碼的軟件,Scilab的安裝程序與源代碼都是免費的,可以直接下載。用户不僅可以在Scilab的許可證條件下自由使用該軟件,還可以根據自己需要修改源代碼,使之更加符合自身需要。
Scilab官網:https://www.scilab.org/
2. Octave
Octave是自由操作系統GNU項目下的開源軟件,旨在提供與Matlab語法兼容的科學計算、數值分析與數學繪圖工具。
Octave的界面和Matlab很像,因為最初它就是模仿Matlab開始的。在編程語言語法和繪圖功能方面,Octave和Matlab極其相似,Octave可以直接運行大部分的Matlab源程序,即m文件。Matlab程序除非涉及到比較特殊的工具箱,經過簡單的改寫即可在Octave中運行。
許多開源項目是同時支持Matlab和Octave的,比如在國外有限元教學中經常用到的ifiss(Incompressible Flow & Iterative Solver Software,不可壓縮流迭代求解軟件)工具箱,就同時維護了Matlab和Octave版本。知名人工智能專家吳恩達(Andrew Y. NG)在其廣受歡迎的深度學習課程中推薦用Octave替代Matlab。
Octave擁有與Matlab工具箱類似的擴展機制,稱為包(Packages),現已有50個社區包與21個外部包。其中有幾個擴展包可以提供特定領域的系統仿真功能,但仿真功能較弱。
Octave最初是大約在1988年由美國威斯康星大學麥迪遜分校詹姆斯·羅林斯(James B. Rawlings)和德克薩斯大學約翰·埃克爾特(John G. Ekerdt)為化學反應器設計教學而編寫的配套軟件。系統性開發是從約翰·伊頓(John W. Eaton)在1992年接手才開始的。第一個alpha測試版是在1993年1月4日發佈,1.0穩定版則是在1994年2月17日發佈。2017年2月伊頓發表公開信,表示因為獲得的資助不足以支持Octave開發,他個人投入不少資金導致經濟吃緊,希望能找到一份Octave開發之外的工作。之後Octave停止更新了一年多,後在2018年3月恢復更新。最新一版是2020年1月31日發佈。自由軟件不易,且行且珍惜。
Octave官網:https://www.gnu.org/software/octave/
3. Python Spyder
Python是一種跨平台的計算機腳本語言,在1991年由荷蘭國家數學和計算機科學研究所吉多·範羅蘇姆(Guido van Rossum)設計創立。Python最初被設計用於編寫自動化腳本(shell),隨着版本的不斷更新和語言新功能的添加,被廣泛用於網站開發、系統管理以及通用的業務應用程序。Python的可擴展性非常強,一些擴展庫的出現已經使得Python非常適合科學計算。Python完全免費,許多開源軟件都支持Python。
Spyder是一款輕量級的開源Python集成開發環境(IDE ),和其它的Python IDE相比,它最大的優點就是模仿Matlab的“工作空間”佈局,適於進行數據分析。Spyder已經集成了Numpy、SciPy、SymPy、Pandas和Matplotlib等流行的科學擴展庫,不用再處理環境依賴關係,方便進行科學計算、數據分析與數學繪圖。
NumPy是用於數值計算的基本軟件包。它定義了數值數組和矩陣類型以及它們的基本運算。
SciPy是對NumPy的增強,是數值算法和特定領域工具箱的集合,其中包括最優化、線性代數、積分、插值、特殊函數、快速傅里葉變換、信號處理和圖像處理、常微分方程求解和其它科學與工程中常用的計算工具。
SymPy是用於符號數學和計算機代數的擴展庫。
Pandas是一種靈活易用的數據分析和處理工具。
Matplotlib是Python最著名的繪圖庫,它提供了一整套和Matlab類似的繪圖函數集合,非常適合編寫短小的腳本程序進行快速的繪圖。
此外,如果要在Python環境中進行仿真,Github上有一個開源項目Simupy。在項目介紹中提到,Simupy是一個可對互連的動態系統模型進行仿真的框架,並提供工具建立基於模型的系統設計和仿真工作流。Simupy是對標Matlab Simulink的仿真軟件,但還處於起步階段。
Spyder官網:https://www.spyder-ide.org/
4. Julia
Julia是2012年麻省理工和哈佛大學的4名計算機科學家推出的開源動態腳本語言。從2009年開始構想這種新語言,初衷是綜合科學計算中使用到的多種語言的優點,以免研究人員在多種語言中來回切換。Julia主要用於數值計算,內建了了大量的數學函數, 對矩陣運算支持良好。作為一門新興語言,Julia在設計上充分考慮了並行計算和分佈式計算的需求,最大發揮現代計算機的能力。
Juno是Julia的集成開發環境。
Julia官網:https://julialang.org/
5. ScicosLab
ScicosLab是由一些曾參與Scilab開發的研究人員,在Scilab BUILD4版本的基礎上開發的GTK+版本,集成了建模/模擬工具Scicos及眾多工具箱,曾被稱為是“惟一一款可以與商業軟件Matlab/Simulink媲美的開源軟件”。
但目前Scicoslab與Scicos都處於停止更新狀態。
Scicoslab官網:http://www.scicoslab.org/
除了以上開源軟件之外,據説國內已經在開發替代Matlab的產品,但相關信息不多,讓我們保持關注。
實事求是地講,上述開源免費軟件與Matlab還存在比較大的差距。無論是在功能完備性(尤其是系統仿真方面),還是在易用性和運用效率上都有很大發展空間,在實際使用中需要幾種軟件結合才能對Matlab進行替代。作為開源軟件依靠技術愛好者自發維護也和商業軟件的支持力度不能相提並論。
但是,這些開源軟件科學計算能力與開放性、可擴展性都不差,而且在適應新的計算需求上甚至還佔有優勢,只不過是缺乏大量用户使用反饋的積累與專業團隊耐心投入的反覆調優,用起來沒有那麼得心應手。其實Matlab也是從簡單的工具成長起來的,在有參照可驗證的前提下,工具調整優化所需的時間其實是可以大大縮短的。更重要的是,當前的局勢已經讓我們沒有再挑三揀四的時間了,需要下定決心儘早儘快將開源軟件用起來,這才是我們破局的正確出路。
四、認清當前局勢,堅定決心破局
長期以來,國內科研界養成了一種“吃現成”的心態,安心地在美國提供的科技基礎上進行應用層面的發展。這種思維有其歷史原因,現在覆盤也不能過於求全責備。但是當禁用Matlab事件出現時,很多人如夢初醒:還能這麼做?這真做得出來?我們總不能還無動於衷吧。
面對當前的局勢,有兩條路可選:一是繼續在美國技術基礎上賴着不走,甚至是不讓用正版就用盜版,能混一天是一天。如果是這種想法,那就太沒出息了!
二是果斷放棄美國路線,換在新的技術基礎上積累與發展。就國內的技術現實而言,完全搞國產的新技術一沒積累、二沒時間、三沒必要。天下苦美久矣,世界人民並不希望一個霸主的下台換來的是另一個霸主上台。如果中國再搞一個封閉的平台,是得不到廣泛支持的,也是主動與世界隔離,這正是落入了美國的圈套。正確答案其實就是前面的高頻詞:開源軟件。快速破局的關鍵就是在短時間內先把開源軟件用起來,再用中國的市場需求促進開源軟件快速成長成熟,成為我們新的技術基礎。
如果要走第二路,先要分析清楚當前的有利條件與將要面對的困難。中國科技行業與開源軟件結合,有三大有利條件:
一是中國市場足夠支撐開源軟件發展。Matlab所屬公司MathWorks去年的營收是10億美元,因為MathWorks未上市,不能查證其在中國市場的收入,但應該數額不小。這些資金既然不讓花了,可以拿出一部分來支持開源軟件的發展。只要設計一個好的機制,國內市場需求供幾個科研軟件的開發主體成長壯大問題不大。
二是Matlab並無太強技術壁壘。我曾經在《迎接即將到來的“脱鈎”,國產軟件的戰略準備:數據庫篇》中提出一個觀點,那就是一款成功的軟件產品的同類替代是非常困難的,因為其生態已經深入人心,要改變用户習慣幾乎沒有可能。所以可能的機會是升級換代,抓住技術革命的機會來發展新的產品。本來在計算工具軟件領域,升級換代的機會很小,雖然有並行計算、邊緣計算等新的需求,但一般用户其實是無感的。最多能培育幾個特定領域的工具出來。但是千算萬算誰也沒有想到,美國公司會禁止中國人使用。Matlab其實是一個非常合適的對手,它的功能開源軟件多多少少都能實現,差距就在好不好用,這通過積累與投入是可以解決的。原來因為生態問題,大家都不抱什麼希望的事,竟然會出現美國人自己把市場讓出來,奇蹟來都來了就不要客氣,抓緊時間上吧!
三是現在已經到了中國科研必須重視底層的時間點。國內科研對底層基礎研究一直很薄弱,非常依賴各種已有平台和軟件工具,不僅是別人嚼過的饃香不香的問題,簡直就是天天睡在別人的炕上。中美科技競爭頻繁過招,其深刻原因是中國科技力量的崛起已經開始改變世界格局。作為一個新興力量,該從美國人的炕上下來,把腳踩在堅實的地上了。中國的科研水平、技術力量早就已經具備條件,就差膽識與實際行動了。
我們要面對的困難是,開源軟件在國內一直髮展緩慢,投入與重視都不夠。開源軟件本身存在很多問題,其運行機制並不能滿足中國市場的需要。這就要在與開源軟件結合的過程中大膽創新,用新思路新辦法將開源軟件與中國具體情況相結合。至於具體怎麼做,我在中篇《勢與順勢》中再講。