前言
对于WebAssembly和整个Web来说,这是一个非常重要的正式步骤,尽管它可能最终导致JavaScript变得不那么重要,因为像Rust、Go和c#这样的语言开始通过编译为WebAssembly直接针对浏览器。
万维网联盟(W3C)最近宣布,WebAssembly核心规范现在是正式的Web标准。继HTML、CSS和JavaScript之后,WebAssembly正式成为第四个在浏览器中本地运行的语言。WebAssembly核心规范将WebAssembly描述为一种安全、可移植、低层次的代码格式,旨在高效执行和紧凑表示。WebAssembly追求硬件独立、语言独立和平台独立。因此,WebAssembly可以针对所有现代架构、桌面或移动设备以及嵌入式系统。WebAssembly程序可以嵌入到浏览器中,可以作为独立的VM运行,也可以集成到其他环境中。为了包含各种用例,WebAssembly规范被分割并分层为几个文档。核心规范涉及WebAssembly JS接口,它提供了与WebAssembly交互的显式JavaScript API,以及WebAssembly Web API,它侧重于WebAssembly与更广泛的Web平台的集成。WebAssembly的核心是虚拟指令集体系结构(ISA)。因此,核心规范处理了WebAssembly的核心ISA层,定义了指令集、二进制编码、验证和执行语义,以及文本表示。W3C项目负责人Philippe Le Hegaret解释了WebAssembly的潜力:WebAssembly的到来扩展了仅通过使用开放Web平台技术就可以实现的应用程序的范围。在一个机器学习和人工智能变得越来越普遍的世界里,在不损害用户安全的前提下,在Web上启用高性能应用程序是很重要的。
WebAssembly在野外的使用可以在一些实用软件中观察到,如谷歌Earth port、图标游戏(如Doom3)、沉重的桌面应用程序(如游戏编辑器)或设计工具(如Figma)。Agora的高级建筑师高春分享了他对这项技术的热情:WebAssembly使得在Web上提供强大的计算能力成为可能。它将极大地扩展Web应用程序的应用场景,并迅速增加开发计算密集型应用程序的机会,包括实时视频/音频处理、硬核游戏和基于Web技术的AI。作为RTC服务提供商,Agora致力于提供实时性能更好的服务。我们发布了基于WebAssembly的产品,提高了视频流处理的性能和兼容性。我们相信WebAssembly将是Web开发人员实现高性能Web应用程序的最重要的选择。
随着1.0规范的发布,WebAssembly的未来版本已经准备就绪,包括线程、固定宽度SIMD、引用类型、尾调用或ECMAScript模块集成等功能。万维网联盟(W3C)的使命是通过创建技术标准和指导方针来充分发挥万维网的潜力,以确保万维网对全球所有人都保持开放、可访问和可互操作。W3C由美国麻省理工学院计算机科学与人工智能实验室(MIT CSAIL)、总部位于法国的欧洲信息与数学研究联盟(ERCIM)、日本庆应义塾大学和中国的北航大学联合主办。W3C中国
2019年12月5日,W3C WebAssembly 工作组发布 WebAssembly 正式推荐标准(W3C Recommendation),为 Web 带来一种支持代码在浏览器中运行的新语言。WebAssembly Core Specification 定义了一个底层虚拟机,模拟运行该虚拟机的许多微处理器的功能。通过即时编译或解析,WebAssembly 引擎可以接近原生平台的速度执行代码编译。.wasm 资源类似于 Java .class 文件,它包含静态数据和对该静态数据进行操作的代码段。与 Java 不同,WebAssembly 通常是由其他编程语言(如C/C++ 和 Rust)作为编译目标而生成的。WebAssembly Web API 定义了一个基于 Promise 的接口,用于请求和执行 .wasm 资源。.wasm 资源的结构经过优化,允许在检索整个资源之前开始执行,这进一步增强了 WebAssembly 应用程序的响应能力。WebAssembly JavaScript Interface 提供了一个 JavaScript 接口,用于调用并将参数传递给 WebAssembly 函数。在 Web 浏览器中,WebAssembly 与主机环境的交互都通过 JavaScript 进行管理,这意味着 WebAssembly 依托 JavaScript 高度精心设计的安全模型。WebAssembly 是为高效执行和紧凑表示而设计的运行在现代处理器(包括浏览器)中的一种快速、安全、可移植的底层代码格式。该技术使 Web 平台能够更有效地执行计算精确型算法,这使全新的用户体验类别变得切实可行。由于 WebAssenbly 是与平台无关的执行环境,因此它也可以用于任何其他计算机平台。关于本文
作者:@Bruno Couriol
原文:https://www.infoq.com/news/2019/12/webassembly-w3c-recommendation/http://www.chinaw3c.org/archives/2429/❤️ 看完两件事
如果你觉得这篇内容对你有所帮助,我想邀请你帮我两个小忙:- 点个「
在看
」,让更多的人也能看到这篇内容(喜欢不点在看,都是耍流氓 -_-) - 关注公众号「IT平头哥联盟」,一起进步,一起成长!
推荐阅读:
Google Chrome 正在走 Windows 的老路