开源意识流

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

WASM仍无法满足开发者


By Forsaken

据云原生基金会 CNCF 近期的一项关于 WASM 的微调查显示,Web 开发的多变性仍使得开发者在技术层面无法满足。

尽管 WASM 早在 2017 年就正式发布,调查显示该项技术仍然显得过于超前,压倒性数目的开发者仍然如饥似渴地期望 WASM 能够有更成熟的工具和稳定的生态体验——这意味着 WASM 这个美女仍然属于追求者众多然而难以娶回家的状态。

就设计而言,WASM 属于 Stack-based VM,设计目标是便于移植编译后的目标代码,支持静态编译型的语言如 C/C++/Rust 等应用能够以接近原生(实际效果并没那么理想)的性能运行于浏览器上,并且同时增强了 Javascript 的特性。设计野心很大,试图统一客户端和服务器端的开发。

然而计算机历史上许多失败的项目都是因为“想多了”,最典型的就是 Multics,啥都想要,既要特性多,又要确保性能。直到 Unix 横空出世,人们才明白,真正的设计之道,是不要想多了,要 KISS。

从 CNCF 的微调查可以得出一些结论,首先野心勃勃的 WASM 被定位成了小众(niche),其次相关工具欠缺大量特性且难用,直接吓退了生产环境的尝鲜者。

靠脚趾头想也能知道,当调查显示三成用户认为“缺乏足够技能掌握它”的时候,这东西的设计理念可能就出问题了。更何况近半用户表示所需要的工具根本不存在,甚至标准都不清晰(这属于生态建设问题)。最后还得靠大量的定制化代码才能真正用起来的时候(这说明缺乏方法论),开发者除了崩溃还能干什么?


可是,如果仅此而已,那么直接把 WASM 扫入历史垃圾堆也就可以了。关键问题在于用户真的需要它,并且期望它能解决问题。

WASM 的服务端需求接近 42%,有 63% 的用户表示希望把应用程序移植到 WASM,有 73% 的用户希望 WASM 作为沙盒来解决安全问题,还有过半用户希望在边缘计算中使用 WASM。

由此可见,WASM 不是不好,它只是不够好,问题在于,这种“想多了”的设计理念究竟能不能帮助它最终在产业环境完成交付,兑现它所存在的意义。