V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
zyxk
V2EX  ›  问与答

想问一下大家为什么讨厌 electron 应用呢? 那其他 Web 应用呢 ?

  •  
  •   zyxk · 116 天前 · 5591 次点击
    这是一个创建于 116 天前的主题,其中的信息可能已经有所发展或是发生改变。
    做 win/mac 的工具类软件, 想问一下大家为什么讨厌 electron 应用呢?

    是因为体积大? 还是内存占用大? 或者是反应速度慢?


    Tauri / wails / 其他 WebView 应用呢? 是否有相同问题呢?
    第 1 条附言  ·  115 天前
    看到更多的人回复是体积大和重复占用,
    那随着微软将 WebView2 更新到系统内, 那 WebView2 应用是不是就好的多了
    57 条回复    2022-12-04 15:36:11 +08:00
    dcsuibian
        1
    dcsuibian  
       116 天前   ❤️ 3
    对我来说,还是因为卡慢。
    其实单看一次按钮点击也觉察不出来。但是长期使用后,冷启动、加载、跳转、窗口缩放时慢的感觉会越来越明显。

    另外,手机上的小程序和 h5 套壳应用也功不可没。手机性能差,能够更明显地感觉到速度上的差别。有了这种观念再去观察电脑上的 webview 就更有感觉了。
    hangbale
        2
    hangbale  
       116 天前
    又大又慢,tauri 最起码包就小不少
    8zip
        3
    8zip  
       116 天前 via Android   ❤️ 14
    他要是直接做个网页,我称他为英雄
    nomagick
        4
    nomagick  
       116 天前   ❤️ 20
    vscode 也是 electron, 没人觉得卡
    实际上 electron 卡并不是因为性能不足,而是因为阻塞,主进程和渲染进程之间互相踩脚

    说到底开发桌面应用是有门槛的,以目前 js 程序员的平均水平,做桌面应用非常勉强。

    怎么管理 IPC ,怎么在多进程间同步状态,怎么管理本地存储,怎么处理激活态 /折叠态的转化,怎么给异步任务依赖排序,怎么不让以上所有操作相互阻塞

    你突然抓一个前端来做这些事,能搞得好就怪了
    SuperManNoPain
        5
    SuperManNoPain  
       116 天前
    可以做成 web 页面却做了个应用,他真的,我哭死
    sechi
        6
    sechi  
       116 天前
    @SuperManNoPain 大部分时候是因为网页会有各种限制才去选择用 electron 套一层吧
    ck65
        7
    ck65  
       116 天前   ❤️ 9
    我的系统里本没有 Google Chrome ,也没有 Chromium ,拜 Electron 所赐,现在我的系统有了接近 10 个 Chromium 副本。类比一下这个场面:好比每需要安装一个新程序,你就要在 VMware 里创建一个新虚拟机来运行它。Electron 的臃肿就是这种观感。
    monkeyzsf
        8
    monkeyzsf  
       116 天前
    我自己干活涉及一些操作封装了 electron 做了个自用的小工具,包括多开微信也通过 electron 多 sessions 方式封装过 App 。但是体积大,响应慢确实是问题。自从 flutter 适配桌面端后,我就把小工具迁移到了 flutter 封装的新 App 上,体积小了,速度快了~
    monkeyzsf
        9
    monkeyzsf  
       116 天前   ❤️ 1
    @nomagick vscode 卡,你不卡可能是你电脑强,但不是所有人都有很好的电脑来运行
    shakoon
        10
    shakoon  
       116 天前   ❤️ 1
    @ck65 我觉得你在说张小龙,但我没有证据
    christin
        11
    christin  
       116 天前 via iPhone
    @monkeyzsf 那有没有可能是你的电脑不好呢?
    我前公司配的一台淘宝都找不到的老 thinkpad 都能正常运行不卡顿
    christin
        12
    christin  
       116 天前
    我是觉得 ui 不好看,而且操作过程中会有偶尔的卡顿情况,没有原生的好用。
    tool2d
        13
    tool2d  
       116 天前
    用 electron 可以调用 nodejs 函数,而 web 就只能调用浏览器的 JS api 。

    用着卡不卡都是其次,我觉得脱离浏览器快速写一套美观的界面出来,对于普通人是很难的一件事情。
    libook
        14
    libook  
       116 天前
    Electron 本身是个好框架,只不过因为大大降低了开发桌面应用的门槛,导致低质量应用太多,所以给了人们不好的印象。

    安装包体积和内存占用通常会大一些,毕竟带着个浏览器,反应速度方面其实 V8 效率已经奇高了,只不过再好的工具在水平不好的人手里都只能做出水平不好的应用。

    原生技术栈开发肯定能更好地控制体积、内存占用和提高性能,但是通常开发成本要比 Web 技术栈要高,这就是产品运营上的取舍问题而已。
    abcbuzhiming
        15
    abcbuzhiming  
       116 天前   ❤️ 8
    @nomagick
    请不要在拿 vscode 作为 electron 的好例子。vscode 用了多少魔法,自己去查一下好吗?这是顶级公司的顶级大佬的玩法,别说普通程序员,中等偏上的项目组,都搞不出 vscode 这种东西,那它的成功能有泛用性吗?
    wxw752
        16
    wxw752  
       116 天前
    不讨厌啊
    nomagick
        17
    nomagick  
       116 天前   ❤️ 2
    @abcbuzhiming 没啥魔法,代码都是公开的,人家治理得好而已;
    一般应用也用不着那么大的盘子,只需要架构上不出错误就可以了,别阻塞,别来回阻塞
    yannxia
        18
    yannxia  
       116 天前
    不是挺好的嘛,没有 electron 的话,我的 linux 都没有这么多 APP···
    0o0O0o0O0o
        19
    0o0O0o0O0o  
       116 天前 via iPhone
    不讨厌
    chrawsl
        20
    chrawsl  
       116 天前
    electron 应用起步就 100mb++了,不过有一说一还是比小而美小多了,我觉得也不是不能接受
    weixiangzhe
        21
    weixiangzhe  
       116 天前
    linux 用户表示多来一点也行
    ChefIsAwesome
        22
    ChefIsAwesome  
       116 天前
    看了眼电脑。除了游戏,也没装几个本地程序。steam 、ea 、epic 、ubi ,迅雷、显卡控制软件,这几个应该都是 electron 的。
    GeruzoniAnsasu
        23
    GeruzoniAnsasu  
       116 天前   ❤️ 2
    今日新增讨厌理由:

    它 tm 一个桌面 app 都能用 filter css 瞎我眼,还改不了
    woshipanghu
        24
    woshipanghu  
       116 天前 via iPhone
    现在谁还在乎 200m 的大小 不是以前了
    WinkeyLin
        25
    WinkeyLin  
       116 天前 via Android
    纯行外人,Electron 为什么不引入一个通用依赖呢,就比如微软的那一大堆运行库,所有 Electron 应用只需要调用这个库,就不用再自带一个内核了
    GeruzoniAnsasu
        26
    GeruzoniAnsasu  
       116 天前
    @WinkeyLin 因为「通用依赖」与「微软的」 就相互矛盾……
    leonshaw
        27
    leonshaw  
       116 天前
    @WinkeyLin 有啊,得靠包管理器,比如 archlinux 上 vscode 就是依赖 electron 的
    iamzuoxinyu
        28
    iamzuoxinyu  
       116 天前 via Android
    @WinkeyLin 有的…webview2 和 webkit2gtk
    liuw666
        29
    liuw666  
       116 天前 via iPhone
    electron 安装后就超过 200 了。 电脑里无数个浏览器…… 我只需要一个 chrome
    dinghmcn
        30
    dinghmcn  
       116 天前
    @woshipanghu #24 谁不在乎?更新的时候想骂人好不
    hazardous
        31
    hazardous  
       116 天前
    抛开速度不讲。
    网页太灵活,一个界面可以做成无数种样式,交互设计千奇百怪良莠不齐,一个交互动作的各个阶段都可以被 hook 然后异常处理不当就出现了各种问题。不止网页,各种 DirectUI 都让人感觉很生硬。
    而原生控件就很简单,简单意味着可靠,简单了也容易做得完美,你做什么动作就知道会有什么响应,心里就感觉很踏实。
    yao177
        32
    yao177  
       116 天前
    pwa 明显更好用
    ysc3839
        33
    ysc3839  
       116 天前
    @ck65 #7 这是 Windows 和 macOS 应用的标准操作,应用会自己打包依赖库。还有很多应用依赖别的库,为什么没人说呢?比如苹果的 Swift 就要打包一堆 libswift 运行库。许多 Qt 应用也会打包一堆 Qt 运行库。可能大部分人反感的不是重复依赖,而是体积大。
    @WinkeyLin #25 这样会导致 DLL Hell ,因为不同应用可能依赖不同版本的库,所以当硬盘容量逐渐增大后,Windows 和 macOS 应用就选择打包依赖来规避这个问题。当然理论上好的项目能实现较好的兼容性,可以尽可能减少共用库带来的问题,但是最省事的选择还是直接绕开这个问题。
    kongkongye
        34
    kongkongye  
       116 天前 via iPhone
    @ck65 臃肿感是相对的,比如手机用微信跟钉钉就是两个感觉,微信是原生的感觉,钉钉打开啥页面都慢;然后 java 里一个报错可能看到几十层的调用栈,跟 c 比起来效率可能低十几倍,但如果硬件性能上去,这种差距也感受不出来,可能是 1ms 跟 10ms 的差距。
    kongkongye
        35
    kongkongye  
       116 天前 via iPhone
    @chrawsl 所以像 utools 这种工具箱,里面塞一堆工具,平均到每个工具头上就不大了。但如果一个工具装一个 utools 那就不一样了。
    superrichman
        36
    superrichman  
       116 天前 via Android
    @WinkeyLin 有没有可能,electron 就是为了摆脱平台限定的依赖库而开发的跨平台框架。
    StephenHe
        38
    StephenHe  
       116 天前
    台式机 vscode 没事,换笔记本风扇动不动嗡嗡响
    yolee599
        39
    yolee599  
       116 天前 via Android
    体积大,吃内存,打开加载半天,经常卡顿,卡顿的时候界面会忽然错一下位,让人担心是不是要崩溃了
    PRStarDust
        40
    PRStarDust  
       116 天前
    我电脑上日常用的 Electron 软件中有 bilibili 新版客户端和 Clash For Windows 。这两个软件我最讨厌的地方就是每次点开主窗口,他们都不是居中放置的,即使我将他们最大化,也无法像普通应用那样记住窗口最大化的状态
    除此之外感觉不爽的就是体积偏大,运行起来有时候界面跳转都感觉卡……
    yvescheung
        41
    yvescheung  
       116 天前 via iPhone
    因为与其用 electron ,不如直接上网页版
    wu67
        42
    wu67  
       116 天前
    响应速度. ele 真调教得好的也就 vsc 一家吧, 别的我只能说能用, 或者说我孤陋寡闻没用过...

    另外讲真的, 用 js 写界面, 更早之前, foobar2000 的很多皮肤界面也是用 js 插件实现的, 那响应叫一个难受...

    再另外, 前端码农, 能写好代码的, 真的不多, 企业应用开发给的工期足够的更不多, 两相叠加, 我真的不太看好 ele 应用
    isbase
        43
    isbase  
       116 天前
    1password 8 和 Spotify 体验挺好
    hhacker
        44
    hhacker  
       116 天前 via Android
    个人非常喜欢 electron
    subframe75361
        45
    subframe75361  
       116 天前
    系统级 webview 不够普及,而且兼容性也是个问题,只好选 electron

    顺带一提,tauri 版的 clash 从托盘打开页面比 electron 版慢,win11
    flyn
        46
    flyn  
       115 天前
    因为之前用的 Delphi 程序体积小到惊艳。
    别说 Electron ,看到 Qt 写的应用都觉得臃肿。
    RealVic
        47
    RealVic  
       115 天前   ❤️ 1
    很多人用着个垃圾配置的电脑,对着 2022 年开发的应用挑三拣四,这种人一辈子的水平也就那样了,活该用一辈子奔腾当房奴妻管严
    silvernoo
        48
    silvernoo  
       115 天前
    不讨厌,硬盘内存现在都不值钱
    woshipanghu
        49
    woshipanghu  
       115 天前 via iPhone
    @dinghmcn 更新 1g 以下的大小 速度都区别不大
    MEIerer
        50
    MEIerer  
       115 天前
    我目前写 demo 经常用 electron ,感觉良好,可能要接触实际项目才能发现楼上的问题咯
    charlie21
        51
    charlie21  
       115 天前
    每个程序自己带着自己的 dll 这是绕过了依赖地狱问题 ( Dependency Hell 依赖地狱问题. 现在项目里有两个依赖 A 和 C ,A 和 C 分别依赖 B 的不同版本,如何处理 )

    浏览器不过是一个体积大一点的 dll

    你只能选择安装或不安装一个软件

    安装了很多 electron app 的人,大多数人在选择无视这个问题。你凝视这个问题,可你解决不了,是不是很生气?
    甚至还会被人说成 你在 “既让马儿跑又让马儿不吃草”。是不是破防了?
    opentrade
        52
    opentrade  
       115 天前
    @hangbale 市面上有啥 tauri 应用吗?
    pursuer
        53
    pursuer  
       115 天前
    @charlie21
    现在 Chrome 不都是自动更新的最新版本,网页也没见经常出问题,为什么 electron 就有版本锁定和兼容的问题?
    yjw239
        54
    yjw239  
       115 天前
    挺好的,降低跨平台成本,对于用户来说选择多了。还有除了开发群体,大多数用户压根不在意内存和容量的占用。
    magicdawn
        55
    magicdawn  
       115 天前 via Android
    Electron 比 Tauri 简单太多,工作量根本不是一个量级,说换 Tauri 的,只能说你行你上。
    mac 上 WKWebview 调试极其困难,莫名其妙不显示,不报错。devtools 很难用。
    zxCoder
        56
    zxCoder  
       115 天前
    大多数人有这个需求
    大多数人也不介意
    就够了

    程序员,开发者永远都是少数
    SekiBetu
        57
    SekiBetu  
       114 天前
    重复占用问题是可以解决的,在未来 electron 大改版之后
    关于   ·   帮助文档   ·   博客   ·   nftychat   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   实用小工具   ·   2845 人在线   最高记录 5556   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 52ms · UTC 14:52 · PVG 22:52 · LAX 07:52 · JFK 10:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.