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

迷上 electron 了 http://electron.atom.io/docs/v0.33.0/

  •  
  •   gaitana · 2015-09-27 01:44:11 +08:00 · 20987 次点击
    这是一个创建于 3348 天前的主题,其中的信息可能已经有所发展或是发生改变。
    做了一个小 demo ,速度真的不慢,启动速度可以媲美本地软件,测试环境: rmbp15' 低配版

    atom 慢是因为程序代码渲染几乎是最耗时间的, jetbrains ide 在低端机器上也卡, sublime text 不卡是因为它对代码的渲染复杂度太低。同样是基于 electron 的 visual code 就不慢。

    当然体验跟系统原生的软件还是有区别的,内容滚动的时候无法像原生应用那样丝质般顺滑,哪怕是最简单的 textarea 中文字的滚动。

    但是,对体验要求不高的应用这种 webkit 封装的技术完全能胜任了,可能这真的是将来桌面软件的方向。
    32 条回复    2017-07-07 15:58:22 +08:00
    gisonrg
        1
    gisonrg  
       2015-09-27 02:23:17 +08:00   ❤️ 1
    感觉现在 mac 上很多 app 都是用 electron 弄的,貌似 Slack 就是其中之一
    w88975
        2
    w88975  
       2015-09-27 05:30:22 +08:00
    你可以看看我之前参与开发的一个项目,也是用 electron 做的
    http://fireball-x.com

    个人感觉 electron 能够快速建立一套跨平台的 GUI 软件,但缺点很明显,打包的体积很大,这个暂时没办法解决,毕竟是基于 chromium 和 node ,需要带上这两个运行环境。
    exoticknight
        3
    exoticknight  
       2015-09-27 08:21:52 +08:00
    搞前端的人大欢喜,以前用 Python + PySide ,用得心塞,换成 Electron 开发就快多了
    https://github.com/radioit/radioit-desktop
    xhacker
        4
    xhacker  
       2015-09-27 08:23:39 +08:00
    @gisonrg: Slack 不是 Electron ,是 MacGap 。
    oott123
        5
    oott123  
       2015-09-27 08:30:00 +08:00 via Android
    Electron 做的 Dash 供赏玩
    https://github.com/oott123/Slash
    jybox
        6
    jybox  
       2015-09-27 09:08:25 +08:00
    @xhacker Windows 版是 Electron
    haogefeifei
        7
    haogefeifei  
       2015-09-27 09:17:06 +08:00
    Electron 原来不就是 Atom-Shell ?
    haogefeifei
        8
    haogefeifei  
       2015-09-27 09:18:29 +08:00
    Formerly known as Atom Shell
    neone
        9
    neone  
       2015-09-27 09:33:28 +08:00 via Android
    我也挺喜欢 electron 的。
    igaryhe
        10
    igaryhe  
       2015-09-27 09:56:48 +08:00
    @gisonrg 没记错的话 slack 的 Mac 版是用 MacGap 做的…… Acknowledgements 里边写的有
    它们的 windows 版应该是用 electron 做的
    est
        11
    est  
       2015-09-27 10:02:07 +08:00   ❤️ 1
    atom shell ,原子的外壳,顾名思义 电子。。。 牛。
    SCaffrey
        12
    SCaffrey  
       2015-09-27 10:32:42 +08:00
    @w88975 为啥首页上的那个 Github 链接 404 了?
    sobigfish
        13
    sobigfish  
       2015-09-27 11:08:12 +08:00
    @oott123 docset 不是 dash 的, docset 是 Apple 的原创
    Kilerd
        14
    Kilerd  
       2015-09-27 11:45:03 +08:00
    Electron 挺不错的, 在学中。
    sox
        15
    sox  
       2015-09-27 11:51:57 +08:00 via Android
    感觉 NW.js 已经被抛弃了 😓
    gisonrg
        16
    gisonrg  
       2015-09-27 13:36:55 +08:00
    @igaryhe
    @xhacker
    多谢更正!
    djyde
        17
    djyde  
       2015-09-27 15:46:37 +08:00
    @oott123 可惜是 coffee
    xupefei
        18
    xupefei  
       2015-09-27 16:00:45 +08:00
    electron 有两很大的问题:( 1 )文件太多,一次几千文件。当然这是 Nodejs 的锅。( 2 )目录太深文件名太长,导致 Windows 上经常报目录太深错误,甚至非得放到根目录下才能用。
    joyee
        19
    joyee  
       2015-09-27 17:38:41 +08:00
    @xupefei npm3 开始改善这个情况了,等更新进去大概会好点
    Rice
        20
    Rice  
       2015-09-27 17:43:23 +08:00
    编译打包后会不会很大!
    cvv
        21
    cvv  
       2015-09-27 22:34:41 +08:00
    explorer 从 98 时代集成了 ie 好多年、 firefox 搞的 xul 也用了小 10 年 , chromium 都出了那么久了

    没想到一个 webkit 薄封装把楼主惊着了,楼主对桌面 app 是得有多不敏感…

    当年所有人都想用桌面 app 统制 web ,谁也没想到 web 被手机统制了,但是伟大的乔布斯(被拖走…
    w88975
        22
    w88975  
       2015-09-27 23:05:08 +08:00
    w88975
        23
    w88975  
       2015-09-28 01:09:21 +08:00
    @cvv 仅仅是一个 webkit 封装,这话说的真是,如果是这样,为什么不用 webview 呢,更省事。

    electron 主要的是对 Node 的支持以及跨平台的支持,包括丰富的 native api ,包括已经被许多人抛弃的 NWJS.

    如果能通过一种非常简单便捷的方式来开发跨平台的 GUI 桌面 app, 为什么不去用呢? 只用学一门 JS, 再或者前端也能开发桌面 APP ,为什么就不能惊艳?
    ruchee
        24
    ruchee  
       2015-09-28 10:40:08 +08:00
    @cvv 逻辑混乱,不知所云。用 Web 的技术来开发桌面软件,当然是一个伟大的创新,是对生产力的一次大的解放,楼主惊艳到了不很正常吗
    tomwan
        25
    tomwan  
       2015-09-28 13:12:13 +08:00
    有人知道网易音乐 Mac 版是啥做的?里面好像也是网页
    cvv
        26
    cvv  
       2015-09-28 17:35:19 +08:00
    @w88975 你不觉得你是在说 xul 么?
    cvv
        27
    cvv  
       2015-09-28 17:37:59 +08:00
    @ruchee 我只是举例说明这类技术“诞生”过很多次了,你觉得混乱是因为你只知道 electron

    楼主想说 webapp 是桌面软件的方向,问题“桌面”本身就已经不是方向了,还谈什么方向啊…
    cvv
        28
    cvv  
       2015-09-28 17:43:19 +08:00
    @w88975 另外更正一下,说 webkit 封装确实有误,应该是 chromium 封装
    gaitana
        29
    gaitana  
    OP
       2015-09-28 17:52:25 +08:00
    @cvv
    1 、 explorer 和 xul 没法跟 electron 比,首先集成 IE 跨平台是问题, xul 的 firefox 内核占有率太低, webkit 内核已经成为事实标准,关键是 webkit 比前两个解析速度快的多的多, atom 和 visual code 很能证明 node+webkit 开发桌面软件的可行性,代码高亮+智能提示几乎是界面编程中最难的部分,能胜任这种应用,说明 node+webkit 完全能胜任一般的桌面开发。

    2 、 node+webkit 这种方式几乎是最好的跨平台解决方案了吧, Qt 虽然也跨平台,但不同平台编码还有很大的不同, node+webkit 开发桌面软件, js 运行在 node 和 webkit 里面,几乎不用考虑平台差异,也不用兼容各种浏览器标准, css 和 javascript 都不用考虑平台差异,对前端开发来说这个优点太方便了。
    cvv
        30
    cvv  
       2015-09-28 18:31:26 +08:00
    @gaitana 你说 electron 做 ide 没问题,这个我非常支持,我个人的项目也是用 electron 写用 atom 开发。 java 都证明了能写 ide ,毕竟程序员用应用的忍耐力是无限的,自动化远比速度重要。另外你说代码高亮难,其实编辑器的精髓在无级 cmd+Z 、文本插入和文件读写上,文件体积大了问题就出来了,靠浏览器内置的模型,你不是开玩笑吧。

    这问题在个人应用领域会放大很多,因为需要大量输入和人机交互,开发者工具那一套就玩不转了。浏览器渲染这一层本来就是多余的,再加上与 node 交互这一层,性能上还有的救?光有 V8 和 node 可填不平 gui 这个深坑,加上现有 html 标准交互方式太有限,不像 native api 能使用全部系统功能, electron 真的还有很长的路要走。你想如果 web 代替 local 这条路那么好走, vista 就不会失败 ,微软 .net 也不会沦为一个开发框架了。早先 windows 动态桌面干嘛的,很多人都记不起来了吧。现实中用户需要的总是最简单易用的功能加上最快的反应速度,这就是为什么 iPhone 能统治手机市场。 iPhone 硬是把当初一群搞 J2ME 开发的活活逼的去写 Object C 了,这背后不就是性能问题吗。而且一个封闭平台产品能占有市场那么大份额,不觉得跟当初 windows 一样吗?标准化?跨平台?个人用户在乎这些?

    可能我前面说的太少了,造成不少 web 应用的拥趸集火,其实我并没有说 electron 不好啊。我跟楼主一样的 15 ‘ rmbp , atom 在我的机器上表现并不好, visual code 更不必说了,响应速度比 eclipse 还糟,要知道 gui 性能可是 java 软肋啊。写了这么多只是想说, electron 是个不错的东西, webapp 也是很好的一种技术。但是这种方式本身体验并不好,方便的只是开发者而已,对个人用户而言没有任何价值。这就像移动领域一样, web 应用用来占领市场,最后都会变成 native 。
    allan888
        31
    allan888  
       2015-10-07 07:33:41 +08:00
    atom 在我的机器上表现并不好, visual code 更不必说了。
    你说说 visual code 比 atom 慢?
    我就问问你说的这么多,是做过以后发现的坑,还是自己 yy 出来的?
    iwuzhuo
        32
    iwuzhuo  
       2017-07-07 15:58:22 +08:00
    @w88975 你好,想想你请假个问题: 我使用 electron-builder 打包的 app, 运行后马上就退出了,如果进入到包内,运行 contents/MacOs/xx 文件,没问题。 想问下你可能是哪儿有问题。 感谢。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1057 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 22:39 · PVG 06:39 · LAX 14:39 · JFK 17:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.