WASM(WebAssembly) 最近的热度挺高的,本来想了解下这个技术,看了好多介绍,开头必谈 Docker 创始人 Solomon Hykes 的一条推文:lf WASM+WASI existed in 2008, we wouldn't haveneeded to created Docker. That's how important it is.Webassembly on the server is the future of computing. (如果 WASM 和 WASI 早在 2008 年就存在,那么我们就不需要创建 Docker。可见 Wasm 是多么重要。服务器上的 WebAssembly 将会是“计算”的未来模式。)
但是大多数的文章只提到了上面的内容,要知道“要断章取义”取自于“不要断章取义”,这个推文还有下面一句:A standardized system interface was the missing link. Let's hope WASl is up to the task! (而现在的问题是缺少标准化的系统接口。希望 WASI 能够胜任这项工作!)
当然作者不是再次贬低 WASM,而是觉得技术布道者还是要客观一点,一个新技术对于初学者所在的业务领域是否适用是非常重要的,不能为了扩大生态“鼓吹”技术。所以在这里阐释下个人对 WASM 的理解。
简单一句话:解决 JavaScript 的性能问题。
并且在此之前有 Google 的 V8 引擎,WASM 最初也是为了让浏览器可以做一些密集计算的工作,但是后来又有了从浏览器中剥离出来的 WASM 运行时(沙盒),所以又给 WASM 加了很多的标签:跨语言、跨平台、轻量级、安全。然后 WASM 的应用领域又拓展到serverless、IoT、微内核、甚至新的云容器标准(替代 containerd)。
一个很简单的道理:天下没有免费的午餐。当强调一个东西很轻量级时,那么对应的是功能有限;当强调一个技术很安全时,那表示这项技术应用场景也是很有限的。正如 Solomon Hykes 的后面一句:这一切都取决于 WASI,WASM 能做到什么程度还是取决于提供的系统接口。
如果将 WASM 比喻成一个很安全的房子,那么 WASI 就是这个房子的窗户,当窗户很少时,这个房子就比较安全,但是从这个房子看到外面的东西也很有限,当不断增加窗户时,安全系数必然会跟着降低,同理,房子的结构(轻量级)也会变得复杂(失去轻量级的优势)。
这里等于说句废话:因地制宜,技术再好还是要合适。目前了解到 WASM 的一些优秀应用:
还有更多,本人了解有限...
再次强调该文章不是贬低 WASM,对待技术还是实事求是、避免形而上学。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。