WebAssembly 的发展历史概述

简介: WebAssembly 的发展历史概述

随着互联网的发展,越来越多的应用程序借助 JavaScript 迁移到了 Web 上,但人们也注意到下载、解析、编译 JavaScript 会消耗大量时间,导致页面加载时间过长,最终 , 用户流失。


为了解决这些问题,Mozilla 的工程师 Alon Zakai 在 2012 年提出了 Asm.js,经过几年的发展,终于在 2015 年进化为 WebAssembly。


WebAssembly(缩写为 Wasm)是一种用于基于堆栈的虚拟机的二进制指令格式。 Wasm 被设计为编程语言的可移植编译目标,支持在 Web 上部署客户端和服务器应用程序。

5476b223f54c0f50b53d17ac6c7e95cb.png

这是 webassembly.org 上 WebAssembly 的官方定义。 从这个定义我们可以看出WebAssembly是一种二进制指令格式。 但是WebAssembly Text Format也经常被称为WebAssembly,而实际上,这种文本格式是一种编程语言。


官宣后,WebAssembly 得到了飞速的发展。 到 2017 年 11 月,Mozilla 宣布包括 Chrome、Firefox、Safari 等所有主流浏览器都已支持 WebAssembly。 并且根据 2021 年 7 月的数据,94% 的正在使用的浏览器都支持 WebAssembly。


在得到浏览器的广泛支持后,一些重量级的应用逐渐移植到Web上,包括:


  • Google Earth — 一种主要基于卫星图像呈现地球 3D 表示的软件。
  • AutoCAD — 一种计算机辅助设计和制图软件应用程序。 它是一个在带有内部图形控制器的微型计算机上运行的桌面应用程序。
  • Doom——一款由第一人称射击游戏组成的视频游戏
  • TensorFlow — 一个用于机器学习和人工智能的免费开源软件库。

48e80aba3d7df0d87a431c03b530b786.png

这些案例也表明 WebAssembly 已经达到了它的设计目标——支持在网络上部署桌面应用程序。


WebAssembly 的快速发展源于其特殊的特性:


  • 接近原生的性能:基准测试显示它只比原生代码慢 10%。
  • WebAssembly 体积小,加载速度快,是一种紧凑的二进制格式,通常比等效的 Javascript 代码小得多。
  • 安全可靠,WebAssembly 代码在沙箱中运行,默认情况下不允许外部访问。
  • 支持多种编程语言:WebAssembly 不限制用户用于开发的语言。 只要有相应的编译器,任何语言都可以编译成 WebAssembly。
相关文章
|
4月前
|
人工智能 自然语言处理 搜索推荐
AI原生企业级Agent构建平台具备哪些特性?一篇文章看明白
AI原生企业级Agent构建平台有哪些特性?澜码正式发布AskXBOT平台为业界揭晓答案。
253 0
|
前端开发 JavaScript 网络协议
Web开发的历史发展技术演变
本文对Web开发的历史发展的了解很有裨益,推荐给大家。本文尝试从历史发展角度,说说各种研发模式的优劣。 一、简单明快的早期时代,二、后端为主的 MVC 时代,三、Ajax 带来的 SPA 时代,四、前端为主的 MV* 时代,五、Node 带来的全栈时代
1838 0
Web开发的历史发展技术演变
|
1月前
|
自然语言处理 编译器 C语言
【C/C++ 标准的发展】C/C++ 语言标准的历史和演变
【C/C++ 标准的发展】C/C++ 语言标准的历史和演变
53 3
|
2月前
|
边缘计算 Cloud Native 安全
「译文」CNCF 边缘原生应用程序原则白皮书
「译文」CNCF 边缘原生应用程序原则白皮书
|
2月前
|
IDE 小程序 API
【社区每周】IDE性能分析工具即将上线;多项数字化产品支持沙箱调试(1月第三期)
【社区每周】IDE性能分析工具即将上线;多项数字化产品支持沙箱调试(1月第三期)
20 0
|
4月前
|
前端开发 JavaScript IDE
蚂蚁CodeFuse新版发布,前端能力优化,支持安卓开发
蚂蚁百灵研发助手 CodeFuse 插件发布新版,本版本新增支持 Android Studio,并针对 JavaScript、TypeScript 等前端语言优化了模型效果,同时还将输出Token增加到最多 1024 个。目前 CodeFuse 处于邀请测试阶段,欢迎各位开发者前往官网申请资格参与测试。在之前已安装插件的用户需要下载最新版本,才可享受 CodeFuse 插件最新能力。
117 1
|
4月前
|
人工智能 Oracle Java
云和数据JDK17新特性历史
云和数据JDK17新特性历史
32 0
|
7月前
|
人工智能 算法 Java
编程语言的发展历史
编程语言的发展历史
|
9月前
|
机器学习/深度学习 算法 安全
隐语V0.7.11版本更新:金融全链路算法完善 ,面向开发者发布配套的交互式教程
隐语V0.7.11版本更新:金融全链路算法完善 ,面向开发者发布配套的交互式教程
151 0
|
11月前
|
存储 编译器 C语言
带你读《2022龙蜥社区全景白皮书》——5.4.1 C++编译器和基础库
带你读《2022龙蜥社区全景白皮书》——5.4.1 C++编译器和基础库
180 1