← Back to context

Comment by wwalexander

20 hours ago

Using cross-platform web technology is absolutely a nuanced engineering decision that is the right one for many businesses. What is categorically bad is bundling a standalone browser runtime for every single service, wasting user’s storage and memory when you could just have a website in a browser.

Is there any major browser now that doesn’t support saving websites as apps? Electron is simply a suboptimal and incorrect way of producing web apps.

That decision is easy: do users leave bad reviews for bundling a few hundred MB of Chromium?

Do they leave bad reviews if your app malfunctions due to the system webview behaving differently than the Chromium version you tested with?

Forget about saving websites as apps, no one does that. Not sure if it works on Desktop Safari, it certainly doesn't on iOS Safari. Not even persistent storage is offered for PWAs. Apple likes the billions in AppStore fees they rake in every quarter.

  • Much of Hacker News seems to be incapable of understanding the average user doesn't care about memory use at all, beyond a few extreme examples.

    You don't need to argue with me about it: I'm not the average user. But they really do not care at all in most cases.

    • > Much of Hacker News seems to be incapable of understanding the average user doesn't care about memory use at all, beyond a few extreme examples.

      They don't care, but they care about their computer being slow because of swapping. While they can't identify the cause and link it to the various Electron apps they're using (Teams, Slack,...) it's obvious for the tech-aware person they complain to.

      1 reply →

  • Bad reviews?

    Haha. I completely replace the software with a non Electron alternative if available.

  • It's funny how folks can't even get that number right. Depending on how much you care to optimize, Electron adds 50 to 80 MB to your application. Those multi hundreds of megabyte apps? Yeah that's not because of electron, that's things like "we couldn't be bothered to actually think about the assets we bundled in". 100 uncompressed 16 bit PNG? Sure why not. 20MB worth of fonts because we don't like the built in ones and no we've never heard of subsetting? Let's go. 50MB worth of .json data files that we couldn't be bothered to gzip first? Who's going to notice!

    Electron is way bigger than an app needs to be, of course, but those giant apps that you hate, 250MB just for a health tracker? That's not electron being the problem.

    • Are you defending Electron apps? The audacity :)

      Bruno consumes 300MB in RAM. The alternative I am using consumes 25 MB and it is much faster.

      The difference is not because some uncompressed PNG or some fonts, it's the Electron architecture that is wasteful, by design.

      2 replies →

Is everyone wrong, or is there more to it than you can see from where you stand?

I don't want to spend much time on this comment so I risk not making a sufficient point, but something I notice is that you're appraising the situation from a purely technical point of view. The technical component is just one piece of what makes a whole product. I think Apple is probably a good example: they regularly make decisions that bother the hell out of tech-centered minds.

Sure, cross-platform frameworks were great. I do think LLMs are changing the game, however. If you have a robust set of tests, it's much easier to maintain native versions of an app, compared to the past.

Apart from the hassle that OSes put in the way of PWAs (intentionally, but that's another topic), a local Node app simply has a different kind of system access compared to a web app.

Most apps won't need these capabilities to function, but they are there, for all purposes good and bad:

- background activities with fewer restrictions

- less restricted file system and sensor access etc

- ...

sure, many app use this for nefarious things.

But real use cases don't need to be sophisticated rendering algorithms or what not.

I think good streaming apps also use these capabilities, for example, for performance.