webassembly 组件模型为wasm和网络之间架起了一座桥梁

WebAssembly组件模型提案给Wasm和网络之间架起了一座桥梁,试图让这两个领域不再那么割裂。作为一种架构,它提供了一种方法,让开发人员可以构建彼此交互良好的Wasm库、应用程序和环境,从而有望把Wasm从目前那个“被边缘化的网络语言”的地位中解放出来。 Ryan Hunt是Mozilla的软件工程师,他在2017年的一篇博客里对这一现状表示了担忧。他提到,尽管Wasm在2017年问世后加入了共享内存、异常处理和批量内存指令这些功能,但它在更大范围内被接受依然受阻。 Hunt认为原因很多,核心问题在于Wasm没能真正融入网络生态。就像他在2月26日那篇文章里写的那样,开发者体验太差是个大问题。因为开发者只会在万不得已的情况下才会选择Wasm,而JavaScript反而因为加载快、用着方便成了一等语言。 Hunt指出,Wasm和网络的松散连接导致了这种局面。很多时候,JavaScript更简单好用。这样一来,只有那些资源雄厚、能证明投资值得的大公司才会用Wasm,把它的好处局限在了很小一部分开发者手里。 为了解决这个问题,Mozilla正在和WebAssembly社区组一起设计一个全新的模型。Google也在考虑这个提议。Ryan Hunt在文章中说,这个组件模型会为Wasm带来关键能力:标准化的自包含构件、支持多语言和工具链、处理加载链接问题以及用好Web API。 Hunt强调,组件定义了一个高级API,而底层的实现则由一套低级Wasm代码来完成。他还补充道,标准编译器生成的二进制文件通常不能直接在网络上运行。 Hunt还回答了几个关于这个模型的问题。比如在AQ1中提到:WebAssembly组件模型是一种构建互操作架构的方式。它旨在通过标准化自包含构件、多语言支持、代码加载处理等手段来改善Wasm与网络平台的集成。 关于AQ2的问题:因为它和网络平台集成不够紧密,开发者体验差,所以Wasm被称为二等语言。相比之下JavaScript更占优势。 至于AQ3:这个模型能解决松散集成问题,提供更好体验让Wasm不再那么复杂。它有望通过标准化架构让Wasm不再边缘化。