[Javascript]谷歌、微軟聯手 Mozilla 等瀏覽器廠商推出新二進位格式 WebAssembly
類型:
Javascript
谷歌、微軟、Mozilla 和 WebKit 專案 工程師今天宣布,他們已經聯手推出了 WebAssembly,這是一個用於編譯網頁應用的新 二進位格式 。
Web 依靠其標準取得了很大的進展,且無論好壞與否,JavaScript 都是它的程式開發語言。但在過去幾年,我們看到越來越多的專案問世,它們試圖通過開發編譯程式,將其它語言程式碼轉化為 JavaScript,以此讓開發者克服 JavaScript 自身存在的一些短板。其中一些專案專註於給程式開發語言加入新的功能,比如微軟的 TypeScript,或是加快 JavaScript 的發展速度,例如 Mozilla 的 asm.js 專案。如今,眾多此類專案開始聯合起來,以 WebAssmbly 的形式出現在大家面前。
這種新的格式旨在讓程式開發人員為瀏覽器編譯程式碼(目前瀏覽器的專註點是 C/C++,其它語言的重要性次之),然後在 JavaScript 引擎內進行執行。由於不必解析完整的程式碼——這種作業往往會耗費相當長的一段時間(尤其是在行動端),因此 WebAssmbly 被解碼的速度可以大大加快。
WebAssmbly 團隊的想法是,這種新的二進位格式將向開發者提供單一的 Web 編譯目標,最終成為一種可在所有瀏覽器中執行的 Web 標準。
在默認環境下,JavaScript 檔案其實就是簡單的文本檔案,先是從伺服器下載,然後由瀏覽器中的 JavaScript 引擎解析並編譯。WebAssmbly 團隊之所以決定推出新的二進位格式,原因有兩個,一是程式碼可以被壓縮為其它的文本檔案,而不只有限於標準的 JavaScript 文本檔案,二是相比解析 asm.js 程式碼,JavaScript 引擎破譯二進位格式的速度要快得多——在當前的原型標準下,最多快了 23 倍。
長期以來,Mozilla asm.js 旨在將接近於本地的速度帶給 Web。而旨在在瀏覽器中執行本地程式碼的谷歌 Native Client 專案 ,也具有類似的目標,只是影響力相對較小。看起來,WebAssmbly 如今可以將這些專案中最好的元素融入瀏覽器。
作為第一步,WebAssmbly 團隊的目標是提供與 asm.js 相同的功能性,開發者將可以在 WebAssmbly 上面使用相同的 Emscripten 工具,就像他們今天使用這種工具編譯 asm.js 程式碼一樣。
在早期階段,WebAssmbly 團隊還排程推出一個所謂的 polyfill 庫 ,用以將 WebAssmbly 程式碼轉化為 JavaScript,這樣就能執行於任意瀏覽器上——甚至是沒有獲得本地 WebAssmbly 支援的瀏覽器上(很顯然,這有點荒謬,但如果瀏覽器可以在本地執行這種程式碼,那麼最後一步就不需要了)。隨?時間的推移,WebAssmbly 團隊還將開發更多的工具(比如編譯程式和除錯程式等),同時支援更多的語言(例如 Rust、Go 和 C#)。
正如「JavaScript 之父」 布蘭登·艾奇(BrendanEich)在今天所指出的,一旦主要的瀏覽器全都能在本地支援新的二進位格式,那麼 WebAssmbly 和 JavaScript 就可以再次分離。艾奇曾擔任過 Mozilla 首席執行官,但在任職 10 天後即被迫辭職。
WebAssmbly 團隊還指出,他們推出 WebAssmbly 不是為了取代 JavaScript,而是為了讓更多的語言可以支援 Web 編譯。實際上,JavaScript 和 WebAssembly 很有可能會被開發者同時使用,例如,某款應用的部分元素可能會使用 WebAssembly 模組(如動畫、視覺化和壓縮等),而使用者界面仍然可以主要使用 JavaScript 語言編寫。
我們很少看到所有主要的瀏覽器廠商攜手推出像 WebAssembly 這樣的專案,所以,他們的合作會帶來什麼樣的成果,肯定值得我們在未來幾個月乃至幾年保持關注。
題圖來源: 邁克爾·希姆比奧特(MICHAEL HIMBEAULT)/FLICKR,根據 CC BY 2.0 協定授權
翻譯:皓岳
Google, Microsoft,Mozilla And Others Team Up To Launch WebAssembly, A New Binary Format For The Web
想在手機查閱更多Javascript資訊?免費下載【香港矽谷】Android App
原文站台: TechCrunch 中?
分享到Facebook
類型:
Javascript
谷歌、微軟、Mozilla 和 WebKit 專案 工程師今天宣布,他們已經聯手推出了 WebAssembly,這是一個用於編譯網頁應用的新 二進位格式 。
Web 依靠其標準取得了很大的進展,且無論好壞與否,JavaScript 都是它的程式開發語言。但在過去幾年,我們看到越來越多的專案問世,它們試圖通過開發編譯程式,將其它語言程式碼轉化為 JavaScript,以此讓開發者克服 JavaScript 自身存在的一些短板。其中一些專案專註於給程式開發語言加入新的功能,比如微軟的 TypeScript,或是加快 JavaScript 的發展速度,例如 Mozilla 的 asm.js 專案。如今,眾多此類專案開始聯合起來,以 WebAssmbly 的形式出現在大家面前。
這種新的格式旨在讓程式開發人員為瀏覽器編譯程式碼(目前瀏覽器的專註點是 C/C++,其它語言的重要性次之),然後在 JavaScript 引擎內進行執行。由於不必解析完整的程式碼——這種作業往往會耗費相當長的一段時間(尤其是在行動端),因此 WebAssmbly 被解碼的速度可以大大加快。
WebAssmbly 團隊的想法是,這種新的二進位格式將向開發者提供單一的 Web 編譯目標,最終成為一種可在所有瀏覽器中執行的 Web 標準。
在默認環境下,JavaScript 檔案其實就是簡單的文本檔案,先是從伺服器下載,然後由瀏覽器中的 JavaScript 引擎解析並編譯。WebAssmbly 團隊之所以決定推出新的二進位格式,原因有兩個,一是程式碼可以被壓縮為其它的文本檔案,而不只有限於標準的 JavaScript 文本檔案,二是相比解析 asm.js 程式碼,JavaScript 引擎破譯二進位格式的速度要快得多——在當前的原型標準下,最多快了 23 倍。
長期以來,Mozilla asm.js 旨在將接近於本地的速度帶給 Web。而旨在在瀏覽器中執行本地程式碼的谷歌 Native Client 專案 ,也具有類似的目標,只是影響力相對較小。看起來,WebAssmbly 如今可以將這些專案中最好的元素融入瀏覽器。
作為第一步,WebAssmbly 團隊的目標是提供與 asm.js 相同的功能性,開發者將可以在 WebAssmbly 上面使用相同的 Emscripten 工具,就像他們今天使用這種工具編譯 asm.js 程式碼一樣。
在早期階段,WebAssmbly 團隊還排程推出一個所謂的 polyfill 庫 ,用以將 WebAssmbly 程式碼轉化為 JavaScript,這樣就能執行於任意瀏覽器上——甚至是沒有獲得本地 WebAssmbly 支援的瀏覽器上(很顯然,這有點荒謬,但如果瀏覽器可以在本地執行這種程式碼,那麼最後一步就不需要了)。隨?時間的推移,WebAssmbly 團隊還將開發更多的工具(比如編譯程式和除錯程式等),同時支援更多的語言(例如 Rust、Go 和 C#)。
正如「JavaScript 之父」 布蘭登·艾奇(BrendanEich)在今天所指出的,一旦主要的瀏覽器全都能在本地支援新的二進位格式,那麼 WebAssmbly 和 JavaScript 就可以再次分離。艾奇曾擔任過 Mozilla 首席執行官,但在任職 10 天後即被迫辭職。
WebAssmbly 團隊還指出,他們推出 WebAssmbly 不是為了取代 JavaScript,而是為了讓更多的語言可以支援 Web 編譯。實際上,JavaScript 和 WebAssembly 很有可能會被開發者同時使用,例如,某款應用的部分元素可能會使用 WebAssembly 模組(如動畫、視覺化和壓縮等),而使用者界面仍然可以主要使用 JavaScript 語言編寫。
我們很少看到所有主要的瀏覽器廠商攜手推出像 WebAssembly 這樣的專案,所以,他們的合作會帶來什麼樣的成果,肯定值得我們在未來幾個月乃至幾年保持關注。
題圖來源: 邁克爾·希姆比奧特(MICHAEL HIMBEAULT)/FLICKR,根據 CC BY 2.0 協定授權
翻譯:皓岳
Google, Microsoft,Mozilla And Others Team Up To Launch WebAssembly, A New Binary Format For The Web
想在手機查閱更多Javascript資訊?免費下載【香港矽谷】Android App
原文站台: TechCrunch 中?
分享到Facebook