我们周围的技术瞬息万变——您可能听说过 WebAssembly(简称 Wasm)在开发人员和技术爱好者中掀起波澜。 但是 WebAssembly 到底是什么?它有什么重要性值得你关注? 让我们开始吧。
从根本上来说,WebAssembly 是一个二进制指令集。 它与您可能听说过的汇编语言类似,如 x86 或 ARM,但具有一些新的特性和安全保障。 您可以使用 C 或 Rust 等编程语言编写代码,该代码可以编译成 WebAssembly 工件。 由于 Wasm 最初是为 Web 创建的,因此其主要吸引力在于您可以以接近原生的速度在 Web 上运行高性能应用,尽管如今 WebAssembly 在浏览器之外也得到了广泛的应用。
Wasm 与其他编译器目标的不同之处在于它的可移植性。 只要有运行时,WebAssembly 代码就可以在任何平台上运行,无论底层架构如何。 这意味着开发人员只需编写一次代码,即可在任何地方运行——无论是在 Windows、macOS、Linux、移动操作系统、浏览器,甚至是灯泡上。
安全绝对是至关重要的,特别是在我们今天生活的数字世界中。 因此,WebAssembly 的创建以安全性作为核心设计目标。 让我们花点时间来思考一下网络浏览器的作用。 当您访问网页时,您的浏览器会下载未知的、不受信任的代码并执行它——如果您真正考虑一下,就会发现这非常可怕。 浏览器的职责是保护您和您的设备免受恶意代码的侵害,而 WebAssembly 中内置的正是这种理念:
WebAssembly 的设计目标是速度快。 与 JavaScript 相比,Wasm 代码甚至可以在 JavaScript 代码被解析之前就被解码并开始执行。 它在浏览器中实现了新的体验,同时还凭借其可移植性和安全性保障在浏览器之外提供了近乎原生的性能。
这根本不是关于替代 JavaScript。 这两种技术是互补的,旨在相互配合而不是竞争。 JavaScript 对于 Web 应用程序的动态和交互部分仍然是必需的,而 Wasm 更多地用于计算量大的任务。
由于 WebAssembly 代码在运行时执行,因此很容易将其放入现有应用中 - 无论是 Web应用还是在边缘或服务器上运行的应用。 这使得您可以使用几乎任何语言编写的代码甚至来自第三方的不受信任的代码来扩展您的应用。 这使得 WebAssembly 非常适合插件系统,因为您可以在应用中安全地运行社区成员或客户提供的代码。 WebAssembly 的强大安全模型使这一切成为可能。
WebAssembly 在无服务器计算领域引起了巨大轰动。 与容器相比,Wasm 模块非常小——生成的大多数模块都是以千字节或个位数兆字节为单位,而容器的大小很容易达到数百兆字节或几千兆字节。 除了存储大小之外,Wasm 还解决了著名的“冷启动”问题——Wasm 代码可以在微秒内开始执行,因此无需让代码保持运行即可快速响应请求。 当收到请求时,您可以启动 Wasm 实例,而对延迟的影响非常小。 这意味着基于 WebAssembly 的系统在没有流量时可以一直缩减到零——这对大自然和您的银行账户都是一种福音。
在我看来,真正改变游戏规则的是 WebAssembly 组件模型。 它将从根本上改变开发人员构建和编写软件的方式,通过以下方式:
简而言之,开发人员可以使用任何可以生成 WebAssembly 代码的语言构建软件组件,然后轻松地将它们组合成单个应用。
WebAssembly 是一项值得关注的技术。 无论您是希望为应用添加新功能的开发人员,还是专注于构建可扩展且经济高效的解决方案的企业,Wasm 都适合您。 随着其不断成熟并获得支持,WebAssembly 将重新定义我们思考和参与软件开发的方式。 密切关注 WebAssembly,因为它不仅仅是未来——它已经存在,并且正在重塑我们所知的软件。
想要了解有关 WebAssembly 的更多信息吗? 在YouTube 、 Spotify或Apple Podcast上查看 F5 的 WebAssembly Unleashed 播客。