Hacker News new | past | comments | ask | show | jobs | submit login

There seems to be some dissatisfaction with Electron in this thread. I've heard some good things about building desktop apps on top of Electron but have not had the need to try it yet. I'm curious what people's gripes are.

I have heard that Atom is very slow, but I had chalked that up to the core of the editor being written in a high level language and being subject to stop-the-world GC. Your text editor has to move at the speed of your thoughts (or at least your input).

Given that neovim is implemented as native C and offers a wrapper API, do the same problems exist? Am I misjudging where the issues with Electron/Atom lie?




Atom is getting a lot better, though it used to be pretty bad. I made a video a while ago comparing Atom, VSCode (also Electron), and Sublime Text 3 where you can see the difference.

https://youtu.be/fjR5X-4--kg

But like I said, the current (1.5.x) version of Atom is much faster to load, so they're working on fixing it.


It's not just load time, browsers generally suck at rendering because the CSS/DOM is hardly an optimized spec with plenty of legacy/complexity, and most of the implementations have decades old roots and legacy design decisions as well. Even VSCode which is miles ahead of Atom has rendering performance issues on my laptop - I can see it drops frames when scrolling and stuff like that. Servo is showing how much you can do if you start from scratch on that front, but if you just forgo the entire web stack you can do much better still simply by not having to implement DOM/CSS

So something like Qt or native GUI frameworks are always going to outperform DOM based GUI, and CPUs stopped getting faster so most of these issues aren't going to be solved by hardware improvements (GPU rendering requires a big overhaul of browser stack).


Servo has a "webrender" backend that is GPU-accelerated. While it isn't nearly at feature parity with the established rendering engines, it is an order of magnitude faster at rendering the features that it currently has implemented.

It won't replace your current browser for some years, but I see no reason why it couldn't serve as the engine for something like Electron.


Sure but it's still going to be slower than a native GUI library designed for GPU acceleration because you still need to implement CSS layout and DOM which are suboptimal by design. Maybe by the time Servo lands to mainstream it will be fast enough that it won't matter - but right now that's just not true - DOM is still an inferior platform for GUI because the performance sucks and that's not going to change any time soon - Servo isn't even close to complete yet.


Not necessarily. For instance I believe Nyaovim actually renders to <canvas>. So there is very little dom. I'm sure there is some overhead, but I don't see any reason why the performance can't get on par, if not close to native application performance.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: