谷歌,微软,Mozilla组队启动WebAssembly,一种新的网页二进制格式

在着手WebKit项目的谷歌,微软,Mozilla和他们的工程师们,今天宣布他们已经联手推出WebAssembly,为Web编译应用程序的新的二进制格式。

 

网络蓬勃发展是基于一个标准,不论好坏,JavaScript是它的编程语言。然而多年来,我们看到越来越多的人努力在帮助开发人员解决一些JavaScript的限制,通过建立把其他语言转译成JavaScript的编译器。其中的一些项目关注增加语言的新功能(如微软的TypeScript),或加速JavaScript(如Mozilla的asm.js项目)。现在,许多项目已经开始通过WebAssmbly的形式走到一起。

新格式的目的是让程序员编写浏览器的代码(目前的主要是C / C ++,还有其他一些语言),它是在JavaScript引擎内部执行。它不必解析完整的代码,这往往需要相当长的时间(特别是在手机),WebAssembly可以显得加快解码。

WebAssembly将为开发者提供一个单一的网页编译目标,最终将成为所有浏览器使用的Web标准。

 

默认情况下,JavaScript文件是从服务器下载的文本文件,通过在浏览器中的JavaScript引擎解析和编译。WebAssembly团队决定采用二进制格式,因为该代码可以被压缩的程度可以超过标准的JavaScript的文本文件,因为它的引擎解码二进制格式的速度比分析ASM的.js代码更快(快达23倍,在目前的原型) 。

 

Mozilla的asm.js长期以来目标是使接近原生的速度带到网上。谷歌的本地客户端(Native Client)项目在浏览器中运行的本地代码也有类似的目标,但得到了相对较少的支持。这样看来,WebAssemly也许能带到浏览器这些项目的最佳。

 

作为第一个步骤,WebAssembly团队旨在提供同asm.js差不多的功能(这样开发人员将能够像使用Emscripten工具来编译asm.js代码一样,使用相同的工具到WebAssembly)。

 

在这个早期阶段,团队还计划推出一个所谓的polyfill库,将转化WebAssembly代码为JavaScript,以便它可以在任何浏览器中运行 – 即使是那些没有原生WebAssembly支持(这显然有点荒唐,但当浏览器可以本地运行该代码时,最后一步将不再需要)。随着时间的推移,团队将建设更多的工具(编译器,调试器等),并添加更多的语言支持(Rust,Go和C#等)。

 

由于JavaScript的发明者(兼短期的Mozilla CEO)Brendan Eich今天指出,一旦主浏览器都本地支持新格式,JavaScript和WebAssembly将能够再次分开。

 

该团队指出,他们的想法不是要取代JavaScript,而是让更多的语言为Web编译。实际上,很有可能JavaScript和WebAssembly将共同被使用,一些应用的某些部分可以使用WebAssembly模块(动画,可视化,压缩等),而用户界面将仍然大多由JavaScript编写。

 

我们看到所有主要的浏览器厂商在这样一个项目合作是很难得的,所以在未来几个月甚至几年,这是肯定值得关注的。

 

 


Posted

in

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *