很多年以前,我是推荐过 Electron 的,但现在似乎有点过热了,所有桌面开发话题下都会看到 Electron 来凑热闹,你在一边安静的对比着 MFC 和 Qt 的优劣,或者你在讨论 c# 的 WinUI / maui 的话题,没有涉及到任何 Web 技术,也会有一堆 Electron Boy 们来话题下面找存在,跟你说你们说的都是垃圾,不如用 Electron,这就有点烦人了。
凡事过犹不及,你用 Electron 解决一类需求很爽没问题,但是一厢情愿的希望希望用它解决任何问题是不可能的,技术选型得清楚各项技术的边界在哪里,所以咱们分析下 Electron 有哪些问题。
很多人搞混淆了 “内容消费”和 “内容创作”了,现在电子设备分工越来越明确,随着移动应用的兴起,内容消费的功能都在往移动设备上迁移。PC 已经是越来越存粹的效率工具了。两个有本质的区别:移动界面是消费级应用,界面要好看,要容易操作,比如方便触屏的大按钮;而桌面软件会越来越朝向生产力方向发展,强调的是专业和效率。
你要做娱乐或者社交,这类轻交互的内容消费类应用,那么用 Electron 没问题,但如果要开发生产力工具,请使用 Native 技术,继续用 Electron 这种消费领域的技术来开发生产力工具,是不行的。
说到这里,很多 js boy 们又要把 vscode 抬出来说了:“你看 vscode 也是创作工具,做的多成功”,vscode 成功不代表它不卡,不代表它臃肿,这还是微软百人团队优化了 5 年以后的效果,你个普通公司,普通团队,靠 Electron 做出来的编辑器,上限也就是 github 的 atom 编辑器了,github 的开发能力做出来一团翔的编辑器,你在的公司技术能力比 github 如何呢?
微软百人团队大量性能相关模块改用 C++ 重写,搞了这么多年,最后性能还不如一个个人开发者用 C++ 开发出来的 Notepad++ 那么快,普通团队何德何能玩得转呢?
不要以为 wasm 是你的救命稻草,wasm 的性能只有 native 的一半: