各瀏覽器廠商在WebAssembly相關的工作上已經達成了一種“共識”,這使得各瀏覽器開始默認支持WebAssembly格式。
早在2016年11月,WebAssembly就已經進入“瀏覽器預覽”(Browser Preview)階段。在此階段,主流瀏覽器都提供了一個具有WebAssembly開關標識的測試版本瀏覽器。隨后的數月時間,各瀏覽器廠商需要在JavaScript API和二進制格式上做改進,并就此取得一致意見。近期發布的公告對WebAssembly做了界定:
如果沒有實現經驗和明確用途,那么無法對WebAssembly API和二進制格式的設計做進一步的改進。從這個意義上講,最初的設計工作已經完成。(各瀏覽器廠商)就此已達成了共識。
這一共識標志著“瀏覽器預覽”階段的結束,意味著各個瀏覽器可以默認打開對WebAssembly格式的支持。由此往后,將來的特性設計會確保向后兼容。
雖然這一最初實現是一個重要的里程碑,但是并不會立刻被開發人員大范圍地采用。盡管未來潛力無限,WebAssembly當前的語言支持僅限于C和C++,以及對Rust的初期支持。WebAssembly也沒有提供垃圾回收機制,因此C#和Java這樣的語言并不能正常運行,除非將它們自身的運行時作為二進制的組成部分。但是以后添加垃圾回收已在討論中。
此外,WebAssembly當前缺少與DOM交互等重要特性。Mozilla工程師Lin Clark 寫道,雖然“期待了很多的特性”,但是這些特性需要“有一個制定規范的過程”。WebAssembly社區組已經提供了一個供W3C工作組討論的未來特性列表,但是這些特性何時可用尚未有時間表。
Clark在一系列的帖子說明了WebAssembly會改進性能的原因所在,并指出引入WebAssembly將會是一個“轉折點”,可導致無法預料的性能改進,并提供迎接新挑戰的能力。
今后幾年,各瀏覽器廠商會在改進JIT編譯器性能的同時,繼續改進JavaScrip和WebAssembly間的交互。
現在已可用的Firefox 52支持WebAssembly格式。定于2017年3月14日發布的Chrome 57也將默認啟用WebAssembly格式。
查看英文原文: Browser Vendors Start Shipping WebAssembly by Default