I’m curious about a particular trend I’ve observed. It seems many people are quick to judge apps based on whether they’re built with Electron, even if the app serves their purpose well.
I’m less concerned with the blanket statements about how bad Electron apps are and more interested in specific instances. So, if you’ve ever abandoned using an app after finding out it was built with Electron, what was the final straw? Was it slow start-up times? High RAM usage? Something else entirely?
On the flip side, if you use and are happy with Electron-based applications, I’d love to hear what keeps you unconcerned about its limitations. What specific traits do you look for that make it acceptable for you? What’s your threshold for the problems of Electron?
I have mixed feelings on this. On the one hand, I have a general preference for non-Electron apps over Electron apps. Electron apps are resource heavy and does not visually integrate well with the rest of my desktop. As such, if a non-Electron app suits my needs just as well as an Electron app, I’ll general choose the non-Electron app.
However, this needs to be tempered with the benefits of Electron’s existence as a cross platform framework for application development. Most apps (including Electron apps) are built with Windows in mind, and it is good for the Linux desktop overall that Electron apps do not need to be ported to Linux.
I try not to run them, they are a waste of resources, generally. You shouldn’t have to load nearly a full chromium browser to run a password manager (for example).
I remember a few years ago, before I knew about Vesktop, where Discord on Linux was really bad. It felt slow and it had no audio stream sharing.
Overall, I feel like some people jump on the “Electron bad” bandwagon because there are apps based on Electron that vary in quality a lot. Some are really good while some, for no real reason, feel odd when using them. They feel sluggish, all consume quite a few resources and some believe they don’t really have a place. I personally see Electron as a net positive, since there will be less work to do on all platforms, thus time can be better spent on something else. There are some Electron based apps which I find to be good and usable too, so I don’t think the framework itself is bad.
Another issue (now you have got me started!) is they all run on different version of electron, they never seem to keep up with the current version. I have 3 versions (I think, at work, so can’t check) of electron installed, for programs I rarely use.
When I get home, will list the versions and the apps I use
From my perspective there are two big issues with Electron applications.
They consume a lot of resources, mostly RAM. This is especially a problem with simple applications where they would normally be lightweight but are carrying huge overhead instead.
Security can be an issue with Electron applications. You basically have a web browser core and node.js embedded in your application. This creates a huge attack surface. On top of that, Electron apps often do a bad job of keeping up-to-date with the latest Electron.
The same thing happens with apps in the repo or in AUR.
There are multiple versions of electron in the repo and AUR and apps can be linked to those old versions. Also, some applications come with bundled electron.
Electron apps not integrating or otherwise doing whatever they want to do is a huge reason why I don’t like them and I wouldn’t consider it to just be a blanket statement.
I don’t remember the name of every one I’ve dropped, but maybe you can find them based on the description. First one I can think of was a torrent client. The reason I dropped it was because it enforced the macos decorations on all platforms. Meaning it was the only app on my system with all of the window buttons (close, maximize, minimize) on the left side of the app instead of the right. On top of having different colors, I’m not used to.
There are many apps that seem to have bugs due to their electron version or just electron itself, which all of them seem to be having different versions. Most famous is discord, but even apps like signal desktop. I’m currently dealing with a bug that requires me to launch the app twice. It happens in the flatpak and the repo package. Unfortunately they aren’t fans of third party clients, so we are basically stuck with it.
On top of that like many others have mentioned they are resource intensive in both ram, disk space, and cpu. I have literally had to help people on these very forums who are new and don’t know any better. There was a person who pretty much seemed to unknowingly use only electron apps which would eventually cause that person to run out of memory.
Furthermore, electron apps often rely on the web implementation of certain features. On top of increasing the attack surface. This can also reduce privacy as we expose more of our desktop computing to what are essentially just websites. There is a reason why on phones everyone wants you to install their apps. While it isn’t as bad on desktop many electron apps are just websites. Using the same trackers, reaching out to google / facebook services and without the option of using a hardened profile or ad blockers while in this state.
Now yes, traditional desktop apps can do the same, but isn’t as prevalent as it is on the web is the point I want to make.
Now I know you wanted more concrete examples, but we are talking about apps I have dropped and then never thought about again here, so unfortunately I am drawing a few blanks.
But in an effort to try and come up with as many concrete examples as possible. I am digging through my web history, installed apps list, and pacman log to try and find things remember why I dropped them or why I don’t like them.
So far I have found apps like hakuneko which is a manga downloader. It refuses to open unless you disable the chromium sandbox. Unfortunately, not a lot of alternatives, so I keep it around. Now that I think about it this isn’t the first electron app I have had that problem with, so the quality of these apps are all over the place.
Anyways to sum things up, no one technology exists to solve every problem. The explosion of the web lead to companies needing a lot more web developers than anything else and now there are large swaths or developers who only seem to be able to use web technologies.
Edit: Might I mention how slow a lot of them are. I have a bank account with two different financial institutions here in the state. They have converted all of their apps to web apps and thus electron. They take multiple seconds when going between certain pages. This is for both apps from both banks.
Now they aren’t all bad.
VS code is hands down the golden standard for electron apps, but it is by and far the exception and not the rule.
I’m a node.js developer but I won’t use electron. You want a desktop app then build it with the appropriate tools. Node.js is meant for back end development not native applications.
Beside electron, in desktops are several webkits already there…whole app model ano now is build around browsers…it’s not te best but is a lot now these days not a solid gui but a gui with pseudo browser…
One codebase for every single desktop operating system + the web version of the app to some extent. Linux, MacOS, Windows + others all will have somewhat standard features and the theming desired by the developer without much hassle on their part. Arguments pro and against this approach are many and I’m not in the position to talk about them.
Tauri is trying to do what Electron is doing, but with a backend based on Rust, not Chromium. If it achieves that or not is another story and I’m, yet again, in a position where I can’t really talk pro or against it.
Flutter, native binaries, barely any dependencies to run them. You get a consistent experience on every platform. Once it works somewhere, with a little bit of platform dependent configuration, you will have the same app everywhere. Flutter is basically a renderer not a whole browser.
One great example for a flutter UI app is rustdesk.
Most electron apps fail on being the same app on every platform. The worst is spotify, their desktop/mobile clients are superior to their web version, while using web technology everywhere.
The only exception I can come up with is VS code, but it’s really an exception. They poured a lot of resources into it, to be this performant.