万维网联盟(World Wide Web Consortium,W3C)最近宣布,WebAssembly核心规范成为了正式的 Web 标准。因此,继 HTML、CSS 和 JavaScript 之后,WebAssembly 正式成为第四个在浏览器中可原生运行的语言。
WebAssembly 核心规范将 WebAssembly 描述为安全的、可移植的、低层次的代码格式,旨在高效执行和紧凑化的表述。WebAssembly 追求硬件独立、语言独立和平台独立。因此,WebAssembly 可以面向所有的现代架构,包括桌面或移动设备,以及嵌入式系统。WebAssembly 程序可以嵌入到浏览器中,可以作为独立的 VM 运行,也可以集成到其他的环境中。
为了拥抱各种使用场景,WebAssembly 规范进行了分割和分层,拆分成了多个文档。核心规范涉及WebAssembly JS接口和WebAssembly Web API,前者提供了显式 JavaScript API,用来和 WebAssembly 进行交互,而后者主要关注将 WebAssembly 与更广泛的 Web 平台集成。
WebAssembly 的核心是一个虚拟指令集架构(instruction set architecture,ISA)。因此,核心规范解决了 WebAssembly 的核心 ISA 层的问题,定义了指令集、二进制编码、校验和执行语义,以及文本表述。
W3C 的项目负责人 Philippe Le Hégaret 这样阐述 WebAssembly 的潜力:
之前的应用只能使用开放 Web 平台(Open Web Platform)技术,WebAssembly 的到来扩展了它们所能达到的范围。在当今的世界中,机器学习和人工智能变得越来越常见,在不损害用户安全性的同时,在 Web 上实现高性能的应用是非常重要的。
我们可以看到,WebAssembly 已经初步用到了一些工具软件(比如Google Earth port)、游戏(比如Doom3)、重量级的桌面应用程序(game editors)或设计工具(Figma)中。
Agora 的高级架构师 Chun Gao 分享了他对这项技术的热情:
WebAssembly 使得在 Web 上提供强大的计算能力成为可能。它将极大地扩展 Web 应用程序的应用场景,并迅速增加开发计算密集型应用的机会,包括实施音频/视频处理、硬核游戏以及基于 Web 技术的 AI。作为 RTC 服务的提供商,Agora 致力于交付实时性能更好的服务。我们发布了基于 WebAssembly 的产品,提升了视频流处理的性能和兼容性。我们相信,对于实现高性能 Web 应用程序的 Web 开发人员来说,WebAssembly 将是最重要的可选方案。
随着 1.0 规范的发布,WebAssembly 未来版本的工作也已经开始着手了,包括了线程、固定宽度SIMD、引用类型、尾调用和ECMAScript模块集成等特性。
万维网联盟(Wide Web Consortium,W3C)的使命是通过创建技术标准和指南来充分发挥 Web 的潜力,以确保 Web 对全球所有人都保持开放性、可访问性和可互操作性。W3C 由美国麻省理工学院计算机科学与人工智能实验室(MIT CSAIL)、总部位于法国的欧洲信息与数学研究联盟(ERCIM)、日本庆应大学和中国的北京航空航天大学联合运营。
原文链接:
WebAssembly 1.0 Becomes a W3C Recommendation and the Fourth Language to Run Natively in Browsers
评论