> I can't speak to Discord or Atom. Those ones make less sense to me, but there might be a reason there, too.
Electron exists because of Atom (yes, in that order). Electron was previously called Atom Shell[1] because it was created specifically to house Atom, although they mention it wasn’t created just for that. If there’s one app that has a reason to be built on Electron, it’s Atom, because it was an experiment to see how viable that solution would be.
But even they understand that solution wasn’t the best because it’s slow, so they’re experimenting with a model where the application logic is written in Rust and only the UI is built with web technologies[2].
At least part of the reason is probably the lack of a good layout engine that's more flexible than rich text and less complex than a web page. An embedded browser gives them everything they need for their highly stylized layout, but at a great cost.
You can do quite powerfull layouts with QML.
Discord also has an identical web UI.
that has less than half functionality (and across different browsers it may be even worse)
Re:It is fast or it is wrong
by pseudalopex on Saturday December 29, 2018 @08:21PM
(#18786756)
Qt includes JavaScript bindings. Python has commercial support. Java used to.
Electron is good for an MVP if you have or need a web app. Companies keep using it afterward because it commodifies developers and externalizes costs.
You could argue that it's a similar story for things like Slack - for business reasons, they more-or-less needed to have a web-based UI. If you're already committed to that, then it makes sense to use Electron in order to maximize your code reuse.
I can't speak to Discord or Atom. Those ones make less sense to me, but there might be a reason there, too.
Speaking completely personally, Qt has never felt like a viable option for a commercial project to me. It does have some bindings for other languages, but, at least last I checked, they're all community supported. When you're talking about language binding libraries, it's reasonable to think of "community" as a polite way of saying "poorly". That can quite justifiably influence a person's willingness to rely on them for non-hobby projects.
I don't like JavaScript much better than I like C++, but at least I can more easily think of business cases for why I might accept being locked into JavaScript. The ones up above, for example.