Things people get wrong about Electron

  • When I use VSCode I do so because of the extensions. I use slack, because my employer tells me to use slack. I use discord because that's where my friends are. Features, coercion and network effects are more important than UX. I think similar things apply to the examples given in the article. The buyers of Bloomberg Terminal Software or NASA operators probably aren't all that concerned with startup time, RAM usage, animation smoothness or click latency. But for software that primarily competes on UX rather than features or having a captive audience, native is usually the way to go. That's why there is a rather thriving scene of native terminal emulators, minimal text editors and calendar software. Maybe Electron is what you need to deliver the features you need with resources you have, but please don't just default to it.

  • I actually like the idea of using web technology for desktop apps. However, one problem with electron is that a lot of apps are just a website stuck in an electron container. And I don't see the point of downloading hundreds of MB for a separate, usually outdated, browser that can only open a single website.

    As a user, I generally do not like electron apps, and often prefer to use the website, or a native app, for several reasons:

    - electron apps tend to use a lot of RAM, for a single app, on decent hardware, it's not too bad, but with a handful of electron apps, it starts to add up

    - contrary to what this article says, I do care about bundle size. For me mostly because it takes longer to install and update. But for people with a slower connection or smaller hard drive it would be even more of an issue

    - every electron app (usually) has its own version of electron bundled. Besides bloating the size, and memory usage, often the version of electron is out of date. If all electron apps used a single version of electron that was installed once and kept up to date, that would tremendously improve electron in my opinion. In fact, I think that is the advantage of using a webview. Not performance, but having a single shared renderer that is consistently updated.

  • My main complaint about Electron apps is that they’re almost universally sluggishly slow. They don’t have to be — Discord is mostly fine, for example, and there’re a lot of actual web apps that work fast — but they are. I don’t know why this happens, but I’ve never seen a native app that was as unresponsive as Slack.

    Most of Electron apps also really don’t need to exist. If your app is a web page, let me open it in my web browser, where I have cool features such as “tabs” and “the back button” and “not installing a copy of browser per web page”. Even Via, which is literally communicating with my QMK firmware, manages to run in-browser. Most web apps really have no excuse to require installation.