代碼與戰(zhàn)爭:從“新軟件危機”到開發(fā)工具自主化

風(fēng)辭遠
在當時,大型計算機還沒有普及,但軟件開發(fā)帶來的巨大成本已經(jīng)讓各國開始恐慌。歐美國家普遍發(fā)現(xiàn),如果每個軟件都采取高度定制化的開發(fā)方式,那么隨著軟件數(shù)量增加,開發(fā)成本和維護難度會拖垮產(chǎn)業(yè)鏈,甚至危及社會經(jīng)濟安全。

本文來自微信公眾號“腦極體”,作者/風(fēng)辭遠。

1968年,著名的北大西洋公約組織在聯(lián)邦德國組織了一次學(xué)術(shù)會議,前來參會的是50多名北約各國的計算機專家、軟件工程師、工業(yè)界代表。會議只有一個主題:應(yīng)對“軟件危機”。

在當時,大型計算機還沒有普及,但軟件開發(fā)帶來的巨大成本已經(jīng)讓各國開始恐慌。歐美國家普遍發(fā)現(xiàn),如果每個軟件都采取高度定制化的開發(fā)方式,那么隨著軟件數(shù)量增加,開發(fā)成本和維護難度會拖垮產(chǎn)業(yè)鏈,甚至危及社會經(jīng)濟安全。

最終,會議形成的應(yīng)對共識,是國家必須發(fā)展軟件工程(software engineering),確保自身掌握從開發(fā)語言、操作系統(tǒng),再到軟件開發(fā)工具的一系列基座。用系統(tǒng)化、數(shù)量化的工程原則來實現(xiàn)軟件開發(fā)的低成本與高可控,從而避免產(chǎn)業(yè)經(jīng)濟被軟件拖垮。

這一結(jié)論影響了此后數(shù)十年的全球軟件發(fā)展史。美國、歐洲、日本紛紛在基礎(chǔ)軟件與開發(fā)工具上重兵集結(jié),一決雌雄。由此不僅在市場層面產(chǎn)生了一系列基礎(chǔ)軟件巨頭,在國家競爭層面,以美國為代表的發(fā)達國家,可以通過基礎(chǔ)軟件與開發(fā)工具優(yōu)勢牢牢掌控全球軟件發(fā)展,確保自身的領(lǐng)先地位。至此,軟件工程已經(jīng)不再是一個技術(shù)問題,而是成為國家戰(zhàn)略安全問題。它帶來了很多結(jié)果,比如在基礎(chǔ)軟件中競爭失敗的歐洲、日本,喪失了后續(xù)信息革命的主導(dǎo)權(quán);又比如東南亞、印度等地,只能淪為美國的軟件外包商,喪失了底層創(chuàng)新機會。

軟件工程,從來都是一場發(fā)生在代碼中的無聲戰(zhàn)爭。

時間來到21世紀,伴隨著全球化的大發(fā)展,開源軟件與開源社區(qū)已經(jīng)成為了主流的基礎(chǔ)軟件(尤其是軟件開發(fā)工具)獲取形式。中國、韓國、新加坡等國家的軟件產(chǎn)業(yè),充分利用了開源機遇,用最低成本的方式獲得了成熟的軟件開發(fā)基座。但這種模式真的牢不可破嗎?甜蜜的軟件開發(fā)工具開源,真的會始終美好嗎?

當逆全球化與地緣紛爭的鐘聲敲響,我們驚覺風(fēng)險從未消散,新“軟件危機”正在醞釀。

軟件,從來不只是個技術(shù)問題,而是企業(yè)乃至社會的命運問題。

討論“缺芯少魂”,

不能忘記開發(fā)工具

這些年來,“缺芯少魂”“卡脖子”成為全民熱議的話題。誠然,芯片和操作系統(tǒng)是軟硬件兩大體系的核心。但要看到的是,我們?nèi)焙蜕俚慕^不僅僅是這兩樣?xùn)|西。事實上,走向科技自立要補的課非常多,比如硬件層面的存儲、數(shù)控元件;軟件層面的開發(fā)框架、中間件、數(shù)據(jù)庫。其中不能忽略的一點,就是軟件開發(fā)工具。

軟件開發(fā)工具,是基礎(chǔ)軟件中的基礎(chǔ)軟件,也是應(yīng)對“軟件危機”的關(guān)鍵。所謂軟件開發(fā)工具,是指軟件開發(fā)從創(chuàng)意到需求分解,再到設(shè)計、編碼、生成文件,最終部署到對應(yīng)環(huán)境中,各個步驟、流程所需要的必備工具支持。其內(nèi)涵十分豐富,體系十分龐雜。

從開發(fā)流程上看,軟件開發(fā)工具一般涉及項目管理、代碼托管、代碼檢查、編譯、部署、測試、發(fā)布等等,每個流程環(huán)節(jié)都有不同的工具。對于軟件企業(yè)來說,軟件開發(fā)工具需要盡量形成完整的工具鏈,這樣才能協(xié)同各個部門,管理整個軟件開發(fā)項目的流程與進度。而對于開發(fā)者來說,軟件開發(fā)工具需要盡量集成化、一體化,從而降低使用不兼容工具開發(fā)帶來的綜合成本,實現(xiàn)敏捷、高效率地開發(fā)。

在這些動力的加持下,軟件開發(fā)工具不斷走向現(xiàn)代化,其價值也水漲船高,行業(yè)影響力隨之而來。

QQ截圖20221020133834.png

數(shù)字化時代里有句名言,“軟件定義一切”,可以說,每家企業(yè)都將是軟件企業(yè),每位研發(fā)人員都將是軟件開發(fā)者,每個基礎(chǔ)研發(fā)流程都離不開軟件開發(fā)工具。如果我們做一個逆向假設(shè):大量軟件開發(fā)工具不能用了,會發(fā)生什么?

就像缺了光刻機不能造芯片一樣,缺了軟件開發(fā)工具首先無法實現(xiàn)軟件開發(fā)。同時,大量軟件還將無法進行創(chuàng)新迭代,已有軟件很難進行維護和運營。這種情況,不僅直接威脅大眾生活中的APP與軟件應(yīng)用,更會直接打擊依賴軟件的工業(yè)數(shù)字化體系與民生數(shù)字化基礎(chǔ)設(shè)施,這是任何人都無法承受的代價。

如今,軟件工具已經(jīng)大量使用全球化的開源工具與開源平臺。那么,我們不禁需要提出一個問題:這種模式,真的安全嗎?

后開源時代,

新“軟件危機”來臨

隨著20世紀80、90年代信息全球化的開展,頭部企業(yè)意識到開源是最有效形成生態(tài)、構(gòu)建產(chǎn)業(yè)優(yōu)勢的方式,于是基礎(chǔ)軟件開源成為全球化過程中一道亮眼的風(fēng)景。到了21世紀,新進的軟件開發(fā)者、從業(yè)者,從開始就習(xí)慣了開源開發(fā)工具,將使用開源工具,加入開源社區(qū)作為一種常識。

當時間指針轉(zhuǎn)到今天,我們卻猛然間發(fā)現(xiàn),開源的美好原來是那么可貴與脆弱。它并非一成不變的真理,而僅僅是黃金時代的饋贈。

2022年3月,隨著俄烏沖突爆發(fā),谷歌、蘋果、亞馬遜、微軟、Meta等軟件巨頭,以及SAP、Oracle等軟件公司都快速停止了面向俄羅斯的業(yè)務(wù)。大量代碼托管平臺以及開源社區(qū),紛紛在第一時間宣布封鎖俄羅斯開發(fā)者賬號。俄羅斯方面也在3月底宣布,禁止所有國家機構(gòu)與半政府實體在關(guān)鍵基礎(chǔ)設(shè)施項目購買外國軟件。

QQ截圖20221020133834.png

可以說,在短短不到一個月時間里,歐美就對俄羅斯,以及這個國家的軟件企業(yè)、開發(fā)者、數(shù)字化項目落下了軟件鐵幕。名義上開源開放的工具,在關(guān)鍵時刻沒有一個秉持固有原則,紛紛在地緣紛爭中站隊。

比如說,今天全球軟件開發(fā)者許多已經(jīng)習(xí)慣在Github進行代碼托管,甚至認為GitHub已經(jīng)變成了一種開發(fā)者之間的“默認準則”。然而就在俄烏沖突開始不久,GitHub就對受到美國制裁俄羅斯實體的相關(guān)軟件開發(fā)者進行了個人賬戶禁用、內(nèi)容清空等限制。Sberbank科技、SberbankAI實驗室、阿爾法數(shù)據(jù)庫實驗室等俄著名俄羅斯科技企業(yè)先是遭到了項目禁用,緊接著托管代碼被整個刪除。甚至有俄羅斯開發(fā)者稱,他們只是先前與相關(guān)企業(yè)有過合作,目前合作關(guān)系早已結(jié)束,但依舊遭到了GitHub在沒有預(yù)先警示的情況下封禁賬戶。

這種情景,不禁讓全世界更多國家開始反思,開源工具真的萬無一失嗎?它真的獨立于政治和地緣之外,是一種純粹技術(shù)的第三方價值嗎?

答案顯然是否定的。一旦底線被打破,那么它就會一次次被打破。一次次國際紛爭,讓我們看到了“后開源時代”已經(jīng)到來。開源工具與開源平臺,根本不獨立于國際局勢,甚至可以在必要的時候作為國際紛爭中的工具、砝碼,甚至是武器。

這也在某種程度上預(yù)示著,新的“軟件危機”已經(jīng)到來——20世紀60年代的軟件危機,是缺乏軟件工程基礎(chǔ)會面臨危險;今天的軟件危機,是當你習(xí)慣了被他人控制的軟件工程基礎(chǔ),那么危險也如影隨形。

應(yīng)對軟件工具失控,

中國準備好了嗎?

開放與發(fā)展無疑是全球化的共同目標,我們當然不希望開源軟件工具被封鎖。但《三體》里的情節(jié)告訴我們,當你不準備應(yīng)對危機,危機就已經(jīng)不遠了。

事實上,中國的軟件生態(tài),尤其是生產(chǎn)軟件的工具箱,還是非常脆弱的。工信部數(shù)據(jù)顯示,從2000年至2020年,中國軟件市場整體規(guī)模實現(xiàn)了135倍增長,美國為3.2倍;2020年,中國軟件產(chǎn)業(yè)規(guī)模占全球軟件產(chǎn)業(yè)的24%,占GDP比重約7.9%。中國軟件產(chǎn)業(yè)在20年中實現(xiàn)了舉世矚目的騰飛。但這種經(jīng)濟奇跡,其實是建立在他人提供的基礎(chǔ)和底座上的。

根據(jù)中國軟件協(xié)會的調(diào)研數(shù)據(jù),2020年,在全球操作系統(tǒng)、基礎(chǔ)軟件領(lǐng)域,美國業(yè)務(wù)收入約0.81萬億美元,占全球比例五分之四。而中國基礎(chǔ)軟件份額較少,國產(chǎn)軟件的國內(nèi)市場份額僅為5%,國產(chǎn)操作系統(tǒng)的國內(nèi)市場占有率僅4%。

QQ截圖20221020133834.png

國產(chǎn)基礎(chǔ)軟件體系薄弱、市場份額低的軟肋,已經(jīng)暴露在了國際格局中。從2019年至今,已有超過600家中國企業(yè)、機構(gòu)等被列入美國“實體清單”。而在相關(guān)商品與技術(shù)的制裁體系中,基礎(chǔ)軟件是當之無愧的“利器”。大量優(yōu)秀的企業(yè)、科研院校,都被美國禁止使用主流的基礎(chǔ)軟件與軟件開發(fā)工具,嚴重限制了中國產(chǎn)學(xué)各界的創(chuàng)新能力。應(yīng)對這種局面,似乎只有自己掌握軟件開發(fā)工具,才是保障創(chuàng)新安全底線的最優(yōu)解。

值得注意的是,“新軟件危機”并非只有開源工具斷供一個選項。很多國內(nèi)企業(yè)都會選擇購買商業(yè)版、定制版的軟件。但這些軟件看似離開了開源工具,實質(zhì)上很大程度是將開源工具進行封裝與定制化,再進行打包轉(zhuǎn)賣。這種情況下,主動權(quán)依舊受制于人。一旦出現(xiàn)開源工具失控,那么這些投資巨大的商業(yè)軟件將面臨著無法更新、漏洞無法修補等嚴重問題。

另一方面,軟件開發(fā)工具的危機也不僅僅通過斷供來發(fā)生。隨著越來越多的軟件采用云上開發(fā)模式,大量數(shù)據(jù)、開發(fā)代碼需要存在工具背后的國外企業(yè)服務(wù)器中。這也就意味著敏感數(shù)據(jù)理論上可以被其他國家查看、分析甚至拷貝的,其風(fēng)險意義不言而喻。

而一旦出現(xiàn)類似的軟件危機,中國會有哪些企業(yè)深受其害呢?首當其沖是數(shù)字化程度高、軟件使用規(guī)模龐大、軟件開發(fā)需求復(fù)雜的大型政企;接下來是掌握關(guān)鍵數(shù)據(jù),同時肩負創(chuàng)新責(zé)任的科研機構(gòu)與院校;緊接著是有著充分數(shù)字化、智能化需求的實體企業(yè);接下來則是科技產(chǎn)業(yè),尤其是軟件開發(fā)企業(yè)與軟件開發(fā)者群落。

這樣的烈性事件一旦出現(xiàn),就不是技術(shù)能夠解決的問題。它不以任何企業(yè)、機構(gòu)的技術(shù)努力而轉(zhuǎn)移,而會直接導(dǎo)致命運出現(xiàn)分叉。當千百家企業(yè)受到影響,產(chǎn)生供應(yīng)鏈的多米諾效應(yīng)。社會面的影響是難以估量的。

所以說,軟件開發(fā)工具的受制于人,根本不是一個技術(shù)問題,而是命運掌握在他人手中的問題。

至此,我們也可以得出一個結(jié)論:中國確實還沒有準備好應(yīng)對“新軟件危機”。但必須從此刻開始準備。要有意識、有方法地在國計民生行業(yè)、關(guān)鍵科研領(lǐng)域、重大科技產(chǎn)業(yè)中排除基礎(chǔ)風(fēng)險,實現(xiàn)自主創(chuàng)新。

2019-2020年之后,中國各界關(guān)于軟件自主可控的共識提高到了空前的水平。大量政企用戶在采購軟件過程中,將國產(chǎn)化和數(shù)據(jù)安全納為關(guān)鍵考量因素。也由此衍生了巨大的機遇窗口。比如說,各大互聯(lián)網(wǎng)云公司,都在以國產(chǎn)數(shù)據(jù)庫為切口進入政企市場。幾年來,在稅務(wù)、醫(yī)保、郵政、運營商等領(lǐng)域形成了規(guī)模化效應(yīng)。而國產(chǎn)工業(yè)軟件,比如仿真、CAD等領(lǐng)域也高速發(fā)展,在制造業(yè)、能源產(chǎn)業(yè)中實現(xiàn)了突破。

但也要看到,基礎(chǔ)軟件國產(chǎn)化還有很長的路要走,比如“做軟件的軟件”——軟件開發(fā)工具。在今天得到的重視就還遠遠不夠。

好在逆全球化暗潮洶涌的幾年后,事情開始出現(xiàn)了轉(zhuǎn)機。

“永遠不要浪費一場危機”

從政策趨勢與產(chǎn)學(xué)共識的宏觀層面看,基礎(chǔ)軟件開發(fā)工具的國產(chǎn)化與獨立自主,已經(jīng)是時代的大勢所趨。

在信息技術(shù)應(yīng)用創(chuàng)新委員會的定義中,應(yīng)用軟件開發(fā)平臺同云計算、操作系統(tǒng)、數(shù)據(jù)庫一樣被定義為開發(fā)支撐基礎(chǔ)軟件,位居“十四五”軟件和信息技術(shù)服務(wù)發(fā)展規(guī)劃中的五大主要任務(wù)之首。

另一方面,軟件開發(fā)工具的國產(chǎn)+商業(yè)版創(chuàng)新,也隨著主要科技公司的進步,進入到新的局面。從中興、華為事件以來,已經(jīng)有數(shù)百家中國科技實體被美國列入實體清單,在各類軟硬件基礎(chǔ)技術(shù)的獲取上遭遇全面斷供。危機固然兇險,但也在客觀上加快了科技實體自主創(chuàng)新的進程,同時這批“先行者”們也可以將經(jīng)驗和方法釋放出來,加快中國技術(shù)供應(yīng)鏈的自主化進程。

QQ截圖20221020133834.png

以華為為例,華為被美國列入實體名單之后,涉及美國技術(shù)的商用軟件開發(fā)工具已經(jīng)無法繼續(xù)購買使用許可,無法獲取存量軟件的持續(xù)更新,無法及時獲取安全漏洞的修復(fù)。為了破局這場典型的“新軟件危機”,華為從2019年開啟了去美國化的軟件自研,范圍涉及操作系統(tǒng)、數(shù)據(jù)庫、中間件、應(yīng)用軟件等基礎(chǔ)軟件領(lǐng)域。

而面向軟件開發(fā)工具,這個容易被忽視,卻又至關(guān)重要的領(lǐng)域,華為云推出了DevCloud開發(fā)云和CodeArts軟件開發(fā)生產(chǎn)線,并面向開發(fā)者提供一站式、全流程、端到端安全的云原生DevSecOps云平臺。在確保用戶擁有高度集成、現(xiàn)代化流水線式開發(fā)的同時,解決了“新軟件危機”暴露的開源軟件弊端。

如今,華為云CodeArts可以支持web開發(fā)、移動應(yīng)用開發(fā)、微服務(wù)開發(fā)、Cloud Native應(yīng)用開發(fā)、嵌入式開發(fā)等典型研發(fā)場景。覆蓋需求與設(shè)計、開發(fā)、測試、部署、運維等軟件交付的全生命周期環(huán)節(jié)。DevCloud、CodeArts已在華為云、華為電信產(chǎn)品、終端云消費業(yè)務(wù)、芯片研發(fā)等業(yè)界高標準、大規(guī)模的軟件研發(fā)業(yè)務(wù)中應(yīng)用,證明了自身的價值與能力。

提到軟件開發(fā)工具的國產(chǎn)化與自主創(chuàng)新,我們經(jīng)常會發(fā)現(xiàn)自研工具能力落后,或者局限于單個不重要的工具,那些重要性大、考驗嚴苛的開發(fā)工具依舊需要使用國外開源工具。

但在華為云CodeArts中,卻可以看到關(guān)鍵能力、關(guān)鍵工具的自主創(chuàng)新。比如華為云CodeArts Req需求管理服務(wù),專項解決了軟件開發(fā)管理這個戰(zhàn)略級需求??梢詭椭脩魧崿F(xiàn)軟件開發(fā)戰(zhàn)略意圖,進行精準投資。目前,CodeArts Req已經(jīng)高效支撐華為13萬研發(fā)人員的需求協(xié)作,月API調(diào)用量超過15億次,累計管理5000多萬需求,覆蓋華為終端、網(wǎng)絡(luò)、云計算、芯片、汽車等全業(yè)務(wù)場景。在這條軟件開發(fā)的“生產(chǎn)線”上,一點一點的關(guān)鍵突破,終將匯聚成整體產(chǎn)業(yè)鏈的核心競爭力。

正如二戰(zhàn)時期英國首相丘吉爾的名言,“永遠不要浪費一場危機”。面對新軟件危機,我們應(yīng)當充分珍惜危機帶來的啟示,并且保有這樣的共識:一家企業(yè)可能面對的風(fēng)險,一定是整個中國可能面對的風(fēng)險;而一批企業(yè)踩過的坑,絕沒有必要讓整個國家重蹈覆轍。

因此,當問題有了轉(zhuǎn)機和解法,就需要產(chǎn)業(yè)各界快速凝結(jié)共識,形成戰(zhàn)略合力以對抗風(fēng)險。

命運只有掌握在自己手中,才叫命運。否則的話,一切都是囚籠。

從軟件開發(fā)工具,到智能時代的軟硬件創(chuàng)新主導(dǎo)權(quán),一切都到了需要改變,也應(yīng)該改變的時候了。

THEEND

最新評論(評論僅代表用戶觀點)

更多
暫無評論