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.
Articles from blogs I follow around the net
Go’s treatment of errors as values has served us well over the last decade. Although the standard library’s support for errors has been minimal—just the errors.New and fmt.Errorf functions, which produce errors that contain only a message—the built-in error …via The Go Programming Language Blog October 17, 2019
I’ll soon be working full-time on open-source software! I’m pleased to announce that I’m joining Sourcehut. Huge thanks to Drew DeVault for making this possible. I also want to thank everyone supporting Sourcehut and allowing it to grow. Being able to do …via emersion October 15, 2019
This post gives an overview of the recent updates to the Writing an OS in Rust blog and the used libraries and tools. I finished my master thesis and got my degree this month, so I only had limited time for my open source work. I still managed to perform a…via Writing an OS in Rust October 6, 2019
Generated by openring