写点什么

WebAssembly:面向 Web 的通用二进制和文本格式

  • 2015-06-24
  • 本文字数:1305 字

    阅读完需:约 4 分钟

Mozilla、谷歌、微软和苹果已经决定开发一种面向 Web 的二进制格式。该格式名为 WebAssembly,可以作为任何编程语言的编译目标,使应用程序可以运行在浏览器或其它代理中。

几年前,我们在 InfoQ 上讨论过面向 Web 的通用字节码的优点(见《讨论:我们是否需要一种通用的Web 字节码?》),概括了创建这样一种格式的困难。其中提及的一个主要问题是主要的浏览器制造商无法达成一致:Mozilla 在推asm.js,谷歌支持PNaCI,苹果在开发 FLTJIT ,而微软没有对其中的任何一种表示出兴趣。但现在,情况已经发生了变化。所有四个主要的浏览器供应商一致同意创建一种面向 Web 的二进制格式 WebAssembly 或 WASM/wasm。有人将其称为字节码,但wasm 不是传统意义上的字节码, Brendan Eich 指出:“WebAssembly 实际上是一个经过压缩的 AST 编码,而不是一堆字节码。小声点,不要告诉任何人。如果愿意,你还是可以称它为字节码。”

迄今为止,这个项目一直是秘密进行的,但现在,它已经在 GitHub 上和 W3C 社区组里公开。WebAssembly 的初衷是,让使用 JavaScript 之外的语言编写的程序可以运行在服务器、移动或 IoT 设备上的浏览器和其它 JS 代理中。这种格式最终将取代 asm.js 和 PNaCI。根据项目设计文档(尚未最终确定),WASM 使用二进制是因为它“可以提供更高的效率:它减少了下载文件大小,并加快了解码速度,因此,即使很大的代码库也可以快速启动。”WASM 有一个相对应的文本格式,可以供调试器或其它面向开发者的工具使用。这些工具应该能够从一种格式转换成另外一种格式,而且不会丢失信息。

WebAssembly 实现工作已经迈出了一个临时的第一步:将该格式转换成相应的 asm.js 代码,那样,它就可以运行在支持 asm.js 的浏览器上:Firefox、Edge、Chrome。已经有一个以此为目的构建的 polyfill 原型,初步结果显示,压缩后的二进制格式比 asm.js 压缩后要小 20-30%,wasm 解码速度比解析相应的 asm.js 源代码要快大约 23 倍。WASM 稍后将获得浏览器 VM 的原生支持。

WebAssembly 将首先把 C/C++ 程序带给 Web,但稍后会通过增强实现对其它任何语言的支持。一个 LLVM 后端和 clang 移植已经在计划上。WASM 将运行在“和 JavaScript 相同的语义空间”,支持从 / 到 JavaScript 的异步调用,访问所有的浏览器 API,并且遵循 JavaScript 程序所遵循的安全策略。客户端应用程序可以完全用 WASM 编写,也可以用 WASM 实现业务逻辑,而用 HTML/CSS/JavaScript 实现 UI。

紧跟着 JavaScript 的第二十个生日宣布,并且是在 Ecma 宣布 ES6 规范获最终批准的当天,WebAssembly 对 JavaScript 而言可不是一个好消息。WASM 将使得使用任何能够编译成 WASM 的语言编写 Web 代码成为可能,
JavaScript 将直接与其它语言竞争。我们是否可以期待 Java 或 C#编译成 WASM 呢?

WebAssembly 将从开发 asm.js 和 PNaCI 的经验教训中获益,因为创建它的团队中包含了来自 Mozilla 和谷歌的团队。而微软和苹果的支持使它成为了一个非常有前途的项目。剩下的唯一问题是时间:通常,由多个大型公司共同开发的项目需要花费大量的时间。在这种情况下,标准化过程非常缓慢。

查看英文原文: WebAssembly: A Universal Binary and Text Format for the Web

2015-06-24 04:4915948
用户头像

发布了 1008 篇内容, 共 398.5 次阅读, 收获喜欢 345 次。

关注

评论

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

读出你的热爱:华为阅读高校花粉读书会已走进50所高校

最新动态

如何提升你的技术视野?

老张

职场成长 技术实践 职场认知 技术视野

应对DDOS攻击,游戏盾防护的作用

德迅云安全杨德俊

服务器 DDoS 攻击 高防游戏服务器

Mac软件删除不了怎么办?苹果电脑应用程序删除不了的原因

阿拉灯神丁

CleanMyMac X Mac软件 Mac卸载软件 mac电脑维护工具 程序坞图标删除软件

如何管理测试用例

易成研发中心

测试管理 测试管理工具 测试用例管理

NTFS Disk by Omi NTFS for mac(NTFS 磁盘管理器)

Mac相关知识分享

AutoCAD 2019 for Mac(cad2019汉化)

Mac相关知识分享

跬智信息(Kyligence)获评36氪“年度最具商业价值企业”

Kyligence

Reallusion Cartoon Animator for Mac(2D动画设计制作软件)中文版

Mac相关知识分享

圆极化平板天线仿真02【CST软件仿真实例】

思茂信息

cst cst使用教程 cst操作

测试是如何跟进和管理 bug

易成研发中心

bug bug管理

关于 MySQL 执行计划

雄鹿 @

MySQL

EasyAnimateV5 视频生成大模型原理详解与模型使用

阿里云大数据AI技术

阿里云 AI视频 视频生成 EasyAnimate

行业Know-How助力零售企业数字化转型|StartDT Talk

奇点云

零售行业

Maxon Cinema 4D Studio S22 for mac(C4D动画设计工具)中文版

Mac相关知识分享

数造科技荣获2024第七届数字化转型与创新评选“大数据创新产品”奖

数造万象

敏捷开发 数据治理 数字化 数据开发 一体化平台

Byteman 让 i++ 百分百线程不安全

FunTester

从cURL到多语言代码:Postman自动生成功能全解析!

LLLibra146

Python 效率 Postman 代码技巧

Spring Boot与Spring Security集成:前后分离认证流程的优化实践

代码忍者

Compressor for Mac(视频转码压缩编辑工具)

Mac相关知识分享

合合信息智能图像处理技术,让你的设备更智能

合合技术团队

人工智能 图像识别 图像处理 打印

明基 RD280U显示器——程序员之选

Yan-英杰

程序员

AI+数智合同 | 人工智能重塑企业合同服务与管理

用友智能财务

数字化 合同 财务 数智化

数字组织管理能力提升阶段的芯盾时代统一用户身份治理建设

芯盾时代

身份安全 iam 访问控制 统一身份管理平台

QT软件外包开发框架

北京木奇移动技术有限公司

qt Qt Creator

WebAssembly:面向Web的通用二进制和文本格式_JavaScript_Abel Avram_InfoQ精选文章