vim: set tw=80 :
layout: post title: Electron considered harmful
As software engineers we have a responsibility to pick the right tools for the job. In fact, that’s the most important choice we have to make when we start a project. When you choose Electron you get:
- An entire copy of Chromium you’ll be shipping with your app
- An interface that looks and feels nothing like the rest of the user’s OS
- One of the slowest, least memory efficient, and most inelegant GUI application platforms out there (remember, we tolerate frontend web development because we have no choice, not because it is by any means good)
Let’s go over some case studies.
lossless-cut is an Electron app that gives you a graphical UI for two ffmpeg flags. Seriously, the flags in question are -ss and -t. No really, that’s literally all it does. It doesn’t even use ffmpeg to decode the video preview in the app, it’s limited to the codecs chromium supports. It also ships its own ffmpeg, so it has the industry standard video decoding tool right there and doesn’t use it to render video. For the price of 200 extra MiB of disk space and an entire Chromium process in RAM and on your CPU, you get a less capable GUI that saves you from having to type the -ss and -t flags yourself.
1Clipboard is a clipboard manager. In Electron. A clipboard manager. In order to show you a list of things you’ve copied, it uses an entire bundled copy of Chromium. Also note that despite the promises of Electron making cross platform development easy, it doesn’t support Linux.
Collectie is a… fancy bookmark manager, I guess? Another one that fails to get the cross platform value add from Electron, this only supports OS X (or is it macOS). For only $10 bucks you get to organize your shit into folders. Or you could just open the Finder for free and get a native UX to boot.
This is not to mention the dozens of companies that have taken their websites and crammed them into a shitty electron app and called it their desktop app. Come on guys!
By the way, if you’re the guy who’s going to leave a comment about how this blog post introduced you to a bunch of interesting apps you’re going to install now, I hate you.
Electron enables lazy developers to write garbage
Some Electron apps don’t suck
For some use-cases Electron is a reasonable choice.
- Visual Studio Code, because it’s a full blown IDE with a debugger and plugins and more. It’s already gonna be bloated.
- Soundnode, because it’s not like any other music service’s app obeys your OS’s UI conventions
Uh, that’s it. That’s the entire list.