【2018關鍵趨勢1:WebAssembly】主流瀏覽器紛紛支援,網頁飆速成真

【2018關鍵趨勢1:WebAssembly】主流瀏覽器紛紛支援,網頁飆速成真

Mozilla新興科技部門院士David Bryant表示,WebAssembly的目的並不是要解決特例的單一問題,而是要讓瀏覽器變成一個更強大、更多功能的平臺(攝影/洪政偉)。

當經多數使用者目光開始從PC轉移至手機的行動優先年代,利用瀏覽器,在行動裝置提供順暢體驗變得相當重要。在2015年時,JavaScript之父Brenden Eich來臺時,就在瀏覽器上執行一套即時射擊遊戲。當時背後功臣是Asm.js架構,這個瘦身版JavaScript,讓瀏覽器效能大幅成長。

主流瀏覽器紛紛支援

Asm.js證明了瀏覽器上的網頁程式也可以跑得像原生程式一樣快,另一個想要實現同一個目標的後進之秀WebAssembly登場了。WebAssembly不像Asm.js還得背負著JavaScript的既有包袱,而是直接定義了一個全新的網頁執行層,讓瀏覽器能直接執行二進位檔案格式的WebAssembly檔案,來達到像是執行Bytecode程式碼般的高效能。

今年初WebAssembly已經開始支援主流瀏覽器,像是3月時,Firefox 52版第一個宣布支援,而後繼的Chrome 57、Edge 16及Safari 11也都支援。現今透過WebAssembly,讓瀏覽器效能獲得相當幅度提升,開發者就可以減少對外部套件的依賴。

根據研究機構Netmarketshare統計,至2016年12月至2017年11月間,行動版Chrome和Safari的市占合計高達86.24%,而桌面版目前已支援WebAssembly的Chrome、Firefox、Safari及Edge的市占合計也高達79.4%。這些行動端、桌面端瀏覽器主力業者紛紛支援WebAssembly,更讓該技術所影響的使用者規模更大。

在2017年8月,負責制定網際網路標準的W3C正式啟動WebAssembly工作小組。該小組主席Brad Nelson表示,WebAssembly是一個虛擬指令集體系架構(virtual ISA),整體架構包括核心ISA定義、二進位編碼,以及適用不同環境的API,「初始目標是為C、C++等語言編寫的程式經過編譯 Web平臺上執行時,可以兼顧安全性以及達到接近原生應用的執行速度。」

WebAssembly不是取代,而是要與JavaScript互補

而WebAssembly的出現,也讓許多開發者擔心「未來JavaScript就會消失。」因應這類質疑,JavaScript之父Brendan Eich就曾大力澄清,WebAssembly並非要取代JavaScript,而是要與它互補,