WebAssembly:2023年的五大技术发展趋势预测
责任编辑:一颗赛艇     时间:2023-01-31     来源:转载于:https://thenewstack.io/webassembly-5-predictions-for-2023/
责任编辑:一颗赛艇
时间:2023-01-31  来源:转载于:https://thenewstack.io/webassembly-5-predictions-for-2023/
分类: 开发资源
浏览量: 455

2022 年,WebAssembly(通常简称为 Wasm)一跃成为众人瞩目的焦点。出现了许多依托Wasm的初创公司,同时,也有一些传统企业宣布支持Wasm。字节联盟(The Bytecode Alliance)也推出了多项 Wasm 标准。云原生计算基金会(The Cloud Native Computing Foundation)举办了两次 WasmDay 活动。而最大的 Wasm使用者之一Figma被Adobe以200 亿美元收购。

image.png

在其核心,Wasm是一种二进制格式。许多不同的语言可以编译成相同的格式,而这种二进制格式可以在大量的操作系统和架构上运行。Java和.NET在这方面是相似的,但Wasm有一个主要区别。Wasm运行时并不信任它所执行的二进制文件。

Wasm应用程序被封存在一个沙盒中,只允许访问用户明确允许的资源(如文件或环境变量)。Wasm有许多其他理想的属性(如非凡的性能),但正是这种安全模型使Wasm在从浏览器到边缘和物联网,甚至到云的各种环境中发挥作用。

如果说2022年有一个Wasm的趋势,那就是Wasm现在在浏览器之外比在浏览器内获得了同样多(如果不是更多)的成功。而这一趋势是2023年的大部分内容的基础。随着Wasm出现在从嵌入式设备到大数据中心的各个地方,2023年将是Wasm的一年。以下是我对2023年Wasm生态系统的五个预测。

1. 组件模型将成为分水岭的时刻
很少有标准是一个生态系统中最令人兴奋的部分。而像 "组件模型 "这样的名字,唤起人们的兴奋确实是一场艰苦的战斗。但在这个无聊的名字背后,是Wasm给软件世界带来的最重要的创新。

组件模型描述了一种Wasm二进制文件之间相互作用的方式。更具体地说,两个组件可以告诉对方他们提供什么服务和需要满足什么期望。然后,Wasm模块可以利用彼此的能力。这为软件开发人员提供了一种构建应用程序的新方法。开发者可以声明他们的应用程序需要哪些组件,而不是在他们喜欢的源语言中寻找库,或者更抽象地说是他们的应用程序需要哪些功能,然后Wasm运行时可以代表用户组装正确的组件集。

Dan Gohman,Wasm最多产的贡献者之一,写了一篇伟大的概述文章。Fermyon的Joel Dice也为那些对内部情况比较好奇的人写了一份技术概述。组件模型正在迅速成熟,并且已经出现了一些参考实现。2023年将是组件模型开始重新定义我们如何编写软件的一年。

2. 无服务器将是Wasm的甜蜜点
在过去的几年里,无服务器的前景已经很明显了。AWS Lambda以功能即服务(FaaS)的形式让我们看到了一种新的、直接的编程模型。然而,即使在无服务器概念背后的势头正在形成的时候,底层技术的运营成本也很高。而这种成本已经转嫁给了用户。此外,虽然FaaS应用程序的启动时间比容器快,但仍未达到今天对网络性能的期望。速度还有提升的空间。

Wasm改变了无服务器景观的潜力。凭借几乎即时的启动时间、较小的二进制文件尺寸以及平台和架构的中立性,Wasm二进制文件可以用运行今天的无服务器基础设施所需资源的一小部分来执行。

如果整个经济正在进入一个经济不确定的时期,那么很高兴知道Wasm将帮助我们绳之以法,同时也推进了开发者喜欢的无服务器功能模型。Wasm更快的启动时间和适度的资源消耗所需的计算能力远低于基于容器的系统,而且使用起来比Lambda等FaaS系统更便宜。

这种对Wasm可以改变无服务器环境的认识,促使Fermyon创建了Spin。Spin是一个面向开发者的工具,用于引导、构建、测试和部署无服务器功能。Spin的核心是其基于Wasm的运行时间。它是开源的,已经被Fermyon云和微软Azure的AKS支持,2023年还会有更多的支持。

更小、更快、更便宜、更好。这就是Wasm在2023年向无服务器世界提供的组合。

3. Wasm应用程序将被存储在DockerHub和容器注册处
包管理。从编程语言到操作系统,再到Kubernetes这样的集群协调器,它都是一个必要的功能。每当我们发明一项新技术,我们似乎注定要(重新)发明一个系统来管理该技术的资产。

在2022年早期,我们看到有几种竞争性的方法来管理Wasm对象。但没有一个成功。一小批工程师坚持不懈地推动OCI注册中心(又称Docker注册中心)作为存储Wasm的系统。但事实是,OCI注册表的格式不支持非容器的工件。它是用来存储Docker镜像的。

然后,OCI注册表的一个重大转变改变了局面。OCI(Open Container Initiative)是一个小型的标准机构,致力于管理围绕OCI容器(或我们过去称为Docker容器)的标准。OCI定义了容器格式、安全模型和运行时间。它还定义了容器镜像如何在注册处和客户端之间移动。

在接近2022年底时,OCI注册处工作组宣布了一种正式的方式来存储容器镜像以外的东西。这可能包括像Helm图表、照片或(你猜对了)Wasm应用程序的东西。这个新功能被称为 "工件存储"。

当DockerHub宣布支持这个新的工件存储规范时,这个信号在Wasm生态系统中回荡:与其重新发明轮子,不如简单地将我们的应用程序存储在像DockerHub这样的OCI注册处。在Wasm生态系统中必须做新的工作,以使其成为现实,但这项工作正在进行中。2023年将是Wasm应用程序在OCI注册中心找到家的一年。

4. 所有大型编程语言都将有Wasm支持
语言支持是Wasm成功的一个关键因素。随着每一种新的语言可以编译到Wasm,一个新的开发者社区就可以获得Wasm的好处。几乎所有前20名的编程语言都在增加Wasm的支持。

在2022年,我们看到Wasm的三个巨大飞跃。增加了支持Python,然后是Ruby。10月,长期以来在浏览器中接受浏览器内Wasm的.NET为Wasm增加了更深入的支持,使其能够在浏览器之外运行。

今年还有三种语言取得了一些进展,但2023年将标志着这些语言可以使用的年份。这三种语言是Kotlin、Dart,当然还有世界上最流行的编程语言。JavaScript。

Kotlin和Dart社区都积极地参与了构建Wasm编译目标。不过,两者都在等待一个特定的Wasm标准成熟--一个描述垃圾收集的标准,即语言运行时中允许在程序执行时清理内存的设施。我们的预测是,Wasm-GC提案将在2023年初可用并得到支持,因此Kotlin和Dart将很快发布Wasm编译器。

不过,我们的最后一种语言非常重要,值得特别预测一下。

5. JavaScript将成为最受欢迎的Wasm语言
在所有语言中,JavaScript与Wasm的关系最为复杂。按照最初的设想,Wasm将与浏览器中的JavaScript互动。事实上,Wasm最初的承诺是,它将把浏览器语言支持扩展到JavaScript之外。

但是,在现实世界的使用案例面前,假设有一种褪色的方式。

由于Wasm在浏览器之外,许多开发人员希望能够在任何可以运行Wasm的地方运行他们的JavaScript代码。而要做到这一点,最好的办法是使JavaScript能够在Wasm运行时内部运行(而不是像在浏览器中那样在它旁边运行)。在2022年,我们看到几个新的Wasm项目专注于将JS带到新的运行时。这些项目中的大多数都使用了一个伟大的开源项目,名为QuickJS。

QuickJS有很多优点,最重要的是它完全符合最新的JavaScript标准。但它并不是为了成为最快或最强大的JavaScript引擎而设计的。它是如此容易嵌入,以至于许多早期的Wasm项目已经想出了将解释器编译为Wasm的方法,然后在Wasm运行时内运行JavaScript。

但现在有一个主流的JavaScript运行时进入了这个战场。来自Mozilla的SpiderMonkey引擎,以其性能和稳健性而闻名,正在进入Wasm世界。它因在Mozilla Firefox浏览器中的使用而最为著名,但它也可以在浏览器之外使用。作为一个能够不断优化其执行的脚本的运行时间,SpiderMonkey引擎将是Wasm世界中最快的JS引擎。早期的数据表明,由于可以在这个环境中进行优化,在Wasm版本的SpiderMonkey中运行的JavaScript可能比浏览器中的JS执行速度快13倍。

JavaScript是世界上最流行的编程语言。有了QuickJS和SpiderMonkey这样的Wasm运行时,Wasm的潜力突然被一个巨大的开发者社区所接受。是的,C是第一个支持Wasm的编程语言。是的,Rust也有相当大的立足点。当然,我们也看到Python和Ruby的发展。但是,JavaScript将像火箭一样射入Wasm的平流层。


结论:2023年是Wasm的一年
我已经对Wasm生态系统内部将发生的事情做了五个大胆的预测。随着这些里程碑的实现,Wasm作为浏览器之外的通用技术将变得更加有用。在文章的开头,我提出2023年将是Wasm的一年。考虑到这五个预测,很容易看出原因:新的功能、灵活的用例、与Docker Hub的整合以及广泛的语言支持,这些都使这项对开发者友好的技术具有巨大的前景。


作者简介:

Matt Butcher
Matt Butcher是Fermyon的联合创始人和CEO,Fermyon是一家WebAssembly in the Cloud公司。Matt是Helm、Brigade、CNAB、OAM、Glide和Krustlet的原始创造者之一。他撰写和合作撰写了许多书籍,包括《学习Helm》和《Go in Practice》。他是 "Kubernetes插图儿童指南 "系列的共同创造者。当前,他主要从事WebAssembly项目,如Spin、Fermyon Cloud和Bartholomew。他拥有哲学博士学位,住在科罗拉多州。


来源:转载于:https://thenewstack.io/webassembly-5-predictions-for-2023/

回复:

Copyright © 2021 .长沙麦涛网络科技有限公司 All rights reserved. 湘ICP备20015126号-2
联系我们