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

思考:下一代 electron 何时到来?

  •  1
     
  •   pockry · 2020-06-19 18:06:59 +08:00 · 6032 次点击
    这是一个创建于 1616 天前的主题,其中的信息可能已经有所发展或是发生改变。

    前几天去 electron 官网看了下,差点惊掉下巴,记得我一年多前把玩 electron 的时候才 5.0,现在版本号已经飙升至 9.0,现在版本这么不值钱的吗?而且要开发个 electron app,被动升级也太频繁了。

    我去看 electron 的主要原因是想瞧瞧 electron 有没有可能和 deno 结合,结果看到一个 issue 提出同样问题,被项目贡献者无情否定:electron 需要将 node 与 chromium 同时编译,而 chromium 的编译工具不支持 rust 与 c++混编。

    我回想了一下我对 electron 的主要不满:

    • node 在桌面环境冷启动性能略显捉急,特别是页面复杂,包含本地数据库的情况下;
    • electron 本身带个完整的 chromium,导致 App 包体太大;
    • electron 虽然打包出来是个单独 App,但实际上会在硬盘上安装,而且它默认的 win 安装器会装在个人文档下,把文件完全展开,一个是把个人文档下搞得乱七八糟,其次是页面容易被篡改,安全性存在问题;
    • electron 在跨平台上还是有不少坑,现在操作系统每年一次大更新,而 electron 跟随各平台新特性的速度没那么快,比如 electron 转 UWP,之前微软出了个官方工具,但已经两年没维护,项目 issue 一堆问题无人解决。

    我曾经也寄希望于 react native for desktop,不过这个感觉没发展起来,随着 RN 逐渐没落,这个更没指望了。

    我之所以对 deno 报以期望,是因为它的设计目标之一就是对桌面应用的支持,主要是两个重要特性:应用沙箱和浏览器兼容。而它的单一可执行程序特性也是对桌面应用非常友好的。

    不过现在指望 electron 支持 deno 是从底层上彻底没希望,社区目前对于 deno 开发桌面应用的尝试是 webview-deno 项目(link),用 deno 调用系统级 webview 。

    我依稀记得之前见过这样的思路,不过各个操作系统的 webview 所用的引擎差异很大,因此兼容性不太好,这也是为什么 electron 要带个 chromium 的原因,我觉得这条路是走不通的。

    所以 deno 啥时候能有个好用的桌面应用框架呢?

    13 条回复    2020-07-04 09:01:55 +08:00
    est
        1
    est  
       2020-06-19 18:13:05 +08:00
    等下,我不太懂,electron 会带一个 node 的执行环境?还是只有 v8 吧?

    你要启动快 app 体积小的,试试国人的 https://miniblink.net/
    agdhole
        2
    agdhole  
       2020-06-19 18:14:21 +08:00 via iPhone   ❤️ 1
    reactnative-windows 已经来了
    love
        3
    love  
       2020-06-19 18:28:22 +08:00
    感觉调用本地浏览器的做法比打包一个更好。
    electron 刚出现时就如 LZ 说的各个操作系统的 webview 所用的引擎差异很大,因此兼容性不太好,现在已经没这情况了。
    Nicify
        4
    Nicify  
       2020-06-19 18:36:58 +08:00 via iPhone
    等 deno + webview 2
    yoggsaron
        5
    yoggsaron  
       2020-06-19 18:39:09 +08:00
    Rust 有一个类似 Electron 的框架。https://github.com/tauri-apps/tauri
    至少打包体积和内存占用小了很多。
    find456789
        6
    find456789  
       2020-06-19 20:06:29 +08:00
    rn 啥时候没落了啊。好想还没有吧
    Jirajine
        7
    Jirajine  
       2020-06-19 20:20:02 +08:00 via Android
    下一代就是用系统 native webview 的方案,最著名的就是这个 https://github.com/webview/webview
    楼上发的 tauri,还有 go 的 wails,以及其他各种语言的 band 都是基于这个的。
    xi_lin
        8
    xi_lin  
       2020-06-19 20:25:48 +08:00
    @find456789 rn 现在国内风头完全被 flutter 压制
    lxml
        9
    lxml  
       2020-06-19 20:53:55 +08:00 via Android
    @xi_lin 风头是一回事……实际业务是另一回事啊
    huai
        10
    huai  
       2020-06-20 12:16:05 +08:00
    都没用在生产环境过,了解一些。

    react 技术栈 过渡到 rn 非常快吧。

    flutter 大多是都是尝鲜,甚至 KPI 好看。

    觉得真到那么大的体量,需要考虑性能问题。到时还是 native 为主?
    xi_lin
        11
    xi_lin  
       2020-06-20 13:18:26 +08:00
    @lxml 现在主力用 rn 的大厂还多吗?美团、携程、京东,还有么?
    zakarycode
        12
    zakarycode  
       2020-06-25 15:08:18 +08:00 via Android
    flutter 主要是 KPI 项目吧,除了闲鱼也很少见其他的应用了,吹牛逼听的比较好听 😂
    (大厂用 rn 也是自己封装的版本)
    susix
        13
    susix  
       2020-07-04 09:01:55 +08:00
    一直觉得 electron 可以单独抽出来作成 runtime 形式的,类似 jre
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1213 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 23:17 · PVG 07:17 · LAX 15:17 · JFK 18:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.