- 出版信息:2025 年 6 月 30 日,《ACM Queue》第 23 卷第 3 期,可通过具体链接查看,可下载 PDF 版本具体链接。
- 作者及背景:Andy Wingo 是 20 年行业老兵,专长编译器,是 Firefox 和 Chrome 中 JavaScript 和 WebAssembly 实现的贡献者,共同维护广泛部署的 Guile Scheme 实现。
WebAssembly 相关内容:
- Web 相关:WebAssembly 今年 10 岁,在网页上的应用喜忧参半。从 asm.js 发展而来,早期在 3D 游戏领域有过成绩但未被游戏行业广泛采用,在 Adobe 的 Photoshop 等应用的网页版中有成功案例,但仍存在启动时间等挑战,作为网页组件部分在 SQLite 等方面取得持久成功,多以 C++或 Rust 为源语言,早期 Wasm 存在 GC 限制,现已有新发展允许源语言使用 Wasm 运行时的垃圾收集器,Google Sheets 是突出的 WasmGC 部署案例,社交因素使 JavaScript 和 TypeScript 在网页开发中仍占优势,但技术基础已为其他语言社区提供机会。
- 非 Web 相关:WebAssembly 与网络本身关系不大,其利益相关者已扩展到非浏览器用例,包括临时组合/插件、轻量级虚拟化、组件模型。临时组合如 RLBox 用于 Firefox 链接不安全的 C 或 C++库,轻量级虚拟化如 WALI 用于编译应用为 Wasm 并实现虚拟化,组件模型旨在定义更高层次的组件概念,以解决 Wasm 自身表达性过强的问题,支持插件式用例如 Shopify。
- 云相关:组件模型在云领域最为活跃,多个公司基于此提供服务,旨在利用 Wasm 启动快的特点,减少冷启动时间,实现有用的边缘计算,组件模型提供了共享词汇、期望和开源生态系统,虽仍处于前沿技术阶段,但有机会取得成功。
- 成功模式总结:WebAssembly 在将大型 C 和 C++桌面应用重定向到网页以及将 C 和 C++组件放到网页上表现良好,在游戏领域未获成功,在用户界面方面 JavaScript 和 TypeScript 更适用,对于插件和扩展用例,若主机需要与访客隔离,Wasm 是好选择,组件模型有望在桥接 API 和 ABI 语义差距方面取得成功,云 Wasm 领域仍在发展中。
- 未来展望:可寻找现有可扩展的安全关键程序作为新的 Wasm 栖息地,如操作系统内核、可能的 Wasm 操作系统等,Wasm 可用于在敏感个人数据上进行可信和保密计算。
- 相关文章推荐:Conrad Watt 的《Concurrency in WebAssembly》讨论了编译到 Wasm 时的并发问题;Daniel Ehrenberg 的《When Is WebAssembly Going to Get DOM Support?》探讨了 WebAssembly 获取 DOM 支持的问题;Ben Titzer 的《WebAssembly: How Low Can a Bytecode Go?》介绍了 Wasm 的发展和应用;Shylaja Nukala 和 Vivek Rau 的《Why SRE Documents Matter》阐述了 SRE 文档的重要性。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。