Matlab被禁:我們如何做出能卡別人脖子的軟體?

今年6月,哈爾濱工業大學、哈爾濱工程大學因被列入美國商務部實體名單,並被禁用數學基礎軟體Matlab,引發了關於國產軟體的大規模討論。

對於大多數理工科學生而言,Matlab並不陌生,Matlab是一款被廣泛應用於教學、科研、工業領域的基礎軟體,而這類EDA(Electronic Design Automation,電子設計自動化)軟體,卻剛好又是中國的短板。正因如此,不少行業人士感慨,這次我們真的是被卡脖子了。

6月19日,中科院計算所研究員、先進電腦系統研究中心主任,中國開放指令生態聯盟秘書長包雲崗在微博上分享了他在「CCF YOCSEF杭州· Matlab被禁之特別論壇」上關於「Matlab被禁」事件帶來的思考與啟發的發言。

包雲崗指出,當我們在思考如何解「Matlab被禁」這個燃眉之急的同時,更需要考慮如何才能在未來做出像Matlab這樣的工具,做出能卡別人脖子的技術。

至於如何做出像Matlab這樣能卡別人脖子的軟體,包雲崗總結為如下四點:

第一,把東西做出來,而不是追求把論文發出來;

第二,把東西用起來,而不是做完就扔了;

第三,把教學場景用起來,而不是把教學當作負擔;

第四,把持久戰意識樹立起來,而不是期望速勝論。

Matlab被禁:我們如何做出能卡別人脖子的軟體?

以下為包雲崗在「CCF YOCSEF杭州· Matlab被禁之特別論壇」發言原文,這裡做了不改變原意的編輯整理:

很多人都在思考如何解決「Matlab被禁」這個燃眉之急的問題。大家回顧了中國的工業軟體發展之痛,批評中國的盜版問題、知識產權保護問題、重硬體輕軟體等一系列問題。也提出了很多好的建議,比如給了針對Matlab各種功能的開源軟體替代方案。這些都算是「昨天和今天」的事。

現在我想和大家一起討論一下關於「明天」的事。我們每個人可以問自己一個問題:從現在這個時間點開始,給10年時間,甚至20年時間,我們能做出一個卡別人脖子的東西嗎?(並不是說真的要去卡別人脖子,而是說要成為別人離不開的東西)

如果從這個角度來看這次「Matlab被禁」事件,那麼給我們更多的是啟發。

我們都知道Matlab最初只是新墨西哥大學Clever Moler教授在1970年代用於教學中的一個小工具軟體,那它為什麼能在幾十年後成為卡我們脖子的利器?

我們一起來梳理一下Matlab發展過程中折射出來的幾個理念:

一、把東西做出來,而不是追求把論文發出來。

Matlab網站上有一篇Moler教授自己在2018年寫的Matlab簡史。他在開頭就寫道,在1971年和1975年他所在團隊向NSF申請了兩個項目,目標是「探索開發高品質數學軟體的方法、成本和資源」。他自己也認為,從某種程度上來看,這兩個項目是失敗的,因為他們沒有發表出一篇論文,他們只是開發出了兩個軟體:一個是EISPACK,另一個是LINPACK。而且這兩個軟體也談不上有多大的學術創新,因為EISPACK就是把1965-1970年發表論文中用Algo60寫的演算法翻譯為Fortran,而LINPACK則是直接用Fortran重寫一遍。

二、把東西用起來,而不是做完就扔了。

雖然EISPACK、LINPACK沒有相關論文發表,學術創新也似乎不是很高,但確實是兩個很有用的軟體。EISPACK的開發團隊在1974年寫了一本使用手冊,我在Google Scholar上查了一下,到現在已經被引用了1800多次,1970-1980年代使用非常廣泛。LINPACK更是世界超級電腦排行榜Tops500的基準測試程式,可以說是影響了世界超級電腦的發展。

三、把教學場景用起來,而不是把教學當作負擔。

Matlab是Moler教授想把EISPACK和LINPACK應用於教學過程中的產物。如果Moler教授不是用心去做教學,不是為了能讓學生更好地掌握線性代數與數值分析,更容易地使用EISPACK和LINPACK這兩個軟體,那麼他就不會有動機自己動手去寫一個Matlab小工具來把這兩個軟體介面封裝起來,從而方便學生使用。

今天,由於嚴苛的科研競爭環境和考核壓力,很多人都把教學當作了一種負擔,認為會影響科研。但教學其實是試驗新技術、新工具最好的應用場景,因為試錯成本很低,而且學生的創新性和主動性,還能幫助改進優化技術和工具。Matlab最終走上了商業化道路,就是因為Moler教授在斯坦福大學給學生上課時,有兩個學生對Matlab很感興趣,主動提出用C重寫一遍,同時移植到IBM PC上。很多技術最早都是從課堂上發展起來,比如RISC架構是David Patterson教授在伯克利的課程實驗。

四、把持久戰意識樹立起來,而不是期望速勝論。

堅持圍繞一件事做,幾十年後的累積效應是驚人了。中國今天被卡脖子的東西,幾乎都是別人積累了20年以上的東西。

從第一版Matlab算起到現在已經有40年,1980年代初的第一代EDA軟體到現在也有快40年,Intel在1970年左右第一代微處理器到現在已經有50年。台積電1987年成立到現在也是積累了30多年。其實在學術界也有很多有影響力的工作也是多年積累的產物,我們可以看一下ACM System Software Award,獲獎的軟體基本上都是持續積累了幾十年,比如LLVM持續優化了17年、Eclipse優化了19年、Wireshark優化了22年、Coq優化了31年,GCC則有33年。

再仔細剖析一下Matlab以及MathWorks這家公司,可以說是持久戰的典範。MathWorks在1984年成立,只有1名員工。第一筆收入是1985年賣給了MIT10個Matlab版權,收入500美元。MathWorks公司早期很不起眼,有個玩笑稱它前7年員工數每一年翻一番——1984年1個員工,1985年2個員工,1986年4個員工,直到7年後的1991年也才只有128個員工。和今天很多初創公司相比,這個成長速度就像是蝸牛了。但是他們力出一孔,圍繞著Matlab不斷增加功能,使Matlab成為一個行業領先的工具軟體。1997年,MathWorks的營業額達到了5000萬美元,380名員工。如今2019年MathWorks公司營業額是10億美元,3000多員工,全球有400多萬用戶。雖然從營業額看並不大,但其實我們更應該學習這種模式——不斷積累。把一項技術做到極致,成為某個細分領域的隱形冠軍。

最後總結一下,當我們在思考如何解「Matlab被禁」這個燃眉之急的同時,更需要考慮如何才能在未來做出像Matlab那樣的工作,做出能卡別人脖子的技術。這需要我們做出改變,觀念上的改變,行動上的改變。

影片會員活動匯總>>

愛奇藝影片會員限時優惠5折
優酷影片會員年卡5折購(99元)
騰訊影片會員年費99元/京東plus聯合年卡128元
芒果TV 13個月 98元(6.16-6.22)