专栏首页京程一灯WebAssembly 正式成为 Web 的第四种语言[每日前端夜话0xF9]

WebAssembly 正式成为 Web 的第四种语言[每日前端夜话0xF9]

正文共:2217 字

预计阅读时间:6 分钟

翻译:疯狂的技术宅 作者:W3C 新闻稿 来源:W3C 新闻稿

webassembly 黑白 logo

万维网联盟(W3C)2019年12月5日宣布,WebAssembly 核心规范 【https://www.w3.org/TR/wasm-core-1/】现在是一种正式的 Web 标准,它为 Web 发布了一种功能强大的新语言。WebAssembly 是一种安全、可移植的低级格式,能够在现代处理器(包括 Web 浏览器)中高效执行并紧凑地表示代码。

WebAssembly 的到来扩展了仅仅用开放的 Web 平台技术就可以实现的应用程序的范围。在当今机器学习和人工智能越来越普遍的世界中,重要的是在不损害用户安全性的情况下在 Web 上运行高性能程序。” ——W3C 项目负责人 Philippe LeHégaret 。

依赖低层基础架构的高性能应用程序

WebAssembly 的核心是一种虚拟指令集体系结构,可在 Web 上运行高性能应用程序,并可在其他许多环境中使用。WebAssembly 的实现有多种,包括浏览器和独立系统。WebAssembly 可用于视频和音频编解码器,图形和 3D,多媒体和游戏,密码计算或便携式语言实现等领域。

WebAssembly 增强 Web 性能

WebAssembly 是虚拟机和执行环境,可以让加载的页面作为本机编译代码运行,从而提高了 Web 性能和功耗。换句话说,WebAssembly 可以实现接近本机的性能以及优化的加载时间,并且最重要的是可以为现有的代码库提供编译目标。

尽管本机类型的数量很少,但相对于 JavaScript 而言,性能的提高大部分归功于其对一致类型的使用。WebAssembly 对编译语言进行了几十倍的优化,针对其字节码的紧凑性和流传输进行了优化。在下载其余代码时,网页就可以开始执行。网络与 API 访问通过随附的 JavaScript 库进行。它的安全模型与 JavaScript 相同。

未来版本已经在开发中

负责收集需求和开发语言的 WebAssembly Working Group 【https://www.w3.org/wasm/】和 Community Group 【https://www.w3.org/community/webassembly/】已经为该标准的未来版本开发了一系列功能,其中包括:

  • 线程

线程提供了共享内存多线程和原子内存访问的诸多好处。

  • Fixed-width SIMD

并行执行循环中的向量操作。

  • 引用类型

允许 WebAssembly 代码直接引用宿主对象。

  • 尾调用

能够使用额外的栈空间去调用函数。

  • ECMAScript 模块集成

通过将 WebAssembly 可执行文件加载为 ES6 模块来与 JavaScript 进行交互。

还有许多其他的长期项目【https://github.com/WebAssembly/design/blob/master/FutureFeatures.md】,其中包括一些提高 WebAssembly 可用性的项目。例如垃圾收集、调试接口和 WebAssembly 系统接口(WASI),这是用于底层系统功能(如文件和网络访问)的一组模块。

WebAssembly 加入了许多 W3C 标准,这些标准定义了用于应用开发的开放 Web 平台,使开发人员能够构建可在任何设备上使用的强大交互体验,并且潜力巨大。

关于万维网联盟

万维网联盟(W3C)的使命是通过创建技术标准和准则来确保 Web 对全世界保持开放、可访问和可互操作的能力,从而发挥 Web 的全部潜力。HTML 和 CSS 这种构建网站的基础技术就是 W3C 众所周知的标准。W3C 致力于确保所有基础 Web 技术在可访问性、国际化、安全性和隐私性等领域满足社会的需求。W3C 还为利用 Web 的现代企业提供基础设施的标准,如娱乐、通信、数字出版和金融服务等领域。这项工作是根据公开的 W3C 专利政策免费公开提供的。由于 W3C 使在线视频更容易使用字幕和提示而获得了 2016 年度的艾美奖。由于其在 Web 上标准化全电视体验的工作,W3C 获得了 2019 年度的艾美奖。

W3C 对 "One Web" 的愿景汇集了代表400多家会员组织和【https://www.w3.org/Consortium/Member/List】几十个行业部门的数千名专业技术人员。W3C 由美国MIT计算机科学和人工智能实验室(MIT CSAIL),总部位于法国的欧洲信息学和数学研究联盟(ERCIM),日本的 Keio 大学和中国的北京航空航天大学等共同主持。有关更多信息,请参见 https://www.w3.org/。


来自W3C会员的推荐

360

"WebAssembly 规范的推出,进一步拓展了 Web 技术的应用 场景,让以往无法想象的应用成为可能,也为开发社区提供了更多选择, 为提升用户体验提供了技术保障。WebAssembly 标准的正式发布,让 Web 技术社区不再满足于浅尝辄止的保守应用,终于可以大胆地将其作为一个 正式的选型方案,这也势必会大力推进相应行业场景的发展。期待在 WebAssembly 标准化的推进过程中看到更多的 WASM 应用大放异彩。" 胡尊杰,360 奇舞团 Web 前端技术经理

阿里巴巴集团

“阿里巴巴很高兴看到 WebAssembly 最终成为 W3C 建议书。我们希望这一新标准可以引发开发者社区的更多创新,并丰富 Web 的功能和体验。” 阿里巴巴集团 W3C 顾问委员会成员,标准化部总经理 朱宏如(Judy)

Agora.io

“WebAssembly 使得在 Web 上提供强大的计算功能成为可能。它将极大地扩展 Web Apps 的应用场景,并迅速增加使用Web技术开发包括实时视频/音频处理,硬核游戏和 AI 在内的计算密集型应用的机会。作为RTC服务提供商,Agora 致力于提供具有更好实时性能的服务,我们已经发布了基于 WebAssembly 的产品,可以增强视频流处理的性能和兼容性,我们认为 WebAssembly 将是供 Web开发人员实施高性能Web Apps 的最重要的选择。” Chun Gao,Agora 高级架构师

百度

" 热烈祝贺 WebAssembly 标准正式发布!百度一直是 W3C 的坚定支持者和参与者、贡献者和先行者,在 WebAssembly 的 runtime 平台技术、小程序小游戏和区块链技术等各个方面都有不错的应 用。随着标准的发布,我们将继续联合产业同仁一起打造开放、平等、协 作、分享的 Web 新生态。也期待 WebAssembly 标准能为 Web 新生态的繁 荣注入全新动力!" 吴萍,百度 App 主任架构师

华为

“祝贺 WebAssembly 的这一新里程碑。我们认为这是一项非常有前途的技术——它提高了 Web 的性能,并且充当了 Web 和非 Web 平台之间的桥梁。我们期待在实践中更多地采用 WebAssembly。” 于志强,华为 W3C 咨询委员会代表

腾讯

" Web 的能力越来越强,承载的业务越来越复杂,需要的 计算能力也越来越高。随着 WebAssembly 技术飞速发展,我们终于迎来了 WebAssembly 标准的正式发布。2008 年我们迎来了 Web 性能的第一次飞 跃 JIT 技术,如今 WebAssembly 将再一次大幅提升 Web 性能。我们得以 将更多桌面端的软件高效地移植到 Web,同时也可以在 Web 中使用 C/C++、Rust、Go 来优化需要大量计算的模块。WebAssembly 技术日益成 熟,将促进更多的应用从桌面延伸到 Web,这将赋予本就十分强大的 Web 更加丰富的功能!" 于涛,腾讯技术总监,Alloyteam 负责人

小米

" WebAssembly 的标准化为 Web 技术的发展奠定了坚实 的基础,极大地扩展了 Web 应用的边界,解决了传统应用的可移植性问题, 提升了 Web 应用性能。作为 W3C 会员,小米将继续支持和探索 WebAssembly 标准的落地应用,包括在浏览器、小游戏等重要场景支持 WebAssembly 。未来小米将持续在业务场景中进一步支持 WebAssembly 的 标准化发展。" 周珏嘉,小米集团技术委员会技术总监

来源:https://www.w3.org/2019/12/pressrelease-wasm-rec.html.en

在公众号内回复“体系”查看高清大图

本文分享自微信公众号 - 前端先锋(jingchengyideng),作者:疯狂的技术宅

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-12-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 前端开发悄然影响物联网世界

    万维网不断发展和演变,至今已经有 27 年历史。我们如何展现内容和给内容添加样式在万维网发展的不同阶段有不同的形式,最近新出现的形式是响应式网页 —— 一个网页...

    疯狂的技术宅
  • 良好的BUG报告可以为您节省宝贵的时间。

    一份糟糕的BUG记录不仅烦人,而且大大增加了时间长的开销。为你的下一份BUG报考增加更多更详细的信息,可以使你更快速的定位BUG从而节省时间成本。

    疯狂的技术宅
  • 7 个Web开发工程师面试题和回答策略 [每日前端夜话0x34]

    Web工程师应该充分了解自己的角色,以及怎样为Web设计和开发做出贡献。这个问题能帮助面试官了解求职者打算怎样配合团队,以及他们是否知道自己要做些什么。

    疯狂的技术宅
  • 使用 RecyclerView 实现 Gallery 画廊效果,并控制 Item 停留位置

    ? RecyclerView 作为一个列表滑动控件,我们都知道它既可以横向滑动,也可以竖直滑动,可以实现线性布局管理,瀑布流布局管理,还有 GridView ...

    非著名程序员
  • GraphCuts算法解析,Graphcuts算法求最大流,最小割实例

    http://download.csdn.net/detail/wangyaninglm/8292305

    流川疯
  • 「类与对象」如何准确获取对象的内存大小?

    在上篇文章「类与对象」揭秘本质的第一步中,揭秘NSObject类的底层数据结构,如下所示:

    Jacklin
  • SpringMVC入门(搭建SpringMVC)

    application-mvc.xml,这个是配置处理器映射、处理器适配器、视图解析器、Handler

    SmileNicky
  • Jenkins用户权限授权管理

    泽阳
  • 从SAP最佳业务实践看企业管理(13)-CRM

    不同的商机阶段,会有不同的角色参与进来,不同的阶段应该有不同的任务,如果这些任务都做好了,那商机的成功率就会增加。 这就涉及到三个重要的概念:商机阶段、客户角色...

    SAP最佳业务实践
  • 数组排序的实现

    利用Collections.reverseOrder()方法:倒叙排列,数组倒置。

    泰斗贤若如

扫码关注云+社区

领取腾讯云代金券