博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WebAssembly:面向Web的通用二进制和文本格式
阅读量:7232 次
发布时间:2019-06-29

本文共 1369 字,大约阅读时间需要 4 分钟。

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

\\

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

\\

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

\\

WebAssembly实现工作已经迈出了一个临时的第一步:将该格式转换成相应的asm.js代码,那样,它就可以运行在支持asm.js的浏览器上:Firefox、Edge、Chrome。已经有一个以此为目的构建的,初步结果显示,压缩后的二进制格式比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的第二十个生日宣布,并且是在的当天,WebAssembly对JavaScript而言可不是一个好消息。WASM将使得使用任何能够编译成WASM的语言编写Web代码成为可能,\\

JavaScript将直接与其它语言竞争。我们是否可以期待Java或C#编译成WASM呢?

\\

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

\\

查看英文原文:

转载地址:http://kuvfm.baihongyu.com/

你可能感兴趣的文章
PHP时间戳函数总结
查看>>
开发自定义JSF组件(1) HelloWorld
查看>>
设计模式学习——策略模式:模拟鸭子应用
查看>>
lucene4.7 分词器(三)
查看>>
linux下让tomcat以service方式运行(及使用service tomcat start)
查看>>
HTML模版
查看>>
观察者模式摘要
查看>>
我的友情链接
查看>>
xml中单双引号
查看>>
JQuery文件上传插件JQuery.upload.js的用法简介
查看>>
Megacli 工具
查看>>
HTML5 多文件选择和FileList
查看>>
spring-boot与log4j2整合
查看>>
对函数式编程的理解
查看>>
Tomcat源码分析----一个http请求的经历
查看>>
Unix-Linux 编程实践教程 第二章 小结
查看>>
.未来只有坚持自己的信念.
查看>>
TODO:Golang指针使用注意事项
查看>>
五大角色和主域控制器
查看>>
QTcpserver编程
查看>>