写点什么

浏览器厂商开始默认支持 WebAssembly 格式

  • 2017-03-13
  • 本文字数:931 字

    阅读完需:约 3 分钟

各浏览器厂商在 WebAssembly 相关的工作上已经达成了一种“共识”,这使得各浏览器开始默认支持 WebAssembly 格式。

早在 2016 年 11 月, WebAssembly 就已经进入“浏览器预览”(Browser Preview)阶段。在此阶段,主流浏览器都提供了一个具有 WebAssembly 开关标识的测试版本浏览器。随后的数月时间,各浏览器厂商需要在 JavaScript API 二进制格式上做改进,并就此取得一致意见。近期发布的公告对 WebAssembly 做了界定:

如果没有实现经验和明确用途,那么无法对 WebAssembly API 和二进制格式的设计做进一步的改进。从这个意义上讲,最初的设计工作已经完成。(各浏览器厂商)就此已达成了共识。

这一共识标志着“浏览器预览”阶段的结束,意味着各个浏览器可以默认打开对 WebAssembly 格式的支持。由此往后,将来的特性设计会确保向后兼容。

虽然这一最初实现是一个重要的里程碑,但是并不会立刻被开发人员大范围地采用。尽管未来潜力无限,WebAssembly 当前的语言支持仅限于 C 和 C++,以及对 Rust 的初期支持。WebAssembly 也没有提供垃圾回收机制,因此 C#和 Java 这样的语言并不能正常运行,除非将它们自身的运行时作为二进制的组成部分。但是以后添加垃圾回收已在讨论中。

此外,WebAssembly 当前缺少与DOM 交互等重要特性。Mozilla 工程师 Lin Clark 写道,虽然“期待了很多的特性”,但是这些特性需要“有一个制定规范的过程”。WebAssembly 社区组已经提供了一个供 W3C 工作组讨论的未来特性列表,但是这些特性何时可用尚未有时间表。

Clark 在一系列的帖子说明了 WebAssembly 会改进性能的原因所在,并指出引入 WebAssembly 将会是一个“转折点”,可导致无法预料的性能改进,并提供迎接新挑战的能力。

今后几年,各浏览器厂商会在改进 JIT 编译器性能的同时,继续改进 JavaScrip 和 WebAssembly 间的交互。

现在已可用的 Firefox 52 支持 WebAssembly 格式。定于 2017 年 3 月 14 日发布的 Chrome 57 也将默认启用 WebAssembly 格式。

查看英文原文: Browser Vendors Start Shipping WebAssembly by Default


感谢张卫滨对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2017-03-13 19:003215
用户头像

发布了 227 篇内容, 共 85.4 次阅读, 收获喜欢 28 次。

关注

评论

发布
暂无评论
发现更多内容

公理设计:由奇怪海战引发的软件设计思考

程序员历小冰

设计模式 28天写作 12月日更

家具电商

张老蔫

JVM学习笔记

Changing Lin

12月日更

跟着动画学Go数据结构之冒泡排序

宇宙之一粟

golang 数据结构 算法 12月日更

IM会话阅读回执

superman

IM 已读未读 阅读回执

Git 报错:fatal: destination path ‘.‘ already exists and is not an empty directory.

liuzhen007

28天写作 12月日更

C#中如何使用Dapper

喵叔

28天写作 12月日更

【docker 总结】第六篇 - DockerCompose

Brave

Docker 12月日更

一个简单的socket小工具

为自己带盐

socket dotnet 28天写作 12月日更

围棋

圣迪

AI 数学 围棋 中国象棋 解空间

网络安全2.0主动防御体系有哪些新思路?

喀拉峻

网络安全 安全 渗透测试 渗透

反序列化漏洞原理详解

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 安全漏洞

架构实战营模块二作业

曾竞超

架构实战营 「架构实战营」

营销思维:新消费品牌如何做营销

石云升

营销 28天写作 新消费 12月日更

语音信号处理4:语音信号的产生之语音的发音器官

轻口味

28天写作 12月日更

如何在 Linux 中使用 apt 命令管理包

Ethereal

Linux 运维 apt 网络技术联盟站

RocksDB 相关资料

Joseph295

存储 RocksDB LSM树 KV存储引擎

架构实战 模块二作业

mj4ever

架构实战

CSS之选择器(十)<label> 和 <input>

Augus

CSS 12月日更

元宇宙100讲-0x006

hackstoic

元宇宙

明道云APaaS实践将GTD方法落地

明道云

为什么要“除夕”,原来是内存爆了

悟空聊架构

JVM 内存 28天写作 悟空聊架构 12月日更

下班之后的生活

卢卡多多

28天写作 12月日更

避免创建不必要的对象

李子捌

28天写作 12月日更

Kubernetes 为何称为 K8s?

Ethereal

Kubernetes k8s 运维工程师

17《重学JAVA》--JAVA异常(一)

杨鹏Geek

Java 25 周年 28天写作 12月日更

Prometheus Exporter (三十)IPMI Exporter

耳东@Erdong

Prometheus 28天写作 exporter 12月日更 IPMI

[架构实战营] 模块二作业

Geek_0ed632

架构实战营

起、承、转、合全赋能:华为应用生态为开发者带来了什么?

脑极体

无快不破,在本地 docker 运行 IDEA 里面的项目?

秦怀杂货店

Java 后端 springboot dcoker

48 K8S之Ingress控制器部署

穿过生命散发芬芳

k8s 28天写作 12月日更

浏览器厂商开始默认支持WebAssembly格式_JavaScript_David Iffland_InfoQ精选文章