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