由Chrome、Edge和Firefox三大瀏覽器及Safari的WebKit的工程師們聯手推動的新網頁格式標準WebAssembly近日終於搬上檯面,微軟、Google、Mozilla三大瀏覽器廠商皆搶先宣布支持新標準,而蘋果儘管尚未鬆口,但WebKit已將此列入未來功能清單。

JavaScript之父Brendan Eich表示,WebAssembly格式標準將成為一個網站程式碼的新中介層,可以提供一個二進位檔案格式標準來執行網頁。

在WebAssembly計畫網站的FAQ中透露,將網頁程式編譯成這個二進位格式的新網頁檔案格事後,能讓執行速度加快20倍。也因此,不少媒體或評論以JavaScript殺手來稱呼WebAssembly,直指將終結JavaScript目前在通用網頁程式語言的主導地位。

不過,JavaScript之父Brendan Eich則在部落格上大力澄清,WebAssembly不是取代,而是要與JavaScript互補,讓它更強。他解釋,WebAssembly將成為過去被用來提升JavaScript程式執行效能的Asm.js架構的接班人,不過,這不代表JavaScript會死。

Brendan Eich上個月才來臺揭露JavaScript的開發秘辛,他當時提到,Asm.js架構限制了JavaScript中拖累效能的語法,反而讓JavaScript的執行效率提升到接近Bytecode程式,不過近日推出新的格式標準後,新專案WebAssembly(簡稱為wasm)將成為Asm.js架構的接班人,不只大幅提升網頁應用程式效能,之後任何程式語言都可能被直接編譯成二進位的執行檔,包括JavaScript語言。不過,WebAssembly也將支援文字原始碼的瀏覽形式。

WebAssembly格式和Asm.js架構一樣將經由JavaScript引擎來執行,過去在Asm.js架構出現之前,網頁程式需用JIT(Just in time)逐行編譯JavaScript程式碼,因而影響了執行效能,為解決這個問題,Mozilla推出了Asm.js架構。Asm.js限制了JavaScript的某些功能,去除了會影響執行效能的功能後來進行優化,就像是原始JavaScript的瘦身版本。

不過,WebAssembly則可以沒有這樣的侷限,而是直接定義了一個新的網頁執行層,讓瀏覽器能直接執行二進位檔案格式的WebAssembly檔案,來達到像是執行Bytecode程式般的高效能。

Brendan Eich表示,WebAssembly將透過現有瀏覽器的JavaScript引擎來實現,將透過polyfill修補元件的方式來強化JavaScript引擎,就像是JavaScript的新功能,也能省下在瀏覽器模組上進行擴充的成本。

除了在GitHub上建立專案之外,World Wide Web Consortium(W3G)組織也成立了一個專案的社群網站WebAssembly Community Group,開放讓所有人加入,目的是要推動新的格式標準,改善跨瀏覽器的程式碼編譯效能。目前C/C++程式語言已可編譯成WebAssembly。文⊙辜騰玉


Advertisement

更多 iThome相關內容