• 冷石然
    2020-09-10
    看完这篇,老师您总结里的那三个问题,我一个也没搞明白。只有我一个人这样么?所以,老师,wasm到底是什么?有什么用,或者说,我们为什么要用它,场景是什么呢?

    作者回复: 同学你好,关于这三个问题我会在整个专栏后续的文章中,从各个角度来给你细致的讲解。本篇只是作为开篇词,主要是从我接触 Wasm 以来的一些经历和 Wasm 发展的一些概况来讲述的。可以继续看看后续的文章来了解哈。

    共 4 条评论
    6
  • 郑俊祥
    2020-09-07
    终于有相关教程了,开心! 好好学习,加油

    作者回复: 一起加油!

    
    6
  • giteebravo
    2020-09-08
    就像 node.js 源于 web 但又不止 web 么?

    作者回复: 其实不太一样哈。Node.js 本身只是一个基于 JavaScript 的 out-of-web 的运行时。但是 Wasm 其实是类比于 JavaScript 的位置,只不过它更加底层,属于新的虚拟机字节码标准。而实际上能够执行这种字节码的基础设施却有很多很多,包括浏览器上的各类 JavaScript 引擎以及浏览器外的诸如 wasm3、wasmtime、lucet 以及 WAMR 等等优秀的虚拟机。

    
    5
  • 凢凢
    2020-11-12
    老师,前端一枚,对这方面完全不了解,是不是得去打卡C++再来?

    作者回复: 对于学习课程来说其实不需要哈,课程里只是在最后的实践中用到了一部分 C++ 的代码,使用到的语法应该还是很简单易懂的。但如果想深入使用 Wasm 最好还是掌握一门系统级编程语言,比如 C++ 或者 Rust。

    
    1
  • Joshua丿0o弌
    2021-09-02
    WebAssembly对前端人员来讲可能很难普及,因为要学一门系统级编程语言。由此,我想到了Unity是最早支持WebAssembly的开发引擎,可以直接发布成Web网页,Unity使用的是C#,从Unity2021.2版开始内置了Visual Scripting这种可视化开发方式,也就是不需要懂得编程,Visual Scripting是给设计师用的,所以前端人员用起来自然也没问题。所以我的想法是前端人员是不是可以用Unity做开发工具,轻松使用WebAssembly。但Unity最早是游戏引擎,发布的Web网页虽然运行很快,但启动有点慢,如果是一个简单网页不值得,做大型应用时有优势。于老师对这方面有没有想法?

    作者回复: Visual Scripting还是第一次听说,我去了解一下看看。但另一方面,如果降低了编程语言原有的表达能力,可能意味着生成的Wasm质量会相对降低(开发者提供给编译器的信息不足)。因此,对于大型应用来说,本来可能需要十分关注细节的部分,就没法被cover到了。

    
    
  • Joe Black
    2021-04-11
    看起来用node.js可以运行wasm啊

    作者回复: 嗯是可以的

    
    
  • Cryhard
    2020-09-08
    上车! (之前看过每日一课里面的分享,感觉于航老师应该靠谱)

    作者回复: 哈哈,感谢支持,一起学习!

    
    
  • qinsi
    2020-09-08
    目前看到的浏览器外的客户端应用似乎大多还只是把wasm当成一种“更好的Lua“来用,因为都是可以在一个内嵌的虚拟机中运行可更新的代码,所以常被用来实现代码逻辑的热更新。但要在封闭的花园中使用本身就有阻力(比如iOS版的微信小程序,如果允许热更新,应用审核就形同虚设)。 服务端方面,传统的组件大都提供了脚本扩展的功能(比如Nginx官方支持JavaScript,OpenResty和Redis等支持lua),同时也都可以编写原生组件来扩展功能(如Node.js的N-API)。wasm相比原生代码在可移植性上更好,同时性能上优于脚本,应该可以在一些新的场景中找到自己的位置。但从标准化的系统接口这个角度来说,这是以JVM为代表的一众生态一直在解决的问题,所以wasi更像是在另一个生态中重新发明一遍轮子。 当前有很多语言都号称支持wasm,但实现方式各不相同,性能也不一样。需要手工内存管理的语言通常都支持直接编译为wasm;带gc的语言可能就需要额外输出一个wasm实现的gc;脚本语言最省事,用wasm实现一个解释脚本的虚拟机就可以跑起来了。 对于web前端开发人员来讲,为了极致的运行性能而去重新学习和使用一门支持wasm的系统级编程语言,开发效率不升反降。所以wasm可能并不会为前端开发带来多少新的机会,相反应该是为系统级开发人员提供了一个进入前端的窗口。 以上是我当前的看法,希望学完之后能有新的认识。
    展开
    共 2 条评论
    39
  • arch
    2020-09-07
    绝大多数service mesh框架已支持wasm。Istio 1.5 回归单体架构,并抛却原有的 out-of-process 的数据面(Envoy)扩展方式,转而拥抱基于 WASM 的 in-proxy 扩展,以期获得更好的性能。
    
    8
  • 海德格尔r
    2020-09-08
    封面选的好,订阅少不了(doge)
    
    6