3 ms·
VSCode grew out of a project to make a browser-based IDE. So, when they decided to make a desktop-like user experience instead, Electron was the natural choice,
by bunderbunder 8y ago
VSCode grew out of a project to make a browser-based IDE. So, when they decided to make a desktop-like user experience instead, Electron was the natural choice, as a way to make it a port rather than a complete rewrite.
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.
- danellis 8y agoAt 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.
- pjmlp 8y agoYou can do quite powerfull layouts with QML.
- spullara 8y agoDiscord also has an identical web UI.
- zakius 8y agothat has less than half functionality (and across different browsers it may be even worse)
- latexr 8y ago> 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]. [1]: https://electronjs.org/blog/electron https://electronjs.org/blog/electron [2]: https://github.com/atom/xray https://github.com/atom/xray
- pseudalopex 8y agoQt 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.