中科院包云崗談MATLAB被禁:不要只追求發(fā)論文,要有持久戰(zhàn)意識(shí)
不能期望“速勝論”
曉查 整理自 包云崗微博
量子位 報(bào)道 | 公眾號(hào) QbitAI
6月11日晚,有哈工大師生在微博上反映MATLAB停止對(duì)該校提供服務(wù),一時(shí)間引發(fā)國(guó)內(nèi)學(xué)術(shù)界激烈討論。
作為理工科必備的數(shù)學(xué)軟件,MATLAB在科研領(lǐng)域的作用舉足輕重,若美國(guó)以“實(shí)體清單”名義對(duì)國(guó)內(nèi)高校實(shí)施封禁措施,將對(duì)科研產(chǎn)生不可估量的影響。
一時(shí)間,關(guān)于如何引導(dǎo)專業(yè)軟件國(guó)產(chǎn)化的話題再次被提上日程。
國(guó)產(chǎn)專業(yè)軟件為何發(fā)展落后,如何鼓勵(lì)國(guó)內(nèi)高校企業(yè)研發(fā)軟件,許多人都提出了自己的看法。
來自中科院計(jì)算所先進(jìn)計(jì)算機(jī)系統(tǒng)研究中心副主任包云崗教授近日在CCF YOCSEF杭州論壇上發(fā)表了自己的見解。
包云崗教授從MATLAB的發(fā)展史上總結(jié)了幾大要點(diǎn),或許能對(duì)國(guó)內(nèi)高校研發(fā)自主軟件帶來一點(diǎn)啟發(fā)。
他認(rèn)為,做軟件應(yīng)首先追求實(shí)際成果,而不是把發(fā)表論文作為最終目標(biāo);國(guó)內(nèi)的科研人員不要忽略教學(xué)場(chǎng)景,因?yàn)镸ATLAB最初就是為了教學(xué)而發(fā)明的。
最后他指出,在國(guó)產(chǎn)軟件的研發(fā)上應(yīng)該堅(jiān)持“持久戰(zhàn)”,不能期望“速勝論”。中國(guó)今天被卡脖子的東西,都是國(guó)外研究了幾十年的,我們應(yīng)該堅(jiān)持不斷積累,才能實(shí)現(xiàn)追趕和超越。
附包云崗教授講話原文:
很多人都在思考如何解決“Matlab被禁”這個(gè)燃眉之急問題。大家回顧了中國(guó)的工業(yè)軟件發(fā)展之痛,批評(píng)國(guó)內(nèi)的盜版問題、知識(shí)產(chǎn)權(quán)保護(hù)問題、重硬件輕軟件等一系列問題。也提出了很多好的建議,比如給了針對(duì)Matlab各種功能的開源軟件替代方案。這些都算是“昨天和今天”的事。
現(xiàn)在我想和大家一起討論一下關(guān)于“明天”的事。我們每個(gè)人可以問自己一個(gè)問題:從現(xiàn)在這個(gè)時(shí)間點(diǎn)開始,給10年時(shí)間,甚至20年時(shí)間,我們能做出一個(gè)卡別人脖子的東西嗎?(并不是說真的要去卡別人脖子,而是說要成為別人離不開的東西)如果從這個(gè)角度來看這次“Matlab被禁”事件,那么也許可以給我們更多的是啟發(fā)——我們都知道Matlab最初只是新墨西哥大學(xué)Clever Moler教授在1970年代用于教學(xué)中的一個(gè)小工具軟件,那它為什么能在幾十年后成為卡我們脖子的利器?
我們一起來梳理一下Matlab發(fā)展過程中折射出來的幾個(gè)理念:
一、把東西做出來,而不是追求把論文發(fā)出來。
Matlab網(wǎng)站上有一篇Moler教授自己在2018年寫的Matlab簡(jiǎn)史。他在開頭就寫道,在1971年和1975年他所在團(tuán)隊(duì)向NSF申請(qǐng)了兩個(gè)項(xiàng)目,目標(biāo)是“探索開發(fā)高質(zhì)量數(shù)學(xué)軟件的方法、成本和資源”。他自己也認(rèn)為,某種程度上這兩個(gè)項(xiàng)目是失敗的,因?yàn)樗麄儧]有發(fā)表出一篇論文,他們只是開發(fā)出了兩個(gè)軟件:一個(gè)是EISPACK,另一個(gè)是LINPACK。而且這兩個(gè)軟件也談不上多大的學(xué)術(shù)創(chuàng)新,因?yàn)镋ISPACK就是把1965-1970年發(fā)表論文中用Algo60寫的算法翻譯為Fortran,而LINPACK則是直接用Fortran重寫一遍。
二、把東西用起來,而不是做完就扔了。
雖然EISPACK、LINPACK沒有論文,學(xué)術(shù)創(chuàng)新也似乎不是很高,但確實(shí)兩個(gè)很有用的軟件。EISPACK的開發(fā)團(tuán)隊(duì)在1974年代寫了一本使用手冊(cè),我在Google Scholar上查了一下,到現(xiàn)在已經(jīng)被引用了1800多次,1970-1980年代使用非常廣泛。LINPACK更是世界超級(jí)計(jì)算機(jī)排行榜Tops500的基準(zhǔn)測(cè)試程序,可以說是影響了世界超級(jí)計(jì)算機(jī)的發(fā)展。
三、把教學(xué)場(chǎng)景用起來,而不是把教學(xué)當(dāng)作負(fù)擔(dān)。
Matlab是Coler教授想把EISPACK和LINPACK應(yīng)用于教學(xué)過程中的產(chǎn)物。如果Moler教授不是用心去做教學(xué),不是為了能讓學(xué)生更好地掌握線性代數(shù)與數(shù)值分析,更容易地使用EISPACK和LINPACK這兩個(gè)軟件,那么他就不會(huì)有動(dòng)機(jī)自己動(dòng)手去寫一個(gè)Matlab小工具來把這兩個(gè)軟件接口封裝起來,從而方便學(xué)生使用。
今天,由于嚴(yán)苛的科研競(jìng)爭(zhēng)環(huán)境和考核壓力,很多人都把教學(xué)當(dāng)作了一種負(fù)擔(dān),認(rèn)為會(huì)影響科研。但教學(xué)其實(shí)是試驗(yàn)新技術(shù)、新工具最好的應(yīng)用場(chǎng)景,因?yàn)樵囧e(cuò)成本很低,而且學(xué)生的創(chuàng)新性和主動(dòng)性,還能幫助改進(jìn)優(yōu)化技術(shù)和工具。Matlab最終走上商業(yè)化,就是因?yàn)镃oler教授在斯坦福大學(xué)給學(xué)生上課時(shí),有兩個(gè)學(xué)生對(duì)Matlab很感興趣,主動(dòng)提出用C重寫一遍,同時(shí)移植到IBM PC上。很多技術(shù)最早都是從課堂上發(fā)展起來,比如RISC架構(gòu)是David Patterson教授在伯克利的課程實(shí)驗(yàn)。
四、把持久戰(zhàn)意識(shí)樹立起來,而不是期望速勝論。
堅(jiān)持圍繞一件事做,幾十年后的累積效應(yīng)是驚人了。中國(guó)今天被卡脖子的東西,幾乎都是別人積累了20年以上的東西。從第一版Matlab算起到現(xiàn)在已經(jīng)有40年,1980年代初的第一代EDA軟件到現(xiàn)在也有快40年,Intel在1970年左右第一代微處理器到現(xiàn)在已經(jīng)有50年。臺(tái)積電1987年成立到現(xiàn)在也是積累了30多年。其實(shí)在學(xué)術(shù)界也有很多有影響力的工作也是積累很多年的產(chǎn)物,我們可以看一下ACM System Software Award,獲獎(jiǎng)的軟件基本上都是持續(xù)積累了幾十年,比如LLVM持續(xù)優(yōu)化了17年、Eclipse優(yōu)化了19年、Wireshark優(yōu)化了22年、Coq優(yōu)化了31年,GCC則有33年。
再仔細(xì)剖析一下Matlab以及對(duì)應(yīng)的公司MathWorks,可以說是持久戰(zhàn)的典范。MathWorks在1984年成立,只有1名員工。第一筆收入是1985年賣給了MIT10個(gè)Matlab版權(quán),收入500美元。MathWorks公司早期很不起眼,有個(gè)玩笑稱它前7年員工數(shù)每一年翻一番,1984年1個(gè)員工,1985年2個(gè)員工,1986年4個(gè)員工,直到7年后的1991年也才只有128個(gè)員工。和今天很多初創(chuàng)公司相比,這個(gè)成長(zhǎng)速度就像是蝸牛了。但是他們力出一孔,圍繞著Matlab不斷增加功能,使Matlab成為一個(gè)行業(yè)領(lǐng)先的工具軟件。1997年,MathWorks的營(yíng)業(yè)額達(dá)到了5000萬(wàn)美元,380名員工。如今2019年MathWorks公司營(yíng)業(yè)額是10億美元,3000多員工,全球有400多萬(wàn)用戶。雖然從營(yíng)業(yè)額看并不大,但其實(shí)我們更應(yīng)該學(xué)習(xí)這種模式——不斷積累。把一項(xiàng)技術(shù)做到極致,成為某個(gè)細(xì)分領(lǐng)域的隱形冠軍。
最后總結(jié)一下,當(dāng)我們?cè)谒伎既绾谓狻癕atlab被禁這個(gè)解燃眉之急的同時(shí),更需要考慮如何才能在未來做出像Matlab那樣的工作,做出能卡別人脖子的技術(shù)。這需要我們做出改變,觀念上的改變,行動(dòng)上的改變。至于哪些具體的改變,我想前面梳理的四點(diǎn)就算是拋磚引玉吧:(1)把東西做出來,而不是追求把論文發(fā)出來,(2)把東西用起來,而不是做完就扔了,(3)把教學(xué)場(chǎng)景用起來,而不是把教學(xué)當(dāng)作負(fù)擔(dān),(4)把持久戰(zhàn)意識(shí)樹立起來,而不是期望速勝論。
——以上為CCF YOCSEF杭州· Matlab被禁之特別論壇的發(fā)言




