基于WebAssembly的工業(yè)軟件,正在實(shí)現(xiàn)“云超車”。
文章來(lái)源| 極客公園
WebAssembly 無(wú)疑是近年來(lái)讓人最為興奮的新技術(shù)之一。它最早是在2015 年由 JavaScript 的創(chuàng)造者 Brendan Eich 提出的,并迅速被各大主要的瀏覽器支持,日趨成為一種主流技術(shù)。一些重磅的軟件應(yīng)用通過WebAssembly技術(shù)逐漸移植到Web上,為軟件“云化“提供了技術(shù)支撐和便利。
軟件云化勢(shì)不可擋,作為突破當(dāng)下“卡脖子”困境的剛需,工業(yè)軟件在加速布局云化賽道的過程中,WebAssembly將會(huì)起到怎樣關(guān)鍵的作用?又將為云工業(yè)軟件打開哪些機(jī)會(huì)窗口?
解碼WebAssembly
為什么它是面向未來(lái)的技術(shù)?
從定義上來(lái)說,WebAssembly是一種將用編程語(yǔ)言編寫的代碼(如rust/C/C++/Go等)轉(zhuǎn)換為瀏覽器可理解的機(jī)器代碼的技術(shù),它具有體積小,性能高,安全性高的特點(diǎn),使得大型應(yīng)用程序能夠通過網(wǎng)絡(luò)快速平穩(wěn)地運(yùn)行。速度快,效率高,再加上用戶無(wú)需下載或安裝就可以進(jìn)行交互,用戶成本低,這就是為什么WebAssembly 會(huì)被迅速接納并廣泛使用。
作為一種代碼的編譯技術(shù),WebAssembly可以解決腳本語(yǔ)言無(wú)法解決的性能問題,這是它的最大優(yōu)勢(shì)。
長(zhǎng)期以來(lái),腳本語(yǔ)言的性能一直被人詬病,進(jìn)行高密度計(jì)算更是奢望,這成為限制腳本語(yǔ)言的天花板。WebAssembly出現(xiàn)后,腳本語(yǔ)言可以利用它實(shí)現(xiàn)更高的性能——應(yīng)用程序的效率會(huì)更高,響應(yīng)速度也會(huì)更快,這將大大改善用戶體驗(yàn)。
此外,WebAssembly天生擁有跨平臺(tái)的特性,想象一下:你可以使用任何編程語(yǔ)言構(gòu)建軟件,在Web 瀏覽器中無(wú)需安裝就可以直接使用軟件,并且性能媲美原生軟件。在減少了開發(fā)成本的同時(shí),也為語(yǔ)言之間的結(jié)合提供了一種高效的方式。
WebAssembly的優(yōu)越性還體現(xiàn)在,它利用瀏覽器提供一種其它語(yǔ)言無(wú)法比擬的安全沙盒環(huán)境,使得應(yīng)用程序代碼在內(nèi)存安全的沙盒環(huán)境中運(yùn)行,可以防止安全漏洞和數(shù)據(jù)損壞。這為解決用戶關(guān)注的數(shù)據(jù)安全問題提供了一項(xiàng)其他語(yǔ)言無(wú)法提供的關(guān)鍵優(yōu)勢(shì)。因此,WebAssembly也將成為Web3.0時(shí)代的核心安全技術(shù)之一。
在實(shí)際的工業(yè)化落地中,區(qū)塊鏈、游戲及圖像視頻等多個(gè)領(lǐng)域都正依靠WebAssembly 創(chuàng)造出讓人稱贊的軟件應(yīng)用產(chǎn)品,包括Autodesk、Google Earth、Figma等知名軟件都在運(yùn)用這個(gè)技術(shù)構(gòu)建更優(yōu)秀的瀏覽器體驗(yàn)。
其中,我們熟知的Adobe公司在推出云化、輕量化的Photoshop網(wǎng)頁(yè)版時(shí),同樣運(yùn)用了WebAssembly作為關(guān)鍵底層技術(shù)——將現(xiàn)有的大部分Photoshop 代碼庫(kù)直接移植到 Web 上,不必完全從頭開發(fā),讓推出網(wǎng)頁(yè)版的難度大大降低。
WebAssembly為工業(yè)軟件上云
造了一把“梯子”
隨著云時(shí)代的到來(lái),云計(jì)算技術(shù)讓軟件應(yīng)用的開發(fā)與使用變得更加靈活、安全、低成本,軟件云化已成為大勢(shì)所趨。我們將目光投向更加細(xì)分的工業(yè)軟件領(lǐng)域,在云計(jì)算成為“水電燃?xì)?rdquo;般普遍存在的今天,工業(yè)軟件的“云化”越來(lái)越被認(rèn)可與接納。
“云化”是工業(yè)軟件走向輕量化發(fā)展的重要方式。包括西門子、Autodesk等海外工業(yè)軟件巨頭已紛紛帶頭做相關(guān)布局,國(guó)內(nèi)市場(chǎng)工業(yè)軟件的“云化”趨勢(shì)也有明顯進(jìn)展,以用友、金蝶為代表的老牌廠商也推出了云SaaS服務(wù)。業(yè)內(nèi)人士認(rèn)為,云化的工業(yè)軟件國(guó)內(nèi)外正站在同一“起跑線”上。
WebAssembly 技術(shù)的誕生,可以說為工業(yè)軟件“上云”提供了一把更加便捷的“梯子”。其中,云工業(yè)軟件企業(yè)三維家在運(yùn)用WebAssembly 技術(shù)上,就做了不少前瞻性的嘗試。
誕生于2013年,當(dāng)時(shí)正值云計(jì)算在國(guó)內(nèi)起步,三維家將“云”的基因融入到產(chǎn)品設(shè)計(jì)理念中,自研基于web的圖形引擎,并且在基于云的建模內(nèi)核之上,融入大數(shù)據(jù)、AI人工智能等前沿技術(shù),打造出面向家居家裝行業(yè)、高AI化、一體化的工業(yè)軟件。
C/C++是最先支持WebAssembly的編程語(yǔ)言,而工業(yè)軟件普遍使用C/C++語(yǔ)言編寫。C++語(yǔ)言對(duì)于工業(yè)軟件而言,具有其他語(yǔ)言無(wú)法比擬的優(yōu)勢(shì):優(yōu)越的性能,工業(yè)級(jí)的建模精度等等。因此,工業(yè)軟件利用WebAssembly上云有著天然的條件。
更快速、更流暢
大幅提升用戶體驗(yàn)
三維家以C++為底層開發(fā)語(yǔ)言,在C++工業(yè)庫(kù)方面有著深厚積累。從2017年起,三維家便嘗試將C++工業(yè)庫(kù)進(jìn)行WebAssembly轉(zhuǎn)換,可以算是國(guó)內(nèi)最早的一批先行者。
據(jù)三維家技術(shù)研究院基礎(chǔ)平臺(tái)負(fù)責(zé)人陳江豪介紹,工業(yè)軟件采用WebAssembly后,會(huì)變得更加小巧、輕量化,且天生擁有跨平臺(tái)能力,利用Web能夠更快觸達(dá)用戶。工業(yè)軟件上云后,利用云原生等云端技術(shù)相關(guān)的devops,能夠快速迭代,響應(yīng)用戶需求。三維家利用WebAssembly將大部分C++工業(yè)庫(kù)上云后,正是吸收了這些特點(diǎn),讓團(tuán)隊(duì)開發(fā)更符合現(xiàn)代敏捷開發(fā)形態(tài),效率大大提升。
陳江豪還表示,三維家的三大基礎(chǔ)技術(shù)底座——AI引擎、幾何引擎、渲染引擎的核心功能均使用了WebAssembly技術(shù),旗下?lián)碛蠾ebAssembly化的百萬(wàn)級(jí)業(yè)務(wù)代碼的商用產(chǎn)品——3D云設(shè)計(jì)軟件,在部分高密度計(jì)算、多媒體和加密計(jì)算算法上同樣運(yùn)用了WebAssembly技術(shù)。
WebAssembly對(duì)三維家最顯著的影響在于軟件綜合性能的提升,如用戶在線設(shè)計(jì)家裝效果圖時(shí),打開巨型方案、加載模型的耗時(shí)會(huì)大大減少,降低等待時(shí)間;同時(shí),會(huì)提高設(shè)計(jì)方案操作的流暢性,提升用戶體驗(yàn)。在開發(fā)層面,WebAssembly幫助三維家三大技術(shù)底座能夠做到一碼多用,極大地降低開發(fā)成本。
三維家著力于踐行WebAssembly,這和三維家致力推動(dòng)家居產(chǎn)業(yè)前后端一體化,以技術(shù)驅(qū)動(dòng)家居產(chǎn)業(yè)變革的理念息息相關(guān)。WebAssembly能帶來(lái)工業(yè)級(jí)建模所需要的精度,為研發(fā)自由建模軟件CAD和CAM帶來(lái)技術(shù)基礎(chǔ),并最大程度地優(yōu)化產(chǎn)品性能。隨著三維家對(duì)WebAssembly的深入應(yīng)用,其產(chǎn)品性能將快速提升,其廣闊的發(fā)展空間有望與同業(yè)產(chǎn)品拉開競(jìng)爭(zhēng)優(yōu)勢(shì)。
業(yè)內(nèi)人士認(rèn)為,WebAssembly是一項(xiàng)“改變游戲規(guī)則”的技術(shù),它是面向未來(lái)的,借助WebAssembly可以在前端創(chuàng)造出更多的可能性。
隨著WebAssembly生態(tài)的不斷優(yōu)化,也有如三維家一樣的技術(shù)踐行者在持續(xù)實(shí)踐,WebAssembly正在為云工業(yè)軟件的未來(lái),描畫出一副更具想象空間的技術(shù)圖景。