WebAssembly--目标及核心优势

引言

我们在前两篇文章中分别介绍了WebAssembly语言标准制定和其演进历程(WebAssembly初探),并且通过分析WebAssembly的执行过程和内存模型原理,简单初识WebAssembly高效的性能及优势(WebAssembly--执行与内存模型),今天我们来更全面地认识下WebAssembly设计的主要目标也是其核心优势,以便在未来的工作中能充分发挥WebAssembly的作用帮助我们构建出更完美用户体验的产品。

WebAssembly 目标

WebAssembly的目标是为Web提供一种高效、便携、安全的编译格式。它旨在为那些需要高性能的应用(如游戏、音频和视频处理、物理模拟、加密等)提供支持,同时也为其他语言提供了一种在Web上运行的可能。

WebAssembly的出现并不意味着JavaScript的终结,它们并非竞争关系,而是互补关系。JavaScript擅长处理高级应用逻辑,而WebAssembly则更适合处理计算密集型任务。通过将它们结合起来,我们可以在Web上构建出更强大、更复杂的应用。

WebAssembly 核心优势

  • 性能 :WebAssembly 是一个轻量的二进制格式,提供了友好的高效冷启动,轻量部署能力。 WebAssembly 作为静态强类型低级语言,通过利用常见的硬件能力,WebAssembly 代码在不同平台上能够以接近本地速度运行。

  • 跨平台、可移植 : WebAssembly 是一个可移植、体积小、语言和平台无关的二进制格式,开发者可以使用各种自身熟悉的语言开发,生成的 WebAssembly 作为平台无关的应用发布形式;发布的 WebAssembly 模块可以在众多平台上运行,例如浏览器、后端、终端设备、移动设备、IoT 等都有广阔的应用场景。

  • 安全性:WebAssembly 运行在一个独立的沙箱中,一方面可以避免了数据的泄露和侧信道攻击,另一方面恶意代码只能影响自身沙箱环境而不会影响应用本身。此外,WebAssembly还提供了一种内存安全的编程模型,可有效防止特定类型的安全漏洞。WebAssembly 在网络安全设计原则是与其他网络技术和谐共处并保持向后兼容,WebAssembly 被限制运行在一个安全的沙箱执行环境中,像其他网络代码一样,它遵循浏览器的同源策略和授权策略。

  • 标准化 : W3C WebAssembly Working Group 制定相关的标准,可以保证标准的通用性和各厂商的兼容性。

  • 工程化 : WebAssembly 制定了标准化的中间指令格式,开发者可以使用多种不同的开发语言,如 C/C++,Java/Kotlin, TypeScript, Rust 等,利用工具链可以转化为统一的 WebAssembly 的中间指令格式,方便开发者低成本集成进自己的应用

结语

WebAssembly 的设计初衷和优势可以使其他语言和技术栈的同学可以在不同场景发挥其优势,为应用开发者提供了不一样的技术架构选型的可能性。

对于 JS、Python 等脚本语言来说,为了追求更高的性能,可以将性能热点模块通过 WebAssembly 来实现,从而获取高性能执行的收益。对于 Rust 开发者来说,利用语言的特性可以获取高性能和高安全性,但为了让开发者获得更低的开发门槛,可以编译为 WebAssembly 模块提供给类似 JavaScript、Python 等脚本语言使用,降低开发者门槛;对于 C++ 开发者来说,可以获得高性能,但 C++ 不完备的安全性机制可能会使应用存在安全隐患,可以将其编译为 WebAssembly 在轻量级安全沙箱中运行,从而使得安全机制做到开箱即用(安全性保障需要安全领域的专业支持,门槛很高)。

微信公众号首发:欢迎关注、转发、收藏,感谢努力奔向成功的你。

  • 22
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值