zyxk
0.02D
V2EX  ›  问与答

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

  •  
  •   zyxk · Dec 2, 2022 · 8663 views
    This topic created in 1436 days ago, the information mentioned may be changed or developed.
    做 win/mac 的工具类软件, 想问一下大家为什么讨厌 electron 应用呢?

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    程序员,开发者永远都是少数
    SekiBetu
    SekiBetu
    Dec 4, 2022
    57
    重复占用问题是可以解决的,在未来 electron 大改版之后
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1858 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 114ms · UTC 06:55 · PVG 14:55 · LAX 22:55 · JFK 01:55
    ♥ Do have faith in what you're doing.