WebAssembly组件模型是一种用于构建可互操作的WebAssembly库、应用程序和环境的架构,被认为是将Wasm从当前"网络二等语言"地位提升的重要方案。
根据Mozilla软件工程师Ryan Hunt在2月26日发布的博客文章,自2021年开始开发的WebAssembly组件模型将为WebAssembly提供关键能力,这些能力包括:
标准化的自包含可执行构件
多种语言和工具链的支持
WebAssembly代码的加载和链接处理
Web API使用支持
Hunt解释说,WebAssembly组件定义了一个高级API,该API通过一组低级Wasm代码实现。"就目前情况而言,我们认为WebAssembly组件将是网络发展的正确方向,"他写道。
据Hunt介绍,Mozilla正在与WebAssembly社区组合作设计WebAssembly组件模型,Google也在评估该模型。在他的文章中,Hunt认为尽管WebAssembly自2017年推出以来增加了共享内存、异常处理和批量内存指令等功能,但在更广泛的网络采用方面仍然受到阻碍。"造成这种情况的原因很多,但核心问题是WebAssembly在网络上是一种二等语言,"Hunt写道。"尽管有了所有这些新的语言特性,WebAssembly仍然没有与网络平台紧密集成。"
WebAssembly被定位为提升网络应用程序性能的二进制格式,它也可以作为其他语言的编译目标。但Hunt认为,WebAssembly与网络的松散集成导致开发者体验较差,开发者只有在绝对需要时才会使用它。
"很多时候,Java更简单且足够好用,"Hunt说。"这意味着Wasm用户往往是有足够资源来证明投资合理性的大公司,这将WebAssembly的益处限制在更大网络社区的一小部分,"他写道。Hunt写道,Java在加载代码和使用Web API方面具有优势,这使其成为网络上的一等语言,而WebAssembly则不是。他认为,如果没有组件模型,WebAssembly对于网络使用来说太复杂了。他还补充说,标准编译器不会生成在网络上运行的WebAssembly。
Q&A
Q1:WebAssembly组件模型是什么?
A:WebAssembly组件模型是一种用于构建可互操作的WebAssembly库、应用程序和环境的架构。它旨在通过提供标准化的自包含可执行构件、多语言支持、代码加载链接处理和Web API使用支持等关键能力,来改善WebAssembly与网络平台的集成。
Q2:为什么说WebAssembly是网络上的二等语言?
A:WebAssembly被称为二等语言是因为它与网络平台的集成不够紧密,导致开发者体验较差。相比之下,Java在加载代码和使用Web API方面具有优势,成为网络上的一等语言。开发者通常只有在绝对必要时才会使用WebAssembly。
Q3:WebAssembly组件模型能解决什么问题?
A:该模型能解决WebAssembly与网络平台松散集成的问题,提供更好的开发者体验,使WebAssembly不再过于复杂。通过标准化组件架构,它有望让WebAssembly从当前的二等地位提升,扩大其在网络社区中的采用范围。
下一篇:没有了