V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
mizuki9
V2EX  ›  程序员

个人猜想 WebAssembly 的未来

  •  
  •   mizuki9 · 8 天前 · 3114 次点击
    后端语言从未统一,前端语言自从浏览器发展出来后 js 几乎就是唯一的选择。
    在此期间产生许多将后端语言转换为 js 的各种库,各种尝试,直到 WebAssembly 出现,给出了一条将其他语言都编译为 wasm ,提供给 js 使用的一条路。
    由于前端语言是唯一的,并且我们可以看到历史上不断有需求将其他语言转换为 js ,所以 wasm 必然在这个目标(需求)上成功。
    但除此之外,
    替代 docker ?各语言没有这个动力(需求),目前的 docker 已经满足了,想要推动这个目标,只有 wasi 相关的几家公司自己发展,就算 wasi 发展完善了,各语言也是要适配的,感觉不太能行,似乎没有希望。
    docker 是自己去适应所有语言,其他程序跑在实体机(例如 Linux)与跑在 docker 对于程序自身感受来说,并没有什么明确的区别。
    wasi 除非把自己虚拟化成某个 Linux 的发行版,提供与这个系统相同的 api ,否则每种语言适配 wasi 就像适配一个新系统。
    22 条回复    2025-02-14 19:45:34 +08:00
    murmur
        1
    murmur  
       8 天前
    webasm 现在最多的需求还是做代码加密,毕竟反编译和调试的工具没有 js 那么牛逼

    以前 b 站软解 h265 卡的一笔,webasm 再牛逼也比不上显卡的编解码器,而这玩意对于 native 就是洒洒水

    很早以前就侧重 app 了,既然是 app 我干嘛不用 native 直接做呢,除去大量的编解码需求,就那点 js 运算,瓶颈不全在 dom 渲染上,网页精简 50%,你想不流畅都难
    Rorysky
        2
    Rorysky  
       7 天前
    没有杀手应用,主要还是用来提升性能
    Linho1219
        3
    Linho1219  
       7 天前 via Android
    感觉 wasm 还是突出一个方便吧,让 PWA 能做更多的事情,看看能不能早点把 Electron 干掉(
    w568w
        4
    w568w  
       7 天前   ❤️ 1
    WebAssembly 的另一个雄心壮志是脱离 Web ,就像 WebGPU 、WebRTC 一样,成为可以独立存在的技术。

    WebGPU 现在已经发展成一个桌面图形技术栈,有自己的 Shader 语言; WebRTC 也成为 P2P 协议的一种了。这个意义上来说,WebAssembly 其实有替代 JVM 、成为原生应用虚拟机的目标。

    https://wasmtime.dev/ 这样的独立 WebAssembly 运行时,已经比较成熟了。只是「一次编译,到处运行」的需求究竟存不存在,还真不好说。
    sagaxu
        5
    sagaxu  
       7 天前
    WebAssembly ,大概率绑死在 Web 领域,脱离 Web 意义不大,其它语言拿 wasm 重写一个 runtime ,或者编译到 wasm 意义何在?恐怕还不如 CLR/JVM 或者 llvm/graalvm 靠谱。
    shui14
        6
    shui14  
       7 天前
    楼上提到的,webgpu 。很多人被这个 web 骗了,不管 dawn 还是 wgpu ,都是 native 优先,在 web 上只是一个最小子集
    wasm 同样,wasi 在于没有里程碑的应用,各大平台壁垒没那么容易突破,flash 是特例,技术上人家 as 没毛病。vercel 的 serverless function 提供了多语言架构的可能,就是一个项目里多个模块选不同的方案
    我做过一个测试,不过有点久了
    https://www.v2ex.com/t/963777
    它的 rust 实现就是 wasm 方案,其他语言好像也有这种方式
    tool2dx
        7
    tool2dx  
       7 天前 via Android
    专业前端谁用 wasm 啊,都是框架。这就是设计给后端用的。
    但是后端有那么多语言可选,也未必选 wasm 。
    nagisaushio
        8
    nagisaushio  
       7 天前   ❤️ 1
    wasm 在 web 外最有力的应用应该是助力插件系统
    yplam
        9
    yplam  
       7 天前 via Android
    用 WebAssembly 仅仅是因为有些库已经用其他语言实现了,封装一下给 JS 调用
    TimPeake
        10
    TimPeake  
       7 天前
    没啥大的出路。js 那么容易上手, 在加上现在 ai 的辅助, 实在想不出用 wasm 的场景。
    importmeta
        11
    importmeta  
       7 天前
    没人说 Blazor 吗?
    moonheart
        12
    moonheart  
       7 天前
    wanghoi
        13
    wanghoi  
       7 天前
    wasm 有 simd 支持,计算密集部分速率 2~10x ,像 IDCT 计算
    dbskcnc
        14
    dbskcnc  
       7 天前
    wasm 用来做 web app 还是有点想像空间的,像 flutter 目前就在做,还有就是应用接口/插件,应用版的 docker wasi 也算可以,不过现在接口已经有很多,像 http,grpc 都已经很标准了,留下的空间似乎不多
    areless
        15
    areless  
       7 天前
    TensorFlow.js 利用 wasm 在手机 WEB 端做一些图像识别的功能,有 simd 加持特别快。就是模型加载需要时间。要是加载也跟 native 一样快就好了。
    jeesk
        16
    jeesk  
       6 天前 via Android
    未来所有大型公司 app 都是一个浏览器 服不服
    julyclyde
        17
    julyclyde  
       6 天前
    有没有想过,也许前端本身并不是必须的呢
    以至于把其他语言转成 js 也不是个必须的事了
    julyclyde
        18
    julyclyde  
       6 天前
    @murmur 我也觉得 app 应该尽快拨乱反正,改回 native ,不要再套浏览器
    murmur
        19
    murmur  
       6 天前
    @jeesk 浏览器可以写桥接调用 native ,不用 webasm ,pdd 这种还要利用漏洞窃取用户隐私的,webasm 能满足他需求吗
    pursuer
        20
    pursuer  
       6 天前
    之前写过一个 WebAssembly 的 JIT 编译运行时
    https://github.com/partic2/pwart
    但是有点懒得继续跟进新特性了,后面接着加复杂度那我不如拿 TCC 来改个 C 的运行时,可能还简单一点。
    jeesk
        21
    jeesk  
       5 天前 via Android
    @julyclyde 该不回来了, 写网页都能卡成狗,更加别说网页了。 有本事学学拼多多,把网页写流畅就谢天谢地了
    jeesk
        22
    jeesk  
       5 天前 via Android
    @julyclyde 改不回来了, 写网页都能卡成狗,更加别说 app 了。 有本事学学拼多多,把网页写流畅就谢天谢地了。

    拼多多虽然恶心, 流畅度能把淘宝,美团,天猫,携程秒成渣渣,真的是清流。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3459 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 10:51 · PVG 18:51 · LAX 02:51 · JFK 05:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.