WebAssembly入门课
于航
PayPal 高级软件工程师
新⼈⾸单¥9.9
864 人已学习
课程目录
已更新 5 讲 / 共 22 讲
0/4登录后,你可以任选4讲全文学习。
课前必读 (3讲)
开篇词 | 我们为什么要了解 WebAssembly?
免费
01 | 基础篇:学习此课程你需要了解哪些基础知识?
02 | 历史篇:为什么会有 WebAssembly 这样一门技术?
核心原理篇 (2讲)
03 | WebAssembly 是一门新的编程语言吗?
04 | WebAssembly 模块的基本组成结构到底有多简单?
WebAssembly入门课
15
15
1.0x
00:00/00:00
登录|注册

02 | 历史篇:为什么会有 WebAssembly 这样一门技术?

于航 2020-09-07
你好,我是于航。
在开始真正学习 Wasm 这门技术之前,我想先来问你一个问题:你有没有思考过,在 Web 技术的历史发展长河中,为什么会出现 Wasm 这样一门技术?现有的这些 Web 技术,又存在着哪些无法解决的问题?
要知道,所有新兴技术的诞生都一定有它存在的意义,或者要去解决的问题。比如 jQuery 之于浏览器的兼容性、Vue.js / React.js 之于 Web 应用的构建模式。
虽然用前端框架和库来类比 Wasm 不算十分合适,但我想阐述的是,Wasm 的出现也并非偶然。在这节课的内容中,我们就来一起看看 Wasm 诞生背后的那些故事。相信在学习完本课程后,你会对 Wasm 有了一些新的了解。而这些了解有时可能比一项技术本身更加重要。

JavaScript 的发展和困境

1995 年末,Brendan Eich 仅用了 10 天时间便发明出了 JavaScript 编程语言,而在随后的二十多年中,JavaScript 已经成为了不可动摇的,用于开发 Web 前端应用的必备编程语言之一。
不仅如此,随着后来诸如 React Native、Electron 以及 Vue.js 等各类框架的不断涌现,JavaScript 曾经一度成为 GitHub 语言排行榜的年度冠军。JavaScript 也因此被广泛应用到了各行各业、各个领域的各类项目中。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《WebAssembly入门课》,如需阅读全部文章,
请订阅文章所属专栏新⼈⾸单¥9.9
立即订阅
登录 后留言

精选留言(6)

  • Jupiter
    老师好,Typescript 可以设置参数类型,现在的项目中也经常使用,但是最后Typescript的代码也会被解释成Javascript, 所以Typescripts是不是只是规范程序员写代码,对于应用的性能其实没有什么帮助?

    作者回复: 你可以参考一个名为 AssemblyScript 的项目。这个项目就是基于 TS 语法设计的,可以将以 TS 语法编写的代码编译为 Wasm 格式。通常来讲,在日常的 Web 开发中,由于 TS 需要被编译为 JS,所以对于最终的代码执行性能是没有什么影响的。但 TS 的类型信息在对于编译到 Wasm 来说,还是可以被参考的。

    2020-09-08
    2
  • navy
    wasm纯cpu计算和native差别不大,但是一旦涉及到访存就麻烦了,因为wavm只能访问vm内的内存。这就和应用逻辑非常相关了。典型就是protobuf message操作导致读写放大。
    2020-09-08
    1
  • 浩明啦
    评论里老师说AssemblyScript这个,我刚刚扫了一眼,我们现在ts的项目也能用这个来编译用到生产环境上么? 不过很多的那些react 和vue框架打包后为啥不直接编译wasm呢?
    2020-09-11
  • fa
    阻碍在于苹果允不允许我在iOS上使用,目前有人在做基于wasm的热更新,别像jspatch一样给封了
    2020-09-11
  • Cryhard
    ES6等后续版本如果解决了浏览器兼容性问题,后续不再需要“编译”回老版脚本语言,从而获得了性能保障。这样的情况是否会成为wasm的重大阻碍呢?

    作者回复: 直接运行 ES6 代码的尝试其实有很多企业很早就在尝试,但大家都相对比较保守,还是会去兼容老一代的浏览器。就性能提升来讲,就算是直接运行 ES6 的代码,JavaScript 引擎也同样还是需要经历生成 AST,Profiling,Lowering,以及 Optimization 和 De-optimization 的过程,因此相较于 Wasm 在整个引擎 Pipeline 中更加靠后的位置,性能上也还是无法比拟的。况且性能也只是 Wasm 的一方面特性,另一个“历史代码可复用性”的特征我们也同样需要关注。因此其实两者不会有太多的重叠,更不会阻碍 Wasm 的发展。

    2020-09-08
  • 时光之刃
    这个技术足以改变世界+++
    2020-09-08
收起评论
6
返回
顶部