最近好多 GUI 之争,我来给 Electron 站一票,理性讨论

2024-01-05 10:27:29 +08:00
 Loxon

最近看到几篇类似的讨论: https://www.v2ex.com/t/1005711 https://www.v2ex.com/t/1005903

正好我也面临类似的问题,合理讨论下,先说明下需求:

  1. Win+Mac+移动端 桌面端为主用户群体,移动端会简单一些
  2. 工具类产品,除了 GUI 层面的需求外,核心功能会用到原生 OS 的 API ,所以各端必然有小部分核心代码是不一样的
  3. 整体 App 属于中等 App ,所以我不严格追求包大小,在我看来桌面端 50M~200M 都属于用户能接受的中等 App 的范畴
  4. App 里绝大部分以界面交互为主,Webview 有但也有限,可能仅仅辅助使用;性能要求也不高;
  5. 不希望用户主动安装依赖(之前基于.Net 开发的 Win App 需要用户手动安装依赖的痛苦回忆...)

基于以上需求,感觉 Electron 是最适合的,有没有人提供下不同的思路见解?

21145 次点击
所在节点    程序员
138 条回复
acctv2
2024-01-06 12:33:53 +08:00
@rekulas 你这说了半天还是在小众群体里自嗨。

你现在随便找一家跟互联网、软件开发完全无关的公司,或者机关单位,去问问你知道 electron 是什么吗?看看知道的有多少。这我还是给你筛选了一批高知群体呢。继续下沉,去菜市场上问,你看看有多少知道?更别说还性能对比了。

我已经说了你这些都是数码圈小白,说白了就是喜欢捣鼓又半懂不懂的,你跟看不懂人话似得。
acctv2
2024-01-06 12:38:57 +08:00
@Perry electron 唯一的硬缺陷就是打包体积大,其他的其实都不是硬缺陷。尤其是对 GUI 性能不敏感的应用,electron 非常合适。

除了那些高度 UI 性能敏感的应用,例如高帧率数据绘图之类的需求,其他的如果体验特别很卡基本都是程序员能力不行,这些人去写 Qt 和 WPF 一样卡。

v2 上说白了很多也都是半懂不懂的。
jworg
2024-01-06 12:49:37 +08:00
在我这 qt 远大于 electron ,原因我自己也想了的,非开发者用户大部分电脑内存都是 8G 甚至还有不少数量 4G 内存的。electron 就是不流畅,连 vscode 都不流畅,所以我给他们推 vscode 他们都觉得远远不如 notepad++ 好用。16G 32G 内存加固态硬盘运行 electron 当然流畅啊,可是大部分人有吗,脱离运行环境就在那那说我感觉我感觉有意义吗。
Betsy
2024-01-06 12:50:04 +08:00
@sanzrolee 好贵,不太适合我这种只写写小工具的 😅
roundgis
2024-01-06 14:25:45 +08:00
@mustwin maui 官方沒有支持 linux 吧?
janus77
2024-01-06 14:33:09 +08:00
额,我不支持 electron 的唯一理由是作为终端用户来说,electron 太动态化,容易搞小动作,我知道这不是框架的错但是我只能维护消费者利益,没办法。而且这个问题基本上是从根源产生的,无法解决。
tushan
2024-01-06 20:58:05 +08:00
我投 Electron 一票。跨平台的桌面开发框架,确实很方便。
nightsky
2024-01-06 21:18:10 +08:00
我也投 electron 一票,做的好的 electron 应用一大堆,卡成屎的也一大堆
jry
2024-01-06 21:38:21 +08:00
@maxxfire 微软已经集成了 webview2,就看 electron 啥时候迁移方案。
oisadfo
2024-01-06 22:13:47 +08:00
用 c++的大部分都用 QT 吧? 不是我们选择了 GUI 而是我们熟悉的语言限制了我们使用 GUI 的范围。
DOLLOR
2024-01-07 03:09:32 +08:00
作为一个很少为桌面平台软件掏钱的用户,我不参与这个争执了。
我觉得,哪个技术加班少,就选哪个。🐶
mmdsun
2024-01-07 19:46:54 +08:00
作为开发我投 Electron
bigtear
2024-01-08 08:41:24 +08:00
@holulu 不是,cow 的意思是写时复制,不是复制的时候写...
简单来说就是支持 cow 的文件系统内是不会存在两份相同的数据块的。

一个文件你可以理解为指针,数据块通常是文件系统中的页( page )或块( block ),只有在需要修改数据时,才会进行写入数据块操作。
nebulabox
2024-01-08 11:34:34 +08:00
@mustwin MAUI 支持 Linux 了?你不会弄错了吧。记得微软是坚决拒绝支持 Linux 的。
maemolee
2024-01-08 14:22:00 +08:00
@vvdsaa 保存为 app 是个好功能,但是这个功能在 safari 支持前,已经是 Chromium 系浏览器支持了很多年的特性了,没啥好前瞻的。
mclxly
2024-01-08 17:07:31 +08:00
熟悉 golang 就 wails ;熟悉 rust 就 tauri 。
obulks
291 天前
作为前端我投 electron ,首先我需要程序是跨平台的,支持 windows 、linux 和 mac ,Windows 最低支持到 win7 ,liunx 需要支持 x86 、arm64 架构 cpu 的操作系统,包括国产系统和普通发行版,用户的运行环境完全不可信,依赖 webview 的框架我是绝对不考虑的,并且 webview 对 es 标准的支持情况也不一致,对于 web 前端开发,我相信大家都会希望用户的浏览器环境是最高版本的,能支持最新的特性,electron 能强制用户使用支持所有新特性的 chromium ,我是支持的。
其次是对于界面的编写,web 前端生态和开发效率就是第一,大量开源的 ui 组件库是其他原生渲染的 gui 框架不具有的,想要实现一个定制化高一点的组件,比如带图标的菜单树组件,一个支持参数配置并带有预览功能的上传文件组件,对于 web 来说,是很容易实现和进行二次封装的,而其他框架都要花费时间精力去进行封装,做出来还不一定好看,老板也不会说给我一两周的时间先去学 qt ,然后我做的时候慢慢踩坑解决问题。
我认为,做 gui 程序,一定是将所有依赖,都集成在整个程序中,用户的环境完全不可信,我是没心思指导不懂电脑的小白用户安装这个安装那个的,electron 缺点是有,但是它是最符合我这边需求的框架了,用户可不懂什么 webview 还是 cef 的,用户需要的是能用和好用,其次是好不好看,不要老是把这种追求极致的想法追加给用户,还有这个年代还执着于桌面端应用程序大小的,我实在无话可说。
hkiJava
278 天前
@kevinlq fluentui 相关的开发文档有吗

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1006050

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX