2021年,我预测WebAssembly(有时被称为Wasm)将“帮助开发人员实现轻松的全球工作负载规模”以及“当今使用的主要包将被移植到WebAssembly并合并到JavaScript库中”。虽然现在宣布这些预测的胜利还为时过早,但我相信字节码又回来了,WebAssembly也会继续存在。那么,这对你来说意味着什么?

而WebAssembly则是出于对提高计算密集型浏览器应用程序的性能在美国,它能做的远不止这些。在实践中,开发人员至少有三种方法可以使用它来转换他们的产品和流程:

  1. WebAssembly将web开发从JavaScript的约束中解放出来.WebAssembly在主流浏览器上的普遍接受意味着非javascript代码可以被编译到任何地方运行。设计工具Figma就是一个很好的例子,它是用c++编写的,用Emscripten编译器编译成WebAssembly。这使得从桌面到浏览器的过渡更加顺利使Figma加载速度快了三倍.无论你是在构建一个新产品,还是试图把一个现有的产品带到网络上,你都可以写进去您可以选择多种语言放心吧,你的应用在所有主流浏览器上都能以接近本机的速度运行。
  2. WebAssembly加速您的服务器端功能和服务。WebAssembly虚拟机(vm)并不都需要浏览器。一些虚拟机在微秒内启动,与容器不同,它们可以作为沙箱中的单个进程运行。这使得它们非常适合运行无服务器功能。急剧的报告它可以在不到60微秒的时间内安装和拆除一个WebAssembly虚拟机,而传统容器则需要数百毫秒。
  3. WebAssembly支持可移植性和沙盒。尽管WebAssembly的设计是为了提高基于浏览器的应用程序的性能,并且在服务器端功能和服务方面也能很好地工作,但事实证明,许多场景都受益于平台中立性和沙盒安全性。我曾与一家秘密创业公司交谈,他们使用WebAssembly只是为了抽象底层硬件。这使得他们可以为每个体系结构创建一个单独的构建,而不是单独的构建。正如微软飞行模拟器软件开发工具包和Envoy的包过滤器所证明的那样,一个好的沙盒和可移植的字节码可以让任何应用程序接受任意的用户代码——即使执行任意的机器代码可能存在安全风险。

简而言之,WebAssembly可以使您的浏览器应用程序更快。但它还可以做更多的事情。要了解更多关于WebAssembly的知识,请参阅Forrester的文章WebAssembly:一场安静的革命而且WebAssembly Wisdom: Wasm向导的最佳实践

由研究助理扎卡里·斯通(Zachary Stone)合著