WebAssembly 無疑是近(jin)年來讓人(ren)最為興奮(fen)的新技術(shu)之一。它(ta)最早是在(zai) 2015 年由(you) JavaScript 的創造者 Brendan Eich 提出的,并迅速被各大主(zhu)要的瀏覽器支持,日趨成為一種(zhong)主(zhu)流技術(shu)。一些重磅的軟(ruan)件(jian)應用通過WebAssembly技術(shu)逐漸移(yi)植到Web上,為軟(ruan)件(jian)“云化“提供了(le)技術(shu)支撐和(he)便利(li)。
軟件云(yun)化(hua)勢不可(ke)擋,作為突破當下“卡脖子”困境的(de)剛需,工業軟件在加速布局云(yun)化(hua)賽道的(de)過程中,WebAssembly將(jiang)會起到怎樣(yang)關鍵的(de)作用?又將(jiang)為云(yun)工業軟件打開(kai)哪些機會窗口?
01
解碼WebAssembly 為什么它是面向未來的技術?
從定義上來說,WebAssembly是一種將用編程語言編寫的代碼(如rust/C/C++/Go等)轉換為瀏覽器可理解的機器代碼的技術,它具有體積小,性能高,安全性高的特點,使(shi)(shi)得大(da)型應用(yong)(yong)程序能(neng)夠通過網絡快(kuai)(kuai)速平穩地(di)運行。速度(du)快(kuai)(kuai),效率高,再加上(shang)用(yong)(yong)戶(hu)無需下載或(huo)安(an)裝就可(ke)以(yi)進行交互(hu),用(yong)(yong)戶(hu)成本(ben)低,這就是為什么 WebAssembly 會被迅速接納(na)并廣泛(fan)使(shi)(shi)用(yong)(yong)。
作為(wei)一種代(dai)碼的編譯(yi)技術,WebAssembly可以解(jie)決(jue)腳本語言無法解(jie)決(jue)的性能問題,這(zhe)是它的最大優勢。
長期以來,腳本語言的性能一直被人詬病,進行高密度計算更是奢望,這成為限制腳本語言的天花板。WebAssembly出現后,腳本語言可以利用它實現更高的性能——應用程序的效率會更高,響應速度也會更快,這將大大改善用戶體驗。
此外,WebAssembly天生擁有跨平臺的特性,想象一下:你可以使用任何編程語言構建軟件,在 Web 瀏覽器中無需安裝就可以直接使用軟件,并且性能媲美原生軟件。在減少了(le)開發(fa)成(cheng)本的(de)同時,也為語言(yan)之間(jian)的(de)結合提供了(le)一種高效的(de)方式。
WebAssembly的優越性還體現在,它利用瀏覽器提供一種其它語言無法比擬的安全沙盒環境,使得應用程序代碼在內存安全的沙盒環境中運行,可以防止安全漏洞和數據損壞。這為解決用戶關注的數據安全問題提供了一項其他語言無法提供的關鍵優勢。因此,WebAssembly也將成為Web3.0時代的核心安全技術之一。
在實際的工業化落地中,區塊鏈、游戲及圖像視頻等多個領域都正依靠 WebAssembly 創造出讓人稱贊的軟件應用產品,包括Autodesk、Google Earth、Figma等知名軟件都在運用這個技術構建更優秀的瀏覽器體驗。
其中,我們熟知的Adobe公司在推出云化、輕量化的Photoshop網頁版時,同樣運用了WebAssembly 作為關鍵底層技術——將(jiang)現有的(de)大(da)(da)部分Photoshop 代碼(ma)庫直接移植到 Web 上,不必(bi)完全從頭開發,讓推出(chu)網頁版的(de)難度大(da)(da)大(da)(da)降低。
02
WebAssembly為工業軟件上云造了一把“梯子”
隨著云(yun)時代的(de)(de)到來,云(yun)計算技術讓軟件(jian)應用的(de)(de)開發(fa)與(yu)使用變得更加靈活、安(an)全、低(di)成(cheng)本,軟件(jian)云(yun)化已成(cheng)為大勢所趨。我(wo)們(men)將目光投向更加細(xi)分的(de)(de)工業軟件(jian)領域(yu),在(zai)云(yun)計算成(cheng)為“水電燃氣”般(ban)普(pu)遍存在(zai)的(de)(de)今天,工業軟件(jian)的(de)(de)“云(yun)化”越來越被認可與(yu)接納。
“云化”是工業軟件走向輕量化發展的重要方式。包括西門子、Autodesk等海外工業軟件巨頭已紛紛帶頭做相關布局,國內市場工業軟件的“云化”趨勢也有明顯進展,以用友、金蝶為代表的老牌廠商也推出了云SaaS服務。業內人士認為,云化的工業軟件國內外正站在同一“起跑線”上。
WebAssembly 技(ji)術的誕生,可(ke)以說(shuo)為工業軟件“上(shang)云”提供了(le)一把(ba)更(geng)加便捷的“梯子”。其中,云工業軟件企(qi)業三維家在運(yun)用WebAssembly 技(ji)術上(shang),就做了(le)不少(shao)前瞻性(xing)的嘗試。
誕生于2013年,當時正值云計算在國內起步,三(san)維家將(jiang)“云”的(de)(de)基因融(rong)(rong)入到產品設(she)計理(li)念中,自研基于web的(de)(de)圖形引擎,并且(qie)在基于云的(de)(de)建模(mo)內核之上,融(rong)(rong)入大數據、AI人(ren)工智能等前沿技術,打(da)造出(chu)面(mian)向(xiang)家居家裝(zhuang)行業、高(gao)AI化、一體化的(de)(de)工業軟件。
C/C++是(shi)最(zui)先(xian)支持WebAssembly的(de)(de)編(bian)(bian)程語(yu)(yu)言(yan)(yan),而工(gong)(gong)業軟件普(pu)遍使用(yong)C/C++語(yu)(yu)言(yan)(yan)編(bian)(bian)寫。C++語(yu)(yu)言(yan)(yan)對(dui)于工(gong)(gong)業軟件而言(yan)(yan),具(ju)有其他語(yu)(yu)言(yan)(yan)無(wu)法比擬(ni)的(de)(de)優(you)勢:優(you)越的(de)(de)性能(neng),工(gong)(gong)業級的(de)(de)建模精度等(deng)等(deng)。因此(ci),工(gong)(gong)業軟件利用(yong)WebAssembly上云(yun)有著天然的(de)(de)條(tiao)件。
03
更快速、更流暢 大幅提升用戶體驗
三維家以C++為底層開發語言,在C++工業庫方面有著深厚積累。從2017年起,三維家便嘗試將C++工業庫進行WebAssembly轉換,可以算是國內最早的一批先行者。
據三維家技術研究院基礎平臺負責人陳江豪介紹,工業軟件采用WebAssembly后,會變得更加小巧、輕量化,且天生擁有跨平臺能力,利用Web能夠更快觸達用戶。工業軟件上(shang)云后,利用云原生等云端技術相關的devops,能夠快(kuai)速迭代,響應用戶需(xu)求。三維家利用WebAssembly將大部分C++工業庫(ku)上(shang)云后,正是吸(xi)收了這些特點,讓團隊開發(fa)更符合現代敏(min)捷開發(fa)形態,效率(lv)大大提升。
陳江豪還表示,三維家的三大基礎技術底座——AI引擎、幾何引擎、渲染引擎的核心功能均使用了WebAssembly技術,旗下擁(yong)有(you)WebAssembly化(hua)的(de)百萬級業務代(dai)碼(ma)的(de)商用(yong)產品(pin)——3D云設(she)計軟件(jian),在部分高(gao)密度計算(suan)、多媒體和(he)加密計算(suan)算(suan)法上(shang)同樣運用(yong)了WebAssembly技(ji)術。
WebAssembly對三維家最顯著的影響在于軟件綜合性能的提升,如用戶在線設計家裝效果圖時,打開巨型方案、加載模型的耗時會大大減少,降低等待時間;同時,會提高設計方案操作的流暢性,提升用戶體驗。在開發(fa)層(ceng)面,WebAssembly幫助(zhu)三維家三大(da)技術底(di)座能夠做到一碼多用,極(ji)大(da)地(di)降(jiang)低開發(fa)成(cheng)本(ben)。
三維家著力于踐行WebAssembly,這和三維家致力推動家居產業前后端一體化,以技術驅動家居產業變革的理念息息相關。WebAssembly能帶來工業級建模所需要的精度,為研發自由建模軟件CAD和CAM帶來技術基礎,并最大程度地優化產品性能。隨著三維家對WebAssembly的深入應用,其產品性能將快速提升,其廣闊的發展空間有望與同業產品拉開競爭優勢。
結語:
業(ye)內人士認(ren)為,WebAssembly是(shi)一(yi)項(xiang)“改變游戲(xi)規則”的技術,它是(shi)面(mian)向未(wei)來的,借(jie)助WebAssembly可以在前端創造(zao)出更多的可能性。
隨著WebAssembly生態的(de)不(bu)斷優化,也有如三維家一樣(yang)的(de)技(ji)術踐行者在持續(xu)實踐,WebAssembly正在為云工業軟件(jian)的(de)未來,描畫出一副更具想象(xiang)空間(jian)的(de)技(ji)術圖景。 |