3 ms·
Not everyone is in your boat. As developers, we build things for others to use; empathy is a cornerstone of the job description. Hopefully this will help illust
by Seirdy 7y ago
Not everyone is in your boat. As developers, we build things for others to use;
empathy is a cornerstone of the job description. Hopefully this will help illustrate
why Electron isn't a good choice:
Say a somewhat below-average user has 6GB of memory (I'm being generous here; plenty
don't have more than 4GB). Today is a worse-than-usual day, and 4GB are taken by
everything that isn't Electron because 40 tabs are open for a research paper due
tomorrow. That leaves three gigs to spare. Now the user starts up some Electron
apps.
- Music player? +400mb
- Note-taking? +300mb
- Messaging? +500mb (thanks, Slack!)
- News? +300mb
- Editor/IDE? +500mb
That's it. No more space. And that's before we even begin talking about what we're
putting that dual-core CPU through. Battery life is a joke at this point.
A comparison: My OS, window manager, mail client, password manager, taskbar, music
player (mpd+ncmpp+clerk.pl), file manager, system monitor, RSS reader, podcast
player, IRC client, and editor/IDE (neovim+language servers with diagnostics, gotos,
floating documentation, and refactoring all running) barely use over 1GB of memory,
combined. Let that sink in. Essentially, a single electron app using 500mb of
memory would increase my memory usage by 40%.
People shouldn't have to throw away/upgrade their computers every four years. I'm
still rocking a 2013 HP Elitebook G1 with a Haswell i5 as my secondary machine. It
runs just as well as my desktop for anything except heavy websites with JS enabled,
compiling, and graphics-intensive work. I plan to either continue using it for
another few years or donate it and switch to a more lightweight \$199 Pinebook Pro.
Using less powerful hardware forces me to empathize with users who are using tech
from the past rather than the future, because that's my job. I build tools for
people besides myself to use.
If you must use the web, consider making your "app" start a local web server and
launching the users' preferred browser for a more lightweight solution.