2022年,WebAssembly(通常简称为Wasm)突然成为焦点。新的Wasm初创公司涌现,老牌公司宣布支持Wasm。字节码联盟推出了一些Wasm标准。CNCF主办了两次WasmDay活动。而Wasm最大的用户之一Figma被Adobe以惊人的200亿美元收购。

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

Wasm应用程序被隔离在沙盒中,只允许访问用户明确允许的资源(如文件或环境变量)。Wasm还有许多其他令人满意的特性(例如卓越的性能),但正是这种安全模型使Wasm在从浏览器到边缘和物联网,甚至到云的各种环境中都非常有用。

如果说2022年有一个Wasm趋势,那就是Wasm现在在浏览器之外和在浏览器内获得了同样多的成功(甚至更多)。这是2023年将要发生的事情的基础。从嵌入式设备到大数据中心,Wasm无处不在,2023年将成为Wasm的一年。以下是笔者对2023年Wasm生态系统的五个预测。

1.组件模型将是分水岭

标准很少是生态系统中最令人兴奋的部分。有了“组件模型”这样的名字,激动人心的时刻到来。在这个无聊的名字背后,是Wasm给软件世界带来的最重要的创新。

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

组件模型正在迅速成熟,已经出现了参考实现。2023年将是组件模型开始重新定义我们如何编写软件的一年。

2.无服务器将是Wasm的最佳选择

在过去几年里,服务器的前景已经很明显了。AWS Lambda让我们看到了一种新的、简单的编程模型,即功能即服务(FaaS)。然而,尽管无服务器概念背后的势头正在形成,但底层技术的运行成本很高。这一成本已经转嫁给了用户。此外,虽然FaaS应用程序的启动时间比容器快,但它们仍然没有达到今天对web性能的期望。速度还有提高的空间。

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

如果进入一个经济不确定的时期,大家会很高兴知道Wasm将帮助我们节省开支,同时推进开发人员最喜欢的无服务器功能模型。与基于容器的系统相比,Wasm更快的启动时间和适度的资源消耗所需的计算能力要低得多,使用成本也比Lambda等FaaS系统便宜。

Wasm能够改变无服务器环境的这一认识正是Fermyon创建Spin的原因。Spin是一个面向开发人员的工具,用于引导、构建、测试和部署无服务器功能。Spin的核心是基于Wasm的运行时。它是开源的,已经得到了Fermyon Cloud和Microsoft Azure的AKS的支持,2023年还会有更多。

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

3.Wasm应用程序将存储在DockerHub和容器注册表中

包管理——从编程语言到操作系统,再到Kubernetes这样的集群编排器,它都是必不可少的功能。每次我们发明一项新技术,我们似乎注定要(重新)发明一个管理该技术资产的系统。

2022年初,我们看到了几种管理Wasm对象的竞争方法。一小部分工程师坚持将OCI Registry(又名Docker Registry)作为存储Wasm的系统。但事实是,OCI Registry格式不支持非容器工件。它用于存储Docker镜像。

然后,OCI Registry的重大变化改变了形势。OCI(开放容器倡议)是一个小型标准机构,致力于管理OCI容器(或我们过去称之为Docker容器)的标准。OCI定义了容器格式、安全模型和运行时。它还定义了如何在注册表和客户端之间移动容器镜像。

2022年底,OCI Registry工作组宣布了一种存储容器镜像以外的其他内容的官方方式。这可能包括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代码。最好的方法是在Wasm运行时内运行JavaScript(而不是像在浏览器中那样在它旁边)。2022年,我们看到几个新的Wasm项目专注于将JS引入新的运行时。其中大多数使用了一个名为QuickJS的开源项目。

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

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

JavaScript是世界上最流行的编程语言。而且,有了像QuickJS和SpiderMonkey这样的Wasm运行时,Wasm的潜力对一个庞大的开发人员社区来说突然变得可用了。是的,C是第一个支持Wasm的编程语言。是的,Rust有相当大的立足点。当然,我们也看到了Python和Ruby的发展。但JavaScript将爆发。

结论:2023年是Wasm年

笔者对Wasm生态系统内部会发生什么做出了五个大胆的预测。随着这些里程碑的实现,Wasm作为浏览器之外的通用技术将变得更加有用。2023年将是Wasm年,因为新功能、巧妙的用例、与Docker Hub的集成以及广泛的语言支持,使其成为一项对开发人员友好的技术,前景广阔。

原文链接:

https://thenewstack.io/webassembly-5-predictions-for-2023/

WebAssembly:2023年的5个预测相关推荐

  1. 2023年五一假期出行预测报告.pdf(附下载链接)

    省时查报告-专业.及时.全面的行研报告库 省时查方案-专业.及时.全面的营销策划方案库 [免费下载]2023年3月份热门报告合集 2023年创业(有创业想法)必读手册 ChatGPT等让你效率倍增的2 ...

  2. 京东2023年Q1财报预测:短期增速承压,收入和净利润预测被下调

    来源:猛兽财经 作者:猛兽财经 猛兽财经获悉,中信证券近期发布研报维持京东(JD)买入评级,中信证券在研报中预计京东2023年第一季度的营收将达到2,383亿元/同比减少-0.6%,Non-GAAP净 ...

  3. ICLR 2023 | 初探AI拼图模型预测蛋白质复合物结构

    ©作者 | 机器之心编辑部 来源 | 机器之心 本文介绍被机器学习顶级国际会议 AAAI 2023 接收的论文 <Improving Training and Inference of Face ...

  4. 【计算机考研408】2023考研408相关题目预测总结

    目录 前言 数据结构 选择1-时间复杂度 选择2-栈或者队列 选择3-二叉树.树.森林 选择4-并查集 选择5-红黑树 选择6-图的概念 选择7-图的应用 选择8-B树(B-树) 选择8-B+树 选择 ...

  5. 2023年美赛C题 预测Wordle结果Predicting Wordle Results这题太简单了吧

    代码更新完毕啦 更新时间 2023-2-18 16:30 问题一.二建模方案.代码.数据.图片 2023-2-19 13:00 问题三.四建模方案.代码.数据.图片 ​ 相关 链接 (1)2023年美 ...

  6. 中计算散度的函数_荷畔微风 - 在函数计算FunctionCompute中使用WebAssembly

    WebAssembly 是一种新的W3C规范,无需插件可以在所有现代浏览器中实现近乎原生代码的性能.同时由于 WebAssembly 运行在轻量级的沙箱虚拟机上,在安全.可移植性上比原生进程更加具备优 ...

  7. 2023年最值得关注的十大科技趋势,这些技术将迎来爆发,把握住风口和掘金机会!

    1 月 11 日,InfoQ获悉,达摩院 2023 十大科技趋势发布,生成式 AI.Chiplet 模块化设计封装.全新云计算体系架构等技术入选. 达摩院发布十大科技趋势 达摩院认为,全球科技日趋显现 ...

  8. 灰色 GM(1,1)模型在重庆商品房销售价格预测中的应用

    灰色 GM(1,1)模型在重庆商品房销售价格预测中的应用 AdamCY888 摘要:本文针对重庆市商品房价格预测问题,介绍了GM(1,1)模型基本原理,利用Python程序设工具,建立GM(1,1)灰 ...

  9. 2023年你应该关注的JavaScript趋势

    本文翻译者系360 奇舞团前端开发工程师 原文标题:Top JavaScript (JS) Trends You Should Follow in 2023 原文作者:yevheniia 原文地址:h ...

最新文章

  1. DSP集成开发工具CCS的Git工具使用说明(一)
  2. LINUX基本命令行手册一
  3. 南邮 AAencode
  4. Flink批处理优化器之数据属性
  5. 【双11】阿里云边缘节点ENS助力淘宝构建音视频通信网络
  6. Java解决空引用_Java 匠人手法 - 优雅的处理空值
  7. mysql 定义唯一约束_在MySQL中,定义唯一约束的基本语法格式是【】
  8. kafka消费的三种模式_kafka消费者的三种模式(最多/最少/恰好消费一次)
  9. exchange2010 取消OWA内更改密码选项
  10. HTTP, WWW-Authenticate, Authorization 验证授权 | Apache验证 | Python处理
  11. Windows10设置动态视频桌面(占少量内存)
  12. MySQL 日期计算
  13. Android Behavior
  14. java.library.path和LD_LIBRARY_PATH的介绍与区别
  15. java敏捷开发的优缺点_你如何理解敏捷开发?
  16. 通过guest账户无法进入远程计算机,小经验|guest远程关机设置
  17. sockaddr,sockaddr_in,sockaddr_un结构体详细讲解
  18. flutter video_thumbnail #获取视频封面
  19. Python百行代码轻松爬取了妹子网100G的套图,希望你网盘内存够用
  20. 安卓手机改机 抹机 硬改手机参数 手机 改串 改机器内存存储信息 虎贲T610 机器演示

热门文章

  1. c# 数字转换为中文数字
  2. 【对比】Office 365与Office 2019 有何不同?你会pick哪款产品?
  3. Minecraft 1.12.2模组开发(十八) 自定义附魔
  4. 【单调栈】zjoj p1859子序列累加和
  5. 凤凰男,你若孤老终身,便是晴天
  6. 基于深度学习的医学图像分割(一)
  7. 阿里天池“水果店小系统”的python实现
  8. source insight4.0各种问题处理方法汇总
  9. CE植物大战僵尸——阳光值基址寻找
  10. 图解电脑上Firefox浏览器无法打开的解决办法