RIP electron apps and PWAs. Need to go native, as chromium based stuff is so memory hungry. PWAs on Safari use way less memory, but PWA support in Safari is not great.
I, for one, would not miss a single one of the electron apps I'm forced to use.
Every single one of them makes me feel like the vendor is telling me "we can't be bothered employing half decent developers or giving the developers we have enough time and resources to write decent software, so we're just going to use cheap and inexperience web developers and burn another gigabyte or two of your memory to run what could easily be a sub 100MB native app."
At least now I'll have significant numbers to tell my boss: "Sure, we can continue to use Slack/VSCode/Teams/Figma/Postman/ - but each of those is going to require an additional GB or two of memory on every staff member's computer - which at today's pricing is over $500 in ram per laptop which are all on a 18-24 month replacement cycle. So that's maybe a million dollars a year in hardware budget to run those 5 applications across the whole team. We'll need to ensure we have signoff on that expenditure before we renew our subscriptions for those apps."
Apps can't be 100MB on modern displays, because there are literally too many pixels involved.
Not that I know what's going on in an Electron app heap (because there's no inspection tools afaik), but I'm guessing much of it is compiled code and the rest is images and text layout related.
> Apps can't be 100MB on modern displays, because there are literally too many pixels involved.
What? Are you talking about assets? You'd need a considerable amount of very high-res, uncompressed or low-compressed assets to use up 100MB. Not to mention all the software that uses vector icons, which take up a near-zero amount of space in comparison to raster images.
Electron apps always take up a massive amount of space because every separate install is a fully self-contained version of Chromium. No matter how lightweight your app is, Electron will always force a pretty large space overhead.
I was talking about RAM - in that running Chromium on its own already has a preset RAM penalty due to how complicated it must be.
But window buffers are usually in VRAM, not regular RAM, right? And I assume that their size would be relatively fixed in system and depend on your resolution (though I don't know precisely how they work). I would think that the total memory taken up by window buffers would be relatively constant and unchanging no matter what you have open - everything else is overhead that any given program ordered, which is what we're concerned about.
Well, you see, there's a popular brand of computers that don't have separate VRAM and have twice the display resolution of everyone else.
Luckily, windows aren't always fullscreen and so the memory usage is somewhat up to the user. Unluckily, you often need redundant buffers for parts of the UI tree, even if they're offscreen, eg because of blending or because we want scrolling to work without hitches.
I can't fathom why this is even possible, let alone acceptable.
You could write an equally featured text chat client in a terminal (IRC style) - no video or file sharing of course - but do those things really need to consume the remaining 2.29 GB of RAM?
Surely video calls have a native capture method in Windows/macOS now where you can overlay the controls for fairly cheap resources, and file sharing only needs to consume RAM during the upload process.
What gives with these apps? Like seriously, is it the fact that they need to load a whole browser environment just to run 100mb of JS? If so, why bother shipping an app at all? Just encourage users to allow notifications in the browser for the site and be done with it. No apps to maintain, instant patching on refresh, where's the obvious downside I'm missing?
If you used it yourself, even if only to ask out loud whether the performance is acceptable enough not to require the extra work, you'd hear it all the time. Be the change you want to see!
Yeah. I'm all for sprints to start focusing on optimizations and bug smashing instead of just barreling down the road of profitability while the middle managers hold a gun to your head.
Can we get web sites to optimize as well? I use a slower laptop and a lot of sites are terrible. My old Sparc station (40mhz) had a better web experience in 1997 because than people cared about this.
Hey XML is ucky, we wouldn't want to just serve it directly and let XSL "hydrate" it in the native browser engine. It's a way better idea to download Doom 2 worth of JavaScript and use a data serialization format without built-in schema validation.
Why get all that capability for inside a native browser engine? We should reinvent all of it to run as JavaScript!
I look at MS Teams currently using 1.5GB of RAM doing nothing.