WebAssembly是什么?

Docker 创始人 Solomon Hykes 发布了一条推特在业界引起了轩然大波(见下面的推文),他说如果 2008 年 WebAssembly 和 WASI 就存在的话,他就没必要创建 Docker。一时间,关于 WebAssembly 取代 Docker 的讨论此起彼伏。也是从那时起,WebAssembly 正式进入我的视线。

到了 2021 年,网上突然多了很多关于 WebAssembly 的炒作文章,包括我长期关注的 Istio 也在当年发布的 1.12 版本开始支持 WebAssembly(见 Istio 1.12 引入 Wasm 插件配置 API 用于扩展 Istio 生态 ),通过引入 WasmPlugin API,使开发人员更方便扩展服务网格和网关。

最近我看到一篇介绍 WebAssembly 在 2023 年有哪些新趋势的文章 ,文章的作者 Matt Butcher 颇有来头,他是 WebAssembly Cloud 公司 Fermyon 的联合创始人和 CEO,也是 Helm、Brigade、CNAB、OAM、Glide 和 Krustlet 的原始创建者之一。通过他的介绍让我笃定,WebAssembly 是一门颇有前景的技术,是时候学习它了。

WebAssembly 的市场前景
更何况 WebAssembly 的应用领域越来越广,像 WasmEdge 这样的公司正在使用 Tensorflow 来突破可以使用 Wasm 运行的边界。Fermyon 正在构建用于微服务的 WebAssembly 工具,而 Vercel 、Fastly 、Shopify 和 Cloudflare 使用 WebAssembly 在边缘运行代码。Figma (2022 年以 200 亿美元被 Adobe 公司收购)正在使用 WebAssembly 为其应用程序在浏览器中提供更高的性能,而他们的新母公司 Adobe 正在使用 WebAssembly 将他们的桌面应用程序带到 Web。

如何学习 WebAssembly?
为了学习 WebAssembly,我制定了以下学习目标:

了解 WebAssembly 的基本概念,包括它是什么、为什么要使用它、如何在浏览器中运行它;

学习 WebAssembly 的语言,这是一种类似于汇编语言的低级语言,可以编译成二进制文件;

使用工具将代码编译成 WebAssembly 格式;

在 JavaScript 中调用 WebAssembly 模块;

学习 WebAssembly 的其他特性,如内存管理、多线程和 WebAssembly System Interface(WASI);

了解 WebAssembly 如何增强安全防护;

学习 WebAssembly 的最佳实践,如代码优化和调试;

在 Istio 中开发 WebAssembly 插件;

学习使用 WebAssembly 开发的开源项目;


下面列出了一些有助于学习 WebAssembly 的参考资料,包括网站和图书:

<<:  Istio是什么?Istio如何编译

>>:  Day28 CocoaPods

C语言杂谈01---如何理解条件编译

架构图 前言 由於地区翻译关系,有些书籍将macro翻译成"巨集",有些翻译成&...

[前端暴龙机,Vue2.x 进化 Vue3 ] Day23.正式进化-Vue3 起手式

ゴキゲンな蝶になって きらめく风に乗って 今すぐキミに会いに行こう 余计な事なんて忘れた方がマシさ...

html 下拉式选单

今天要介绍下拉式选单,写法非常简单,直接来看程序码范例 <select> <opt...

[前端暴龙机,Vue2.x 进化 Vue3 ] Day16.父子组件的沟通-props

在上一篇的内容中,已经介绍到了该如何写一个组件并完成应用了,现在再继续进入更深一点的运用吧~ 对於 ...

Day2 专案成立,来谈谈花钱的艺术

再来,谈到专案终於成案,老板放行以後,当然是很想好好大展身手。但是各路英雄好汉啊,有一个天敌,叫做一...