WebAssembly简单介绍

WebAssembly简单介绍

MDN官方定义:WebAssembly是一种新的编码方式,可以在现代的网络浏览器中运行 - 它是一种低级的类汇编语言,具有紧凑的二进制格式,可以接近原生的性能运行,并为诸如C / C ++等语言提供一个编译目标,以便它们可以在Web上运行。它也被设计为可以与JavaScript共存,允许两者一起工作。

用人话解释

各种官方语言在我这都觉得像是方言,比如说最近宪法拟修改xxx的,都要猜半天。

那么WebAssembly用人话怎么解释呢?就是

浏览器可以使用JS之外的其他语言了!!

其实呢也没啥好高兴的,明显是更多人能来抢饭碗了!

WebAssembly现状如何?

【浏览器支持还不错】

【社区关注度】

这个是.net的,2000多星,https://github.com/aspnet/blazor

而且还在持续更新中

代码怎么写?

更多细节请参考 https://developer.mozilla.org/zh-CN/docs/WebAssembly/C_to_wasm

WebAssembly可能替代JS?

这是一段hacker news的回答,译文附在图后,摘进来当然表示我也同意这个看法呀

【提问】JavaScript与WebAssembly的未来。 JavaScript会共存吗?

【回答】JavaScript是不会被WebAssembly替代的。

- 首先,在浏览器中删除javascript支持将会使当前在网络上运行的所有JS代码的功能黯然失色,这将延伸到几乎每个人都可以破解的网页。所以,如果仅仅是为了向后兼容,浏览器必须支持javascript在可预见的未来。

- 其次,WebAssembly项目自己的FAQ [0]指出:“WebAssembly被设计为对JavaScript的补充而非替代。”

- 第三,编译WebAssembly的语言总是比编写JavaScript更复杂的过程 - 尽管我承认现在需要大量的JavaScript本身也需要编译或转换,但这实际上并不是必需的。在浏览器中运行基于文本的解释型脚本语言可以提供WebAssembly无法直接复制的方便性和简单性。对我来说,这表明JavaScript甚至不会像默认的WebAssembly模块那样实现,尽管也有可能会。

很多人打算尽可能努力用编译为WebAssembly的语言替换JavaScript,并且它可能会替代语言“编译为JavaScript”的范式,因为它提供了一个实际的字节码,而不是假装javascript是字节码,但是喜欢或不喜欢JavaScript都不会很快消失。

想了解更多请阅读WebAssembly官方FAQ http://webassembly.org/docs/faq/

WebAssembly优点

这里只摘了一段,原文https://medium.com/@brianjoelfeldman/webassembly-the-future-94307a67c9df,翻译见

对于静止图像测试,我们发现主题能够比asm.js更快地检测到面部〜80%,并且比JavaScript快得多〜50%。 考虑到使用人脸检测算法的眼睛检测,我们发现它比asm.js和JavaScript快70%。

至于摄像头反馈,我们使用每秒帧数来确定哪种格式是最高性能的。 在将流传输到3个HTML5画布元素的同时,我们不断在渲染图像上运行我们的算法,以检测面部并通过绘制到画布上进行构图。 视频格式的表现差异更加明显。 wasm画布呈现在50-60 FPS之间,asm.js为20-30之间,以及JavaScript为4-7之间

所以说这个东西并其实不重要,100个项目也可能碰不到一个需要wasm的。但是你要作为一个骨干开发,Web上的图像算法很慢,你不知道wasm基本上就没的优化;你要是作为CTO,一个C#.net的web项目要发展前端 ,如果知道wasm,那原来的团队就不需要裁员.net另招js,而是直接应用Blazor来构建前端。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180303G0MLSX00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券