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

个人猜想 WebAssembly 的未来

  •  
  •   mizuki9 291 天前 4279 次点击
    这是一个创建于 291 天前的主题,其中的信息可能已经有所发展或是发生改变。
    后端语言从未统一,前端语言自从浏览器发展出来后 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  
       291 天前
    webasm 现在最多的需求还是做代码加密,毕竟反编译和调试的工具没有 js 那么牛逼

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

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

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

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

    拼多多虽然恶心, 流畅度能把淘宝,美团,天猫,携程秒成渣渣,真的是清流。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4797 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 09:49 PVG 17:49 LAX 01:49 JFK 04:49
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86