继 HTML、CSS 和 JavaScript 之后,WebAssembly 正式成为 Web 的第四种语言

3,695 阅读7分钟

作者:W3C 新闻稿

翻译:疯狂的技术宅

原文:www.w3.org/2019/12/pre…

webassembly 黑白 logo

万维网联盟(W3C)2019年12月5日宣布,WebAssembly 核心规范 现在是一种正式的 Web 标准,它为 Web 发布了一种功能强大的新语言。 WebAssembly 是一种安全、可移植的低级格式,能够在现代处理器(包括 Web 浏览器)中高效执行并紧凑地表示代码。

WebAssembly 的到来扩展了仅仅用开放的 Web 平台技术就可以实现的应用程序的范围。在当今机器学习和人工智能越来越普遍的世界中,重要的是在不损害用户安全性的情况下在 Web 上运行高性能程序。” ——W3C 项目负责人 Philippe LeHégaret 。

依赖低层基础架构的高性能应用程序

WebAssembly 的核心是一种虚拟指令集体系结构,可在 Web 上运行高性能应用程序,并可在其他许多环境中使用。 WebAssembly 的实现有多种,包括浏览器和独立系统。 WebAssembly 可用于视频和音频编解码器,图形和 3D,多媒体和游戏,密码计算或便携式语言实现等领域。

WebAssembly 增强 Web 性能

WebAssembly 是虚拟机和执行环境,可以让加载的页面作为本机编译代码运行,从而提高了 Web 性能和功耗。换句话说,WebAssembly 可以实现接近本机的性能以及优化的加载时间,并且最重要的是可以为现有的代码库提供编译目标。

尽管本机类型的数量很少,但相对于 JavaScript 而言,性能的提高大部分归功于其对一致类型的使用。 WebAssembly 对编译语言进行了几十倍的优化,针对其字节码的紧凑性和流传输进行了优化。在下载其余代码时,网页就可以开始执行。网络与 API 访问通过随附的 JavaScript 库进行。它的安全模型与 JavaScript 相同。

未来版本已经在开发中

负责收集需求和开发语言的 WebAssembly Working GroupCommunity Group 已经为该标准的未来版本开发了一系列功能,其中包括:

  • 线程

线程提供了共享内存多线程和原子内存访问的诸多好处。

  • Fixed-width SIMD

并行执行循环中的向量操作。

  • 引用类型

允许 WebAssembly 代码直接引用宿主对象。

  • 尾调用

能够使用额外的栈空间去调用函数。

  • ECMAScript 模块集成

通过将 WebAssembly 可执行文件加载为 ES6 模块来与 JavaScript 进行交互。

还有许多其他的长期项目,其中包括一些提高 WebAssembly 可用性的项目。例如垃圾收集、调试接口和 WebAssembly 系统接口(WASI),这是用于底层系统功能(如文件和网络访问)的一组模块。

WebAssembly 加入了许多 W3C 标准,这些标准定义了用于应用开发的开放 Web 平台,使开发人员能够构建可在任何设备上使用的强大交互体验,并且潜力巨大。

关于万维网联盟

万维网联盟(W3C)的使命是通过创建技术标准和准则来确保 Web 对全世界保持开放、可访问和可互操作的能力,从而发挥 Web 的全部潜力。 HTML 和 CSS 这种构建网站的基础技术就是 W3C 众所周知的标准。 W3C 致力于确保所有基础 Web 技术在可访问性、国际化、安全性和隐私性等领域满足社会的需求。 W3C 还为利用 Web 的现代企业提供基础设施的标准,如娱乐、通信、数字出版和金融服务等领域。这项工作是根据公开的 W3C 专利政策免费公开提供的。由于 W3C 使在线视频更容易使用字幕和提示而获得了 2016 年度的艾美奖。由于其在 Web 上标准化全电视体验的工作,W3C 获得了 2019 年度的艾美奖。

W3C 对 "One Web" 的愿景汇集了代表400多家会员组织和几十个行业部门的数千名专业技术人员。 W3C 由美国MIT计算机科学和人工智能实验室(MIT CSAIL),总部位于法国的欧洲信息学和数学研究联盟(ERCIM),日本的 Keio 大学和中国的北京航空航天大学等共同主持。有关更多信息,请参见 www.w3.org/。

End Press Release 结束新闻稿


来自W3C会员的推荐

360

"WebAssembly 规范的推出,进一步拓展了 Web 技术的应用 场景,让以往无法想象的应用成为可能,也为开发社区提供了更多选择, 为提升用户体验提供了技术保障。WebAssembly 标准的正式发布,让 Web 技术社区不再满足于浅尝辄止的保守应用,终于可以大胆地将其作为一个 正式的选型方案,这也势必会大力推进相应行业场景的发展。期待在 WebAssembly 标准化的推进过程中看到更多的 WASM 应用大放异彩。 "

胡尊杰,360 奇舞团 Web 前端技术经理

阿里巴巴集团

“阿里巴巴很高兴看到 WebAssembly 最终成为 W3C 建议书。我们希望这一新标准可以引发开发者社区的更多创新,并丰富 Web 的功能和体验。”

阿里巴巴集团 W3C 顾问委员会成员,标准化部总经理 朱宏如(Judy)

Agora.io

“WebAssembly 使得在 Web 上提供强大的计算功能成为可能。它将极大地扩展 Web Apps 的应用场景,并迅速增加使用Web技术开发包括实时视频/音频处理,硬核游戏和 AI 在内的计算密集型应用的机会。 作为RTC服务提供商,Agora 致力于提供具有更好实时性能的服务,我们已经发布了基于 WebAssembly 的产品,可以增强视频流处理的性能和兼容性,我们认为 WebAssembly 将是供 Web开发人员实施高性能Web Apps 的最重要的选择。”

Chun Gao,Agora 高级架构师

百度

" 热烈祝贺 WebAssembly 标准正式发布!百度一直是 W3C 的坚定支持者和参与者、贡献者和先行者,在 WebAssembly 的 runtime 平台技术、小程序小游戏和区块链技术等各个方面都有不错的应 用。随着标准的发布,我们将继续联合产业同仁一起打造开放、平等、协 作、分享的 Web 新生态。也期待 WebAssembly 标准能为 Web 新生态的繁 荣注入全新动力!"

吴萍,百度 App 主任架构师

华为

“祝贺 WebAssembly 的这一新里程碑。我们认为这是一项非常有前途的技术——它提高了 Web 的性能,并且充当了 Web 和非 Web 平台之间的桥梁。我们期待在实践中更多地采用 WebAssembly。 ”

于志强,华为 W3C 咨询委员会代表

腾讯

" Web 的能力越来越强,承载的业务越来越复杂,需要的 计算能力也越来越高。随着 WebAssembly 技术飞速发展,我们终于迎来了 WebAssembly 标准的正式发布。2008 年我们迎来了 Web 性能的第一次飞 跃 JIT 技术,如今 WebAssembly 将再一次大幅提升 Web 性能。我们得以 将更多桌面端的软件高效地移植到 Web,同时也可以在 Web 中使用 C/C++、Rust、Go 来优化需要大量计算的模块。WebAssembly 技术日益成 熟,将促进更多的应用从桌面延伸到 Web,这将赋予本就十分强大的 Web 更加丰富的功能!"

于涛,腾讯技术总监,Alloyteam 负责人

小米

" WebAssembly 的标准化为 Web 技术的发展奠定了坚实 的基础,极大地扩展了 Web 应用的边界,解决了传统应用的可移植性问题, 提升了 Web 应用性能。 作为 W3C 会员,小米将继续支持和探索 WebAssembly 标准的落地应用,包括在浏览器、小游戏等重要场景支持 WebAssembly 。未来小米将持续在业务场景中进一步支持 WebAssembly 的 标准化发展。"

周珏嘉,小米集团技术委员会技术总监

欢迎关注前端公众号:前端先锋,免费领取webpack从入门到进阶全系列教程。