开源意识流

观点与事件:科技、开源、商业化

WASM运行时扎堆为哪般?


By Forsaken

虽然 WASM 尚未在生产环境大行其道,但丝毫不妨碍一些信心人士对其加大投入。自从有了 WASI,各种 WASM Runtime 便层出不穷,其实就是各种不同的 VM 实现。至于为什么大家都跑去写 WASM VM,原因之一可能是因为 VM 比优化编译器好写,如果你写过的话——当然也看跟谁比。

至于更深层的原因,似乎是一部分信心人士试图把 JS 生态搬运到各个领域,比如服务器后端、嵌入式、Web3 等等。直接让 VM 作为机器抽象而替代原先的运行环境,就不用重新实现各种库,也就不用去写优化解释器/编译器了,这听起来似乎还是跟前述同样的原因。

不过呢,WASM 不只是能提速 Web JS,还可以作为编译器后端存在,让更多语言能够直接进入 Web 前端的开发,也可以把 WASM 直接作为业务容器而替代系统容器(如 docker 或 Qemu VM),这在云原生层面就更为轻量级

问题在于,可以做 vs 适合做。前端是不是非要用 Python 写 WebUI 尚有待商榷,但是后端如果非要用 WASM 而不是 nodejs,似乎是在搞事。当然,嵌入式设备的各种新运行时还打得不可开交,判定 WASM 是否胜出还为时过早,但是把宝押在一个出身 WebUI 的东西,会不会想太多?