V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
hongchaodeng
V2EX  ›  程序员

为什么大家这么讨厌 Electron?

  •  
  •   hongchaodeng · 2022-12-03 11:54:34 +08:00 · 22511 次点击
    这是一个创建于 723 天前的主题,其中的信息可能已经有所发展或是发生改变。

    小弟最近搞了个新项目:https://he3.app

    然后来 V2 发了一个贴: https://www.v2ex.com/t/899531#reply79

    然后发现下面好多人非常讨厌 Electron ,说要换 Tauri 。

    我在开发前也是了解 Tauri 的,而且自己也用 Tauri 写过项目。觉得 Tauri 挺好的,对 Tauri 也没有特别爱。觉得 Electron 也挺好的,技术成熟,跨平台兼容性好。但是发现好多人特别反感 Electron 。

    这是为什么呀?想听听大家的意见,弥补下自己认知的缺陷。

    164 条回复    2023-01-13 12:18:49 +08:00
    1  2  
    Dragonphy
        101
    Dragonphy  
       2022-12-04 00:12:34 +08:00   ❤️ 2
    其实我更不理解明明 web 能做的非要做成客户端
    maokabc
        102
    maokabc  
       2022-12-04 00:24:57 +08:00 via Android   ❤️ 1
    我个人连 vscode 都不会去用,还会用其他基于 electron 的软件?
    silvernoo
        103
    silvernoo  
       2022-12-04 00:35:00 +08:00
    vscode 轻量级编辑器,lz 这个重量级小工具
    lizhenda
        104
    lizhenda  
       2022-12-04 01:00:36 +08:00
    其实我想说的是,tauri 做的应用其实比 electron 卡,居然每人说这个体验。windows 的 webview2 真是有点拉垮。tauri 的内存泄漏问题都快一年了还没修复。最开始对它热情,到后面做了几个应用后,就觉得为了省点体积选它其实没啥必要。商业应用我还是会继续选择 Electron 。
    pC0oc4EbCSsJUy4W
        105
    pC0oc4EbCSsJUy4W  
       2022-12-04 02:03:12 +08:00
    其他都能接受,就是启动速度,ui 响应慢
    laqow
        106
    laqow  
       2022-12-04 02:37:28 +08:00
    天国的 flash 有什么话想说但说不出来
    youtubbbbb
        107
    youtubbbbb  
       2022-12-04 06:51:48 +08:00
    @royzxq 我觉得合理
    IslandOwnerHuang
        108
    IslandOwnerHuang  
       2022-12-04 06:52:12 +08:00
    没多少功能的软件却占用上百 MB 的硬盘,特别是对于苹果这种硬盘价比黄金的设备实在是顶不住。
    liuw666
        109
    liuw666  
       2022-12-04 08:14:38 +08:00 via iPhone
    2022 苹果还是 256 硬盘起步,硬盘卖的跟金子似的。就算是 14pro 的 512G 起,又能装几个 electron 。如果电脑上应用全是 electron ,不干活了吗? 不下载开发工具了?不下载代码了? 电脑上就不存文件了吗? 小工具就应该小
    luxor
        110
    luxor  
       2022-12-04 09:00:42 +08:00
    客户端的 electron 就是服务端的 java ,极其占用资源。这种技术都应该淘汰。
    jfdnet
        111
    jfdnet  
       2022-12-04 09:07:05 +08:00
    @pengtdyd 连 1Password 这种成名软件 改成 Electron 都被骂得狗血淋头 /


    除非必要,确实不想装基于 Electron
    abc8678
        112
    abc8678  
       2022-12-04 09:14:13 +08:00 via Android
    @kran 可惜 IE 已经死了
    abc8678
        113
    abc8678  
       2022-12-04 09:29:04 +08:00 via Android
    @blankmiss 百度网盘也是吗?之前都没发现
    xiaotianhu
        114
    xiaotianhu  
       2022-12-04 09:46:47 +08:00
    @bthulu
    用户:内存是什么? 好卡啊,一定是电脑的问题,破玩意又要花钱更新了

    之前试用一下飞书,下载居然 1.2G ,感觉自己下了个操作系统。
    好像没怎么听说谁喷飞书好大的,都说好用。
    joyanhui
        115
    joyanhui  
       2022-12-04 09:50:59 +08:00
    客户端尺寸太大,部分软件吃性能太离谱
    guog
        116
    guog  
       2022-12-04 11:04:32 +08:00 via Android
    @jeesk postman 还不够难受吗? Mac 版启动慢,强制更新,每次都几百兆,输入框双击选中有 bug ,偶尔想要测试个 URL ,一打开竟然在冷起,墨迹好几分钟。还不如我直接 命令行 http 了
    leeyuzhe
        117
    leeyuzhe  
       2022-12-04 11:07:14 +08:00   ❤️ 2
    我始终认为 atom 就死在这上面,启动慢,使用卡顿最终被 vscodde 替代。你看个人开发者的 sublime 都没死,它却先死了
    systemcall
        118
    systemcall  
       2022-12-04 11:14:04 +08:00 via Android
    @nomagick #36
    electron 早就不支持 XP 了,现在不支持 win7 了
    webview2 支持 win7
    而且自己带一个基于 chromium 的东西来画界面,十几年前就有不少公司玩过,那个时候还是 cef 吧。但是别的地方是原生的,所以性能没那么差
    ericguo
        119
    ericguo  
       2022-12-04 11:14:35 +08:00
    @royzxq 你说的对,但用 Mac 内存多 16G 就要 3000 ,当然能不用 Eletron 就不用。
    systemcall
        120
    systemcall  
       2022-12-04 11:16:25 +08:00 via Android
    @lizhenda #104
    tauri 的应用不少有内存泄漏的问题,一个小工具开久了甚至可以吃掉 1G 多甚至更高的内存
    但是哪怕内存泄漏了,也没比正常的 electron 多太多。而且如果软件都换 tauri ,只要内存泄漏不太过分,就不会有 electron 多
    icedx
        121
    icedx  
       2022-12-04 11:17:28 +08:00
    平均一个软件 5 个进程, 一个进程 100 M
    elboble
        122
    elboble  
       2022-12-04 11:37:24 +08:00
    @royzxq 6.7.7 以前一样死,刚才看了一眼 6.8.8 了,试试看。从什么时候开始是 electron 的?
    abear
        123
    abear  
       2022-12-04 11:45:33 +08:00
    @jeesk postman 不好用,慢死啦。用插件 Thunder Client 感觉都好得多
    stevefan1999
        124
    stevefan1999  
       2022-12-04 12:14:14 +08:00 via Android   ❤️ 1
    誰都討厭胖子
    blackmao
        125
    blackmao  
       2022-12-04 12:16:28 +08:00
    因为会的人太多了
    jeesk
        126
    jeesk  
       2022-12-04 12:30:59 +08:00
    @leeyuzhe atom 死了吗? 还在维护呢。
    blankmiss
        127
    blankmiss  
       2022-12-04 12:43:57 +08:00
    @abc8678 不是 只是附带一个 chromium 环境 不知道一年后我电脑的 chromium 环境能不能破百
    jfcherng
        128
    jfcherng  
       2022-12-04 12:47:21 +08:00
    @jeesk #126 https://github.com/atom/atom/releases/tag/v1.63.1

    > This is the last release of Atom. We will be archiving Atom and all repositories under the Atom organization on December 15, 2022.
    > You can learn more about the official sunset of Atom in our blog post.
    pendulum
        129
    pendulum  
       2022-12-04 13:42:14 +08:00
    @hongchaodeng 要离线版+特殊 API 的话,写个本地 web server ,常驻图标栏,唤起浏览器不就行了?
    leeyuzhe
        130
    leeyuzhe  
       2022-12-04 14:43:32 +08:00
    @jeesk 死了官网首页写着 Atom and all repositories under Atom will be archived on December 15
    vitoaaazzz
        131
    vitoaaazzz  
       2022-12-04 15:02:33 +08:00   ❤️ 1
    作为开发者用 electron 简直不要太快,electron+vue+elementui+npm 庞大的三方库,开发桌面端简直不要太高效。
    当然作为用户的时候用 electron 开发的软件就太用臃肿了,保底 100MB 以上,但是抛开成见来说,electron 的性能并不会差,启动效率也是很高的,内存占用以现在的配置水准来说也不算多吧。很多优秀的软件也都是用 electron 开发的,如 utools
    SekiBetu
        132
    SekiBetu  
       2022-12-04 15:31:45 +08:00
    内存不值钱,但是平民买不起 32G 的内存
    royzxq
        133
    royzxq  
       2022-12-04 15:40:36 +08:00   ❤️ 1
    @elboble 好像就最近吧,我也是刚换到 6.8.x 变成了 electron ,6.7.x 还不是 electron.. 这 qq 发版也不遵循 semver 啊
    hongchaodeng
        134
    hongchaodeng  
    OP
       2022-12-04 15:46:24 +08:00
    @Dragonphy 亲~ 这是因为有些功能在 web 端不可用。Electron 不等于 Chrome 哈~
    MagicMC
        135
    MagicMC  
       2022-12-04 15:48:16 +08:00
    "大" "慢" "卡"
    以及你要不要数数你电脑上一共有多少个 chromium.png
    hongchaodeng
        136
    hongchaodeng  
    OP
       2022-12-04 15:49:00 +08:00
    @pendulum 这不就是自己造了个 Electron 轮子么... 我们还是希望有框架 (Electron 、Tauri) 这种能直接使用而不是自研哈
    qsnow6
        137
    qsnow6  
       2022-12-04 15:55:07 +08:00
    既然都用 electron 了,为什么不用 web 版?
    cktsun
        138
    cktsun  
       2022-12-04 17:10:38 +08:00 via Android
    就是有一些網站非要你安裝 electron 桌面端, 而不開放網頁版
    Damn
        139
    Damn  
       2022-12-04 18:18:28 +08:00
    @ccchigh 单条 512G 的,非开发者的正常用户,谁会实装呢?王思聪?
    elboble
        140
    elboble  
       2022-12-04 18:30:41 +08:00
    @royzxq 打包 280M ,展开 700 多兆,不支持 cmd+N 多开,但是可以命令行启动第二个实例,其他除了第一次,可以密码登录。
    再看几天转圈圈吧。
    jim9606
        141
    jim9606  
       2022-12-04 19:13:25 +08:00   ❤️ 1
    1. 不是所有人都能安装 /更新系统 webview 的,例如某些倒霉的公司员工和 win7 用户,如果系统的 webview 有 bug 又不能更新那谁去解决?如果 webview 厂商摆烂拒不修 bug 咋解决?
    2. electron 只要你不用平台的特殊特性,能提供跨平台一致的使用体验,要太难做很多软件就直接不跨平台了。
    3. 就拿 Windows 最新的第一方 UI 方案 Windows APP SDK 来说吧,目前只能使用 MSIX 集中部署,而且**每个小版本的 runtime 包不共享**,在现在大概半年出一个小版本的状态,想靠集中部署省硬盘属于想想就好的状态。另外这种部署方式既不能安全清理旧版本又不能防止用户手贱卸载要用的版本。能够靠共享依赖稳定用下去的,估计只有.NET Framework 那种已经停止发展的技术吧。
    44670
        142
    44670  
       2022-12-04 19:14:33 +08:00   ❤️ 1
    Electron 是一个开源框架,它可以帮助开发者在不同平台上开发桌面应用。它的最大优点是可以让开发者使用网页技术( HTML 、CSS 和 JavaScript )开发桌面应用,这大大降低了开发门槛。

    但是,Electron 也有一些缺点。首先,Electron 应用通常比原生应用大得多,因为它们包含了一个完整的 Chromium 内核。这意味着 Electron 应用通常需要更多的硬盘空间和内存。

    其次,Electron 应用的性能通常不如原生应用。因为它们是基于网页技术开发的,所以它们会受到浏览器的限制,运行速度会慢于原生应用。

    此外,Electron 应用也有一些安全问题。因为 Electron 应用是基于网页技术开发的,所以它们存在一些网页技术存在的安全漏洞。

    因此,Electron 受到了一些人的质疑。对于一些人来说,Electron 应用的体积大、性能差和安全问题是不能接受的。所以他们可能会更喜欢其他的框架,比如 Tauri ,它可以开发轻量级的原生桌面应用。但是,这不意味着 Electron 一定不好,它对于一些特定的场景还是很有用的。
    rpish
        143
    rpish  
       2022-12-04 20:25:32 +08:00   ❤️ 1
    口嫌体正直
    你问程序员喜欢 electron 吗?都说讨厌.
    你问喜欢这些 electron 应用吗?又不讨厌了.
    https://www.electronjs.org/apps
    KENNHI
        144
    KENNHI  
       2022-12-04 20:40:32 +08:00 via Android
    因为用 electron 就算了,做得也烂,体验也是网页。做得好的有 vscode ,做得烂的有 teams ,骂的肯定不是 vscode
    xiaohundun
        145
    xiaohundun  
       2022-12-04 20:42:38 +08:00   ❤️ 1
    这个工具是我想要的,谢谢作者
    hongchaodeng
        146
    hongchaodeng  
    OP
       2022-12-04 21:05:51 +08:00
    @qsnow6 Electron 也不等同于 web 的... 我们在跨平台上也花了不少功夫。目前 web 端还在测试中,有一些功能有问题呢亲~
    Znemo
        147
    Znemo  
       2022-12-05 00:35:51 +08:00
    @pengtdyd 终于看见个真实的
    honghaoz
        148
    honghaoz  
       2022-12-05 02:57:33 +08:00 via iPhone
    就跟上幼儿园开卡车去一样。一个 mini app ,包装个浏览器,还加上一堆有的没的的依赖。臃肿至极。
    wangtian2020
        149
    wangtian2020  
       2022-12-05 08:58:25 +08:00
    @MengiNo 建议不用 rust 开发的软件全都批判一番,因为“牺牲用户体验换开发效率”了
    cdxjcl123
        150
    cdxjcl123  
       2022-12-05 09:33:15 +08:00
    也不是说讨厌 Electron
    如果有别的非 Electron 的同功能备选项,就不会选择 Electron
    shabbyin
        151
    shabbyin  
       2022-12-05 10:35:22 +08:00
    @pengtdyd 哈哈 看破不说破 都是工具而已
    jack230230
        152
    jack230230  
       2022-12-05 10:52:56 +08:00
    其实并没有讨厌。这主要还是一个性价比问题,软件足够优秀,就可以忽视他内存和磁盘占用问题,不够优秀,自然觉得臃肿。多么简单的道理。
    Alias4ck
        153
    Alias4ck  
       2022-12-05 11:07:24 +08:00   ❤️ 2
    ChatGPT:
    有几个原因:

    Electron 应用的运行速度很慢,因为它需要运行一个完整的 Chrome 浏览器来渲染界面。

    Electron 应用的体积很大,因为它包含了 Chrome 浏览器和 Node.js 的运行时,这会导致安装包很大。

    Electron 应用的安全性不高,因为它依赖于 Chromium 浏览器,这意味着它存在许多与浏览器相同的漏洞。

    Electron 应用的跨平台性不好,因为它需要在不同的操作系统上编译,这意味着你需要为每个平台维护不同的代码。

    Electron 应用的可维护性差,因为它需要维护两个不同的代码库( JavaScript 和 C++),这增加了开发难度。
    hongchaodeng
        154
    hongchaodeng  
    OP
       2022-12-05 13:13:10 +08:00
    @Alias4ck ChatGPT 没跟上时代啊... 跨平台和可维护性觉得是 Electron 的优势。安全就太复杂了,没有哪个可以说更安全。
    wanacry
        155
    wanacry  
       2022-12-05 13:42:12 +08:00
    一个主要原因是 Electron 会导致应用程序的体积增大,并且会消耗更多的资源。另一个原因是它并不是所有情况下都是最佳选择,并且由于它是一个跨平台框架,开发者在设计和实现应用时可能会遇到一些挑战。
    agagega
        156
    agagega  
       2022-12-05 17:17:18 +08:00
    用 Electron 是可以理解的,但有相似选择时,我会用钱给不用 Electron 的那个投票。

    「原生」和「跨平台」这两个要求太难同时成立,就像 Windows 和 Linux 的 I/O 多路复用很难用一套 API 统一一样(设计上只能牺牲一方)。要么就是类似 Flutter 或者 Compose Desktop 的自绘方案,但还不成熟。

    Electron 的很多问题并不是 Web 技术固有的,只是像前面 V 友说的一样,前端程序员水平参差不齐。在浏览器这个有限制的环境里都能捅篓子,到功能更丰富的 Electron 这里体验不好很正常。
    lyzhang1999
        157
    lyzhang1999  
       2022-12-05 17:21:17 +08:00
    CPU 和内存不是拿来压榨难道天天 5% 的使用量打败全国 99% 的用户吗。

    还有说重复的 chromium 和打包体积大的问题,你电脑里一部小电影都 1G 了。
    frodez
        158
    frodez  
       2022-12-05 18:57:46 +08:00
    holulu
        159
    holulu  
       2022-12-06 08:04:33 +08:00
    挺想试试 He3 的,却没有 Linux 版本。不是说 Electron 跨平台兼容性好么?怎么都不 for 流行的 Linux 发行版?个人感觉跨平台兼容性目前应该没有哪个做得好到能轻易构建一个完整应用的。用着用着就发现不同平台之间的差异并不是一个框架或库能 cover 的。以前也觉得用个跨平台的库能节省多平台开发的时间,但那只是初始阶段而已。过了那个阶段之后就越来越感觉还不如一个平台开发一套省心。如果真觉得一个平台开发一套费劲,为何就不能做 web 呢?其实很多开源实用工具都是 cli+web 的模式,让用户选择用 cli 还是 web 。web 直接打包在 cli 里,需要用的时候一个 cli 命令就打开了,什么都省了。
    hongchaodeng
        160
    hongchaodeng  
    OP
       2022-12-06 10:10:20 +08:00
    @holulu

    > 个人感觉跨平台兼容性目前应该没有哪个做得好到能轻易构建一个完整应用的。用着用着就发现不同平台之间的差异并不是一个框架或库能 cover 的。

    赞同~ 跨平台我们还是花了点功夫的。
    He3 其实内部发布有 Linux 和 Web 版本。但是测试下来还是有些功能不可用。所以还在修复中。下个版本发布 Linux 。
    但是总体下来这些跨平台工具还是省了不少事情。而且用大家熟悉的语言和库 (html, css, js) 来开发还是非常方便的~

    接下来我打算写篇文章更详尽地阐述和记录我们的技术选型,趟过的坑,以及反思哈。
    chuck1in
        161
    chuck1in  
       2022-12-18 12:33:13 +08:00
    楼主这个工具还是不错的,其实用户最关心的还是卡不卡。如果不卡,很顺畅,谁管你用的是什么。he3 目前还是有点小卡,希望能够继续优化。
    建议可以对比一下 1password 最新版,他们也是用的 Electron ,但是实际使用并不卡,非常流畅。
    Asimov01
        162
    Asimov01  
       2022-12-27 15:23:10 +08:00
    @sch1111878 javafx 应用现在打包已经不需要完整的 jre 了,用 jlink 和 GraalVM 编译打包,无论是体积还是速度都比 electron 打包出来的应用强多了
    daliusu
        163
    daliusu  
       2023-01-13 12:01:08 +08:00
    @butanediol2d Electron 把很多网页前端的设计带到了桌面端软件上 这是普遍存在的,但是如果不是 electron ,很多软件在非主流平台根本就不会给你做... 最多给个阉割版的网页让你凑合用
    butanediol2d
        164
    butanediol2d  
       2023-01-13 12:18:49 +08:00 via iPhone
    @daliusu 所以,为什么不干脆提供一个好用的网页版呢。很多应用其实并不需要 Electron 带来的额外功能,移植到网页版也就一脚的距离。Electron 再跨平台,能比浏览器再跨平台吗?
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5468 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 53ms · UTC 09:33 · PVG 17:33 · LAX 01:33 · JFK 04:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.