8

为什么大家这么讨厌 Electron?

 1 year ago
source link: https://www.v2ex.com/t/899773
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

V2EX  ›  程序员

为什么大家这么讨厌 Electron?

  hongchaodeng · 3 小时 20 分钟前 · 2764 次点击

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

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

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

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

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

65 条回复    2022-12-03 15:11:08 +08:00
mmm159357456

mmm159357456      3 小时 18 分钟前

因为“大”
mofe

mofe      3 小时 18 分钟前 via iPhone

可能是效率工具不希望启动慢吧
beisilu

beisilu      3 小时 15 分钟前

个人是因为国内移动端生态为了热更新的混合应用体验差,导致对这种套壳都没有好感。
jorneyr

jorneyr      3 小时 14 分钟前

大家喜欢的是小而美。
Jirajine

Jirajine      3 小时 13 分钟前

体积大、重、启动慢、占用多。
看看你电脑上装了多少个 chromium 了,除了少数开源且适配 electron 新版本快的应用可以复用一下,其他的每个应用都带一份 chromium ,用户当然讨厌了。
superrichman

superrichman      3 小时 11 分钟前 via Android

现在不反感 electron ,因为电脑性能上来了,electron 的缺点不如以前明显。而且的确有一些很优秀的 electron 应用,体验很不错。

但是还是有更多的 electron 应用写的太烂,还要占一大堆资源,这就很讨人厌。
makelove

makelove      3 小时 11 分钟前   ❤️ 1

html 不是问题,问题是明明系统 webview 已经挺好用了还要自带一个 chrome ,浪费硬盘和内存
rekulas

rekulas      3 小时 8 分钟前

缺点除了大之外还对客户端市场造成了不良影响

举个例子,某笔记团队本来是用的原生开发的,使用体验尚可,后来为了节约成本换 electron ,公司倒是省了用户就无语了,占用资源多偶尔还卡死,而这样干的当然不止这一家公司

所以大家也是苦 electron 久矣,如果能有替代品出现自然免不了一番吐槽
不过对于 tauri 能否担负起这个重担还是持怀疑态度
chonger

chonger      3 小时 5 分钟前

不是码农,对 Electron 没有恶意,反而对用 mac 的我来说,Electron 使得跨平台更容易,这使得 mac 上的可用的软件得以扩充,现在好几个常用的都是如此。
我想对于 mac 和其他小众操作系统来说,先解决有没有的问题才是最重要的吧。
rekulas

rekulas      3 小时 5 分钟前

@rekulas 据我所知 某些用户为了拒绝 electron 版本一直坚守使用老版本客户端
MengiNo

MengiNo      3 小时 5 分钟前 via iPhone   ❤️ 1

electron 只是一种妥协,或者说是开发人员牺牲用户体验换开发效率的 “偷懒”。那在明明知道有更好的预期的情况下,肯定对 electron 比较反感。

加上能 electron 的很多都能直接 web 化、pwa 化,electron 相当于让用户没事在电脑里装 n 个 浏览器,有些人也不太能接受。

还有就是这玩意的下限确实太拉了,只贪图快用什么二开框架随便多平台编译一下出的 “半成品”(类似 uniapp 这种,不知道桌面端是什么),和 vscode 这种 “第一方” 完全天上地下(或者说强如 vsc 其实也不尽如人意,何况其他的)
kran

kran      3 小时 1 分钟前 via Android

不如启动一个本地服务,用系统浏览器打开,体验也不错吧
miv

miv      2 小时 59 分钟前

用着这个工具了,说下体验。
里面有几个小功能确实不错。
而且免费,感谢开发者。
booleturing

booleturing      2 小时 57 分钟前

歪个楼,既然你的 He3 都用 electron 了,为什么不顺便打包一个 linux 平台的包呢?
hez2010

hez2010      2 小时 56 分钟前   ❤️ 5

因为 electron 又大又慢还对系统支持不好

- electron 的窗口是自绘的,因此无法自适应系统主题、控制按钮扩展以及透明效果
- electron 自己带一个 chromium ,然而明明系统里本身就有 WebView 控件,属于脱裤子放屁浪费磁盘,说兼容性的难道打包发布不都是直接 target 到 ES6 吗
- electron 的主进程也是 js 写的,然而主进程涉及到消息事件循环等 CPU 较为密集的场景,性能非常烂,更别提浏览器进程和主进程相互 RPC 的性能就更拉了

而 tauri 虽然也是 web 方案,却没有 electron 的问题
- tauri 的窗口仍然是系统的原生窗口
- tauri 直接调用系统自带的 WebView
- tauri 主进程是 rust 写的,对于 CPU 密集的场景也没有性能问题
wuyiccc

wuyiccc      2 小时 56 分钟前

@rekulas 盲猜有道云笔记
subframe75361

subframe75361      2 小时 53 分钟前

如果 pwa 能访问本地目录就好了
然而从安全性方面来说,一个网页能够持续使用客户机文件系统是不能允许的
butanediol2d

butanediol2d      2 小时 53 分钟前 via iPhone

我不关心性能问题,现在大家的设备性能基本都够用。

Electron 把很多网页前端的设计带到了桌面端软件上,这是我讨厌它的关键原因,因此我对 Tauri 也没好感。

无论是 Windows 、macOS 还是 Linux 上常用的 GTK 等,原生的控件不带那些花里胡哨的 transition 、tooltip 是有原因的,这种风格真的很不适合桌面软件,再好的优化也无法弥补。

Electron 的性能问题又被基于 DOM 的渲染天生自带迟滞感和过度的设计放大了,导致很多用户最直观的印象就是“卡”。

还有人用 VSCode 举例子,VSCode 的性能确实在 Electron 软件中出类拔萃,但如果花同样的精力去优化一个原生软件,相信效果会更好。
rekulas

rekulas      2 小时 48 分钟前

@wuyiccc 😄😄😄
DOLLOR

DOLLOR      2 小时 44 分钟前

@subframe75361
chrome 现在提供了 showDirectoryPicker 接口,在用户授权使用一个目录后,就可以自由的在这个目录里读写文件了。
jeesk

jeesk      2 小时 33 分钟前

没啥好说的。postman 也是 eleectron 写的, 我觉得好用。
hongchaodeng

hongchaodeng      2 小时 26 分钟前

@booleturing 我们 CICD pipeline 里已经打包出来了~ 但是测试发现有几个功能在 Linux 上有问题,还在修复中。等修复好了发布~
springz

springz      2 小时 26 分钟前

Electron 的大和一股网页味道就很难受,为了跨平台网页味道就网页味道吧,还不好好优化。这个可以忍,但是大真的没法忍,每个都带一个 runtime ,系统提供的 webview 怎么不能用了?其他都能忍就每一个都巨臃肿这个不能忍。99% 场景都能用 Tauri 这种用系统自带 webview 的替代。为啥还用这玩意。
jeesk

jeesk      2 小时 26 分钟前

程序员天生喜欢小而美,但是多平台开发并不是那么简单的。 往往产品的实际体验使用新的技术一个是有技术风险, 新技术坑也多。 且那些天天在说用 tauri 写的,可能并没有写过什么 gui 程序,只是打打嘴炮而已 不要认真。
hongchaodeng

hongchaodeng      2 小时 25 分钟前

@miv 感谢亲的支持~
springz

springz      2 小时 24 分钟前

@jeesk 都用 Electron 了,又不是开发原生,有什么区别?
hongchaodeng

hongchaodeng      2 小时 22 分钟前

@jeesk 是的~ 哪怕用 Electron 我们也在跨平台上花了不少工具,测试和修复问题~
jeesk

jeesk      2 小时 21 分钟前

@springz 很多事情不太好说 , 如果做过 window,linux, macos 平台的桌面你就知道 技术稳定性的好处了。 总之做产品,不是技术越新越好, 这个普通用户根本不懂。
jeesk

jeesk      2 小时 18 分钟前

@hongchaodeng 很多人没有开发过这种跨平台的东西,不知道坑有多少。 像 electron 这种比较完善的东西,在各个平台都要处理各种兼容性,比 web 难处理太多了
springz

springz      2 小时 17 分钟前

用 Electron 这种的除非一些极端的需求,和 浏览器开一个 tab 没有本质区别。还要为了适应 Electron 的窗口和消息做特殊处理。真不如 pwa 或者 tauri 这种。如果特别复杂的需求像 QQ 这样的我相信 Electron 难度会比原生高很多倍。但是开发部署迭代方便。
springz

springz      2 小时 16 分钟前

@hongchaodeng 我注册试用了下,我觉得 pwa 比 Electron 套一层更符合产品逻辑。
springz

springz      2 小时 12 分钟前

或许有些功能用了其他语言写的的库,js 去调,但是 Electron 这几百兆真的坑爹。
hhacker

hhacker      2 小时 8 分钟前

我和 op 一样,electron 挺好的,除了搞技术的,谁会在乎里面打开是不是个网页?对于绝大多数终端用户而言,安装后点图标打开,能正常运行,就是个程序,和"其它"程序没什么区别.
springz

springz      2 小时 5 分钟前

关键是这个产品是给码农用的啊,主体功能网页需要本地功能的开一个没界面的 agent 网页去调都比这种方式好一点。
springz

springz      2 小时 4 分钟前

楼主选择发 App 推广使用就够难了,还选了 Electron 就更难了。
nomagick

nomagick      2 小时 3 分钟前   ❤️ 1

恕我直言 什么性能什么卡顿,不是平台的问题。

以前纯 js 都没整明白,现在准备同时整明白 js 和 rust ,省省吧。
人家不卡就是有魔法优化,有点出息行不。

还有觉得用系统 WebView 就是最好的,我怀疑你没用过 XP 。

现在没问题不代表以后没问题,操作系统是会终止支持的好不,
你依赖系统的组件, 人家系统不更新, 乱更新, 到时候你咋办,
有些公司新换一个 CEO ,IE 永不为奴;
有些人的系统,啪,360 加持,走独立自主创新道路

打铁还须自身硬,不要幻想有一个什么名词,只要我 stick to 这玩意,一切就都自动摆平了。

自带所有依赖或者静态编译是非常有道理的,是对最终用户负责的一种处理方式。

现在还只是简单的个人项目,放几个网页出来,讲真用啥都行。
要是真正的商业软件或者什么,分分钟都是客户投诉,都是退款请求。
janus77

janus77      2 小时 1 分钟前

一方面是嘴炮,还有一方面是大家都不关心跨平台。正常用户就一个主力平台,他如果想用你的软件,在主力平台上做到体验好就 ok 了,所以他比较喜欢原生开发。至于说 tauri 的,要么没做过什么大型的 gui 程序开发,要么只是专注单平台开发,不理解跨平台的难点,他只知道“在我用的这个系统下好的框架=我喜欢的框架”
springz

springz      1 小时 56 分钟前

@nomagick 商业项目直接就目标平台原生或者 Qt 了,都选择 Web 了,客户端就只是一个入口了。现在新起的商业项目还是 Web 技术还需要考虑 XP ?
springz

springz      1 小时 55 分钟前

@janus77 在我看来是两种技术路线,Web 和原生,Qt 这种我其实是算在原生技术里的。都选择 Web 技术了。就不能选一个体验好点的吗?楼主这个 App 安装完 300 多 M ,注定推广碰壁。
leeg810312

leeg810312      1 小时 53 分钟前 via Android

现在用这个基本都是工具类软件,工具类应该是轻巧快速,但每个工具都是几十上百 MB ,每个运行起来都是个 chrome 浏览器,这还是工具吗?除了开发必须使用的几个,例如 vs code/postman ,不再安装其他任何基于 electron 的工具,看到一个还不错的工具软件,但只要看到介绍是 electron 就放弃
janus77

janus77      1 小时 48 分钟前

@springz #39 那你怎么又能证明楼主的东西体验不好呢?框架不行不等于软件不行,再说框架也不是真的不行,楼主你看到的各种文章优缺点总结只是因为用 electron 的人太多导致基数太大,你怎么知道 tauri 的基数起来以后不会有别的问题呢?说白了还是个人感觉,身边统计学。个人喜好就个人喜好,没必要用个看似合理的技术原因去否定开发者。
springz

springz      1 小时 48 分钟前

大家讨厌的点基本集中在为了让一个 Web 可以本地,硬套了一个 Electron ,选择 Electron 也是因为最方便,套一下就行。是网页容不下这个产品还是 PWA 浏览器插件满足不了。
0xTSO

0xTSO      1 小时 46 分钟前

tauri 也搞过一段时间,文档不如 electron 成熟,还有 rust 学习成本,作为搞 web 开发的,js 一条龙比较稳定,学习时间成本也是我考量的一个因素,
有时间有精力当然可以搞 tauri ,做产品的话技术成本也要考虑的。
cloverzrg2

cloverzrg2      1 小时 34 分钟前

慢、 占用内存高
Phishion

Phishion      1 小时 34 分钟前

硬盘占用还好,关键内存占用太厉害了,随随便便大几百 M ,1G 更是家常便饭,考虑到现在市面上有很多 8+256 ,哪有那么多内存供这些大户霍霍,我电脑里如果都是 Electron 应用,那基本上也开不了几个就开始疯狂 SWAP ,唯一的优点就是对开发者友好,再来实在想不出了。

当然这也是苹果一贯的靠 SSD 、内存换利润的结果,这个事情在 Windows 端应该好很多,苹果牛逼的统一内存,光 16G -> 32G 就要加价 3000 块钱,要都像 windows 一样几百,我估计这也不是太大的问题。
star7th

star7th      1 小时 32 分钟前

总有一些人追求极致性能,但他们实际上可能没怎么做过面向生产的客户端项目。真的做起来才发现,文件体积算什么啊,生态成熟才是关键,这样很多事情有现成的解决方案,才容易解决问题。
真正问那些做过面向生产使用的人,才有帮助。单纯问一些技术党,他们当然推荐性能最高的,反正又不是自他们自己淌坑。
shakukansp

shakukansp      1 小时 31 分钟前

有能用 js 写的但是调 webview 的跨平台框架吗
pigspy

pigspy      1 小时 24 分钟前

610915518

610915518      1 小时 23 分钟前

额这里不是贴吧,讨论 Electron 就讨论 Electron 呗,从楼主的选择性回复可以看出,楼主是想借机推广产品,根本没想认真讨论 Electron ,大家不要被骗回复了
shenhualv7

shenhualv7      1 小时 22 分钟前

有道家的所有软件都是我体验过最差的
bthulu

bthulu      1 小时 19 分钟前

你安装文件 100M, 装完占用 500M, 运行时内存占用 300M.
另外有一个功能相同的原生程序, 安装文件 0.5M, 装完占用 1M, 运行时内存占用 0.5M.
你觉得我会选择哪个?
Torpedo

Torpedo      1 小时 17 分钟前

关键是 electron 代表了开发商对用户的态度:
electron 大部分软件都是 60 分
原生大部分体验是 70 分

当软件厂商选择 electron 的时候,人人都知道他是为了节约成本,降低用户的体验。用户当然反对了

至于少数 electron 的特例,比如 vscode ,那大家当然理解人家选择 electron 是因为 monacoeditor 和开源生态,而且人家的阵容豪华,还是免费的,你也不好说什么

你看 team 传要用 electron 的时候,大家都是骂的多
solobat

solobat      1 小时 8 分钟前

tauri 在 macos 里性能还是不行,页面复杂了明显卡顿
fbichijing

fbichijing      1 小时 4 分钟前

electron 开发出来的软件,个人用起来感觉不安在固态硬盘上那卡卡的感觉都下不去,启动也慢,内存占用有些过高了。

你那个项目——工具箱类的软件,某种程度上属于锦上添花类型的,而不是雪中送炭,也就是非其不可这一类。

比如在实际开发时遇到工具箱中的某种功能,程序员打开命令行或许怼几行代码就解决了。复杂的话平时写成全局命令,或者自己写成一个简单的 gui 应都不算难事。程序员平时手头上谁没有积累这一类的东西,这一类的工具出问题了自己排除 bug 也简单。

工具箱类的软件比较理想的表现形式是小巧,启动快,最好打开不占什么系统资源。它就可以一直存在,不会说开了之后一直想着用完关掉它不让它占太多资源的心里负担。
hongchaodeng

hongchaodeng      1 小时 4 分钟前

@610915518 不是选择性回复啊。。而是这里面大家太 opinionated 了,我都不敢回答。我也想找找 Tauri 有啥特别好的点,让我好做做选型。
pendulum

pendulum      1 小时 1 分钟前

既然你都用 electron 了,为啥我不直接用 web 呢?我还要下个内核打开你这个网页?
hongchaodeng

hongchaodeng      1 小时 1 分钟前

@fbichijing 嗯嗯对的。非常感谢你的建议!但是什么样才算小巧呢?我平时都是开个 chrome + Jetbrains 就 10 G 以上了。。
hongchaodeng

hongchaodeng      1 小时 0 分钟前

@pendulum 有些功能桌面端能实现,而网页端不能的。还有就是网页端跑在我的服务器上了,没法做到离线使用。
LavaC

LavaC      41 分钟前

突出一个尴尬,特别对于功能单一的产品来说,软件代码本身没多少却要 100m+的安装包也挺膈应的。
属于是开发很喜欢但对于挑剔的用户来说不太能满意的框架。
subframe75361

subframe75361      40 分钟前

@DOLLOR 但是 pwa 关闭后重新打开需要重新选择,体验上不太好
liuw666

liuw666      37 分钟前 via iPhone

前端代码打包后也就几 M 吧。装了 electron 暴涨 200M ,甚至更多。 不能只看安装包大小,安装解压后更大
liuw666

liuw666      29 分钟前 via iPhone

是不是可以考虑做成插件放在 vscode 、idea 里。说实在工具类软件这么大,我都没有多少下载的兴趣
MrKrabs

MrKrabs      24 分钟前

存储 0.5G ,内存 1G 起步
一个临时用用还好,要是好几个一起开呢?
rpman

rpman      14 分钟前

要别人写原生
轮到自己写 Electron
ccchigh

ccchigh      4 分钟前

吐槽性能问题的大概在用古董电脑吧。Discord ,Zoom 等等都是用 Electron ,还有很多大牌应用,就不一一列举了。早些年我确实用 Sublime ,这玩意确实比 VSCode 快很多,但这都啥年代了,M2 Max 都要出了,DDR5 已经有单条 512G 的了,你还在因为那一点点性能问题去选择一个开发效率非常低,兼容性又没有保障的东西,真不知道怎么想的。

性能问题确实存在,单那是 Electron 团队的问题,作为用户来说,哪个效率高,哪个生态完善就用哪个。Sublime 的没落就是力证,性能不是一切。

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK