小弟最近搞了个新项目:https://he3.app
然后来 V2 发了一个贴: https://www.v2ex.com/t/899531#reply79
然后发现下面好多人非常讨厌 Electron ,说要换 Tauri 。
我在开发前也是了解 Tauri 的,而且自己也用 Tauri 写过项目。觉得 Tauri 挺好的,对 Tauri 也没有特别爱。觉得 Electron 也挺好的,技术成熟,跨平台兼容性好。但是发现好多人特别反感 Electron 。
这是为什么呀?想听听大家的意见,弥补下自己认知的缺陷。
101
Dragonphy 2022-12-04 00:12:34 +08:00 2
其实我更不理解明明 web 能做的非要做成客户端
|
102
maokabc 2022-12-04 00:24:57 +08:00 via Android 1
我个人连 vscode 都不会去用,还会用其他基于 electron 的软件?
|
103
silvernoo 2022-12-04 00:35:00 +08:00
vscode 轻量级编辑器,lz 这个重量级小工具
|
104
lizhenda 2022-12-04 01:00:36 +08:00
其实我想说的是,tauri 做的应用其实比 electron 卡,居然每人说这个体验。windows 的 webview2 真是有点拉垮。tauri 的内存泄漏问题都快一年了还没修复。最开始对它热情,到后面做了几个应用后,就觉得为了省点体积选它其实没啥必要。商业应用我还是会继续选择 Electron 。
|
105
pC0oc4EbCSsJUy4W 2022-12-04 02:03:12 +08:00
其他都能接受,就是启动速度,ui 响应慢
|
106
laqow 2022-12-04 02:37:28 +08:00
天国的 flash 有什么话想说但说不出来
|
107
youtubbbbb 2022-12-04 06:51:48 +08:00
@royzxq 我觉得合理
|
108
IslandOwnerHuang 2022-12-04 06:52:12 +08:00
没多少功能的软件却占用上百 MB 的硬盘,特别是对于苹果这种硬盘价比黄金的设备实在是顶不住。
|
109
liuw666 2022-12-04 08:14:38 +08:00 via iPhone
2022 苹果还是 256 硬盘起步,硬盘卖的跟金子似的。就算是 14pro 的 512G 起,又能装几个 electron 。如果电脑上应用全是 electron ,不干活了吗? 不下载开发工具了?不下载代码了? 电脑上就不存文件了吗? 小工具就应该小
|
110
luxor 2022-12-04 09:00:42 +08:00
客户端的 electron 就是服务端的 java ,极其占用资源。这种技术都应该淘汰。
|
111
jfdnet 2022-12-04 09:07:05 +08:00
|
114
xiaotianhu 2022-12-04 09:46:47 +08:00
|
115
joyanhui 2022-12-04 09:50:59 +08:00
客户端尺寸太大,部分软件吃性能太离谱
|
116
guog 2022-12-04 11:04:32 +08:00 via Android
@jeesk postman 还不够难受吗? Mac 版启动慢,强制更新,每次都几百兆,输入框双击选中有 bug ,偶尔想要测试个 URL ,一打开竟然在冷起,墨迹好几分钟。还不如我直接 命令行 http 了
|
117
leeyuzhe 2022-12-04 11:07:14 +08:00 2
我始终认为 atom 就死在这上面,启动慢,使用卡顿最终被 vscodde 替代。你看个人开发者的 sublime 都没死,它却先死了
|
118
systemcall 2022-12-04 11:14:04 +08:00 via Android
@nomagick #36
electron 早就不支持 XP 了,现在不支持 win7 了 webview2 支持 win7 而且自己带一个基于 chromium 的东西来画界面,十几年前就有不少公司玩过,那个时候还是 cef 吧。但是别的地方是原生的,所以性能没那么差 |
120
systemcall 2022-12-04 11:16:25 +08:00 via Android
@lizhenda #104
tauri 的应用不少有内存泄漏的问题,一个小工具开久了甚至可以吃掉 1G 多甚至更高的内存 但是哪怕内存泄漏了,也没比正常的 electron 多太多。而且如果软件都换 tauri ,只要内存泄漏不太过分,就不会有 electron 多 |
121
icedx 2022-12-04 11:17:28 +08:00
平均一个软件 5 个进程, 一个进程 100 M
|
124
stevefan1999 2022-12-04 12:14:14 +08:00 via Android 1
誰都討厭胖子
|
125
blackmao 2022-12-04 12:16:28 +08:00
因为会的人太多了
|
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. |
129
pendulum 2022-12-04 13:42:14 +08:00
@hongchaodeng 要离线版+特殊 API 的话,写个本地 web server ,常驻图标栏,唤起浏览器不就行了?
|
130
leeyuzhe 2022-12-04 14:43:32 +08:00
@jeesk 死了官网首页写着 Atom and all repositories under Atom will be archived on December 15
|
131
vitoaaazzz 2022-12-04 15:02:33 +08:00 1
作为开发者用 electron 简直不要太快,electron+vue+elementui+npm 庞大的三方库,开发桌面端简直不要太高效。
当然作为用户的时候用 electron 开发的软件就太用臃肿了,保底 100MB 以上,但是抛开成见来说,electron 的性能并不会差,启动效率也是很高的,内存占用以现在的配置水准来说也不算多吧。很多优秀的软件也都是用 electron 开发的,如 utools |
132
SekiBetu 2022-12-04 15:31:45 +08:00
内存不值钱,但是平民买不起 32G 的内存
|
133
royzxq 2022-12-04 15:40:36 +08:00 1
@elboble 好像就最近吧,我也是刚换到 6.8.x 变成了 electron ,6.7.x 还不是 electron.. 这 qq 发版也不遵循 semver 啊
|
134
hongchaodeng OP @Dragonphy 亲~ 这是因为有些功能在 web 端不可用。Electron 不等于 Chrome 哈~
|
135
MagicMC 2022-12-04 15:48:16 +08:00
"大" "慢" "卡"
以及你要不要数数你电脑上一共有多少个 chromium.png |
136
hongchaodeng OP @pendulum 这不就是自己造了个 Electron 轮子么... 我们还是希望有框架 (Electron 、Tauri) 这种能直接使用而不是自研哈
|
137
qsnow6 2022-12-04 15:55:07 +08:00
既然都用 electron 了,为什么不用 web 版?
|
138
cktsun 2022-12-04 17:10:38 +08:00 via Android
就是有一些網站非要你安裝 electron 桌面端, 而不開放網頁版
|
140
elboble 2022-12-04 18:30:41 +08:00
@royzxq 打包 280M ,展开 700 多兆,不支持 cmd+N 多开,但是可以命令行启动第二个实例,其他除了第一次,可以密码登录。
再看几天转圈圈吧。 |
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 那种已经停止发展的技术吧。 |
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 一定不好,它对于一些特定的场景还是很有用的。 |
143
rpish 2022-12-04 20:25:32 +08:00 1
|
144
KENNHI 2022-12-04 20:40:32 +08:00 via Android
因为用 electron 就算了,做得也烂,体验也是网页。做得好的有 vscode ,做得烂的有 teams ,骂的肯定不是 vscode
|
145
xiaohundun 2022-12-04 20:42:38 +08:00 1
这个工具是我想要的,谢谢作者
|
146
hongchaodeng OP @qsnow6 Electron 也不等同于 web 的... 我们在跨平台上也花了不少功夫。目前 web 端还在测试中,有一些功能有问题呢亲~
|
148
honghaoz 2022-12-05 02:57:33 +08:00 via iPhone
就跟上幼儿园开卡车去一样。一个 mini app ,包装个浏览器,还加上一堆有的没的的依赖。臃肿至极。
|
149
wangtian2020 2022-12-05 08:58:25 +08:00
@MengiNo 建议不用 rust 开发的软件全都批判一番,因为“牺牲用户体验换开发效率”了
|
150
cdxjcl123 2022-12-05 09:33:15 +08:00
也不是说讨厌 Electron
如果有别的非 Electron 的同功能备选项,就不会选择 Electron |
152
jack230230 2022-12-05 10:52:56 +08:00
其实并没有讨厌。这主要还是一个性价比问题,软件足够优秀,就可以忽视他内存和磁盘占用问题,不够优秀,自然觉得臃肿。多么简单的道理。
|
153
Alias4ck 2022-12-05 11:07:24 +08:00 2
ChatGPT:
有几个原因: Electron 应用的运行速度很慢,因为它需要运行一个完整的 Chrome 浏览器来渲染界面。 Electron 应用的体积很大,因为它包含了 Chrome 浏览器和 Node.js 的运行时,这会导致安装包很大。 Electron 应用的安全性不高,因为它依赖于 Chromium 浏览器,这意味着它存在许多与浏览器相同的漏洞。 Electron 应用的跨平台性不好,因为它需要在不同的操作系统上编译,这意味着你需要为每个平台维护不同的代码。 Electron 应用的可维护性差,因为它需要维护两个不同的代码库( JavaScript 和 C++),这增加了开发难度。 |
154
hongchaodeng OP @Alias4ck ChatGPT 没跟上时代啊... 跨平台和可维护性觉得是 Electron 的优势。安全就太复杂了,没有哪个可以说更安全。
|
155
wanacry 2022-12-05 13:42:12 +08:00
一个主要原因是 Electron 会导致应用程序的体积增大,并且会消耗更多的资源。另一个原因是它并不是所有情况下都是最佳选择,并且由于它是一个跨平台框架,开发者在设计和实现应用时可能会遇到一些挑战。
|
156
agagega 2022-12-05 17:17:18 +08:00
用 Electron 是可以理解的,但有相似选择时,我会用钱给不用 Electron 的那个投票。
「原生」和「跨平台」这两个要求太难同时成立,就像 Windows 和 Linux 的 I/O 多路复用很难用一套 API 统一一样(设计上只能牺牲一方)。要么就是类似 Flutter 或者 Compose Desktop 的自绘方案,但还不成熟。 Electron 的很多问题并不是 Web 技术固有的,只是像前面 V 友说的一样,前端程序员水平参差不齐。在浏览器这个有限制的环境里都能捅篓子,到功能更丰富的 Electron 这里体验不好很正常。 |
157
lyzhang1999 2022-12-05 17:21:17 +08:00
CPU 和内存不是拿来压榨难道天天 5% 的使用量打败全国 99% 的用户吗。
还有说重复的 chromium 和打包体积大的问题,你电脑里一部小电影都 1G 了。 |
158
frodez 2022-12-05 18:57:46 +08:00
[来点 chrome 笑话]( https://www.bilibili.com/video/BV1zt4y1N7mG)
|
159
holulu 2022-12-06 08:04:33 +08:00
挺想试试 He3 的,却没有 Linux 版本。不是说 Electron 跨平台兼容性好么?怎么都不 for 流行的 Linux 发行版?个人感觉跨平台兼容性目前应该没有哪个做得好到能轻易构建一个完整应用的。用着用着就发现不同平台之间的差异并不是一个框架或库能 cover 的。以前也觉得用个跨平台的库能节省多平台开发的时间,但那只是初始阶段而已。过了那个阶段之后就越来越感觉还不如一个平台开发一套省心。如果真觉得一个平台开发一套费劲,为何就不能做 web 呢?其实很多开源实用工具都是 cli+web 的模式,让用户选择用 cli 还是 web 。web 直接打包在 cli 里,需要用的时候一个 cli 命令就打开了,什么都省了。
|
160
hongchaodeng OP @holulu
> 个人感觉跨平台兼容性目前应该没有哪个做得好到能轻易构建一个完整应用的。用着用着就发现不同平台之间的差异并不是一个框架或库能 cover 的。 赞同~ 跨平台我们还是花了点功夫的。 He3 其实内部发布有 Linux 和 Web 版本。但是测试下来还是有些功能不可用。所以还在修复中。下个版本发布 Linux 。 但是总体下来这些跨平台工具还是省了不少事情。而且用大家熟悉的语言和库 (html, css, js) 来开发还是非常方便的~ 接下来我打算写篇文章更详尽地阐述和记录我们的技术选型,趟过的坑,以及反思哈。 |
161
chuck1in 2022-12-18 12:33:13 +08:00
楼主这个工具还是不错的,其实用户最关心的还是卡不卡。如果不卡,很顺畅,谁管你用的是什么。he3 目前还是有点小卡,希望能够继续优化。
建议可以对比一下 1password 最新版,他们也是用的 Electron ,但是实际使用并不卡,非常流畅。 |
162
Asimov01 2022-12-27 15:23:10 +08:00
@sch1111878 javafx 应用现在打包已经不需要完整的 jre 了,用 jlink 和 GraalVM 编译打包,无论是体积还是速度都比 electron 打包出来的应用强多了
|
163
daliusu 2023-01-13 12:01:08 +08:00
@butanediol2d Electron 把很多网页前端的设计带到了桌面端软件上 这是普遍存在的,但是如果不是 electron ,很多软件在非主流平台根本就不会给你做... 最多给个阉割版的网页让你凑合用
|
164
butanediol2d 2023-01-13 12:18:49 +08:00 via iPhone
@daliusu 所以,为什么不干脆提供一个好用的网页版呢。很多应用其实并不需要 Electron 带来的额外功能,移植到网页版也就一脚的距离。Electron 再跨平台,能比浏览器再跨平台吗?
|