Erin The Red/Fennec is a user on You can follow them or interact with them if you have an account anywhere in the fediverse. If you don't, you can sign up here.
Erin The Red/Fennec @Erin

Kinda feel like kicking a hornets nest today. I think Electron is garbage and wish people would stop using it. It's slow, memory hungry, and doesn't integrate with anything well.

Β· 11 Β· 14

@forivall It eats too much ram on any platform.

@forivall My partner also uses OSX and it is not a good experience for her either.

@Erin I don’t get why they can’t just make those β€œapps” chrome extensions and call it a day

@Erin I think it would be more productive to talk about options for making Electron runtime more optimized than to simply complain that it exists.

The reality is that Electron doesn't really have a lot of alternatives if you want to make an app that works on web, desktop, and mobile. So, I don't think it'll be going anywhere.

@yogthos Reduce it's memory footprint by an order of magnatude to start, so it can run on modest hardware.

@Erin right now it's entire chromium embedded in the runtime. Modularizing it so that apps can load just the parts they actually need would go a long way I imagine.

@yogthos I fail to see what is wrong with cross platform native app development. Web apps aren't very good to begin with, why not keep them just on the web? By the time you modularize chrome and do all that work you might as well just use Qt or somethin.

@Erin for one, you often need a web version of the app nowadays. Then you often have mobile versions as well. Having one platform that targets all of these is really nice.

The other part is the workflow. For example, I'm not aware of anything that's remotely similar to this with native toolkits

@yogthos as a user, projects using electron say to me that the dev cares more about their ease of use and pumping out things in as many places as they can, more than the end users experience and real life usability.

@Erin I think that's an unreasonable position to take. Developing and maintaining software is hard work, and developers will use tools that make it easier for them to do that while keeping their sanity.

As a user, if you don't like apps developed using Electron you can always choose to use alternatives built using native toolkits.

@yogthos That would be reasonable if half my social group hadn't left IRC for Discord which does not have third party interfaces because the Discord team doesn't _want_ that to be a thing. It's electron or web app or nothing, and all of it eats ram like it's free.

I'm aware that software is a challenging and hard thing to do, I have done software dev for embedded systems and also internal tooling for my current job and I still stand by this view.

@Erin right, there is a critical mass of people who are willing to put up with electron apps despite its shortcomings. This creates network effects even for people who wouldn't use them otherwise. As I said earlier, since it's here to stay seems thst it's more productive to talk about how it can be improved.

@yogthos But at what point do you reach the limit of whats possible and have to say that the path taken was inherently limited and not the best? I'm all for improving electron, I just don't see the end game of it being close enough to native apps to address the usability and accessability options.

@Erin I certainly don't think we've reached limits of what's possible here. The electron team is also actively working on improving performance, their goal was always to make it useful first, then to work on making it fast. Here's one example of the things they're experimenting with

Abandoning electron seems like throwing the baby out with the bathwater. It solves a problem that isn't addressed, otherwise nobody would've used it in the first place.

@Erin but more importantly, at this point it doesn't matter whether it's the best approach or not, people are building things with it, and enough people are willing to put up with using electron apps that you can't put the genie back in the bottle at this point.