@levinzhang
2017-12-15T08:25:04.000000Z
字数 1317
阅读 591
by
随着9月19日Safari和10月31日Edge的发布,苹果与微软加入了谷歌和Mozilla,在生成环境中提供了对WebAssembly的支持。这四家公司的浏览器都能运行编译为wasm二进制格式的代码。
随着9月19日Safari和10月31日Edge的发布,苹果与微软加入了谷歌和Mozilla,在生成环境浏览器中提供了对WebAssembly的支持。这四家公司的浏览器都能运行编译为wasm二进制格式的代码。
Safari支持WebAssembly的第一个版本是11,而Edge的版本是16。Firefox是第一个发布支持WebAssembly功能的主流浏览器,是于2017年3月7日发布的52号版本,Chrome紧随其后,在2017年3月9日发布的57号版本中包含了对WebAssembly。通过使用其他的高级工具,开发人员能够以wasm二进制格式来交付代码,并且可以预期它能够支持大多数的终端用户。
从2017年3月31日各个主要的浏览器厂商就v1版本的规范达成共识以来,WebAssembly已经取得了巨大的进步。不仅在所有的浏览器中都得到了实现,而且其编译工具链已经开始成熟,现在已经有人尝试将WebAssembly集成到像webpack这样更加标准的Web开发工具中。
webassembly.org推荐的编译WebAssembly的工具链是Emscripten。网站上有一个快速的开发人员指南,MDN上还有更多深入的文档。这个工具链目前可以编译C、C++或Rust,它首先将代码编译为LLVM字节码,然后将其转换为asm.js,最后使用asm2wasm编译工具,此时该工具用到了 WebAssembly二进制工具集。通过wasm后端直接实现对纯LLVM编译的支持目前正在进行之中并且正在逐渐成熟,在11月20日的一次pull request合并中,Rust成为了第一个使用它的语言。
在传统的Web开发工具方面,发展也是很迅速的。Webpack得到了Mozilla的一个授权,将WebAssembly作为第一等的模块类型。webpack团队相信让WebAssembly更容易地集成到真正的生产环境中会推动WebAssembly的实际采用。webpack核心团队的Sean Larkin这样说:
如果开发人员、业务以及公司不能无缝地将其应用于生产环境,WebAssembly不会进步、发展和演进。我们感觉webpack能够让人们更容易地使用该技术,并促进它的广泛采用。
随着工具链的改善和更多的支持,行业在迅速地将web assembly集成到各种领域之中。Mozilla最近的声明宣布wasm得到了广泛的支持,所涵盖的范围从计算机视觉到语言探测,以及方方面面。Mozilla的工程师Luke Wagner说:
现在,我们看到人们将WebAssembly用到了各种类型的新项目之中。所以,这意味着,最终会有一天我们将在Web上运行大多数的程序,其效果就像现在在本地PC上运行那样。