personal venting
Getting very sick of the constant substance-less shitting on Electron and JS by people on here, I think I'm just going to start muting anyone who toots this stuff.
If you people would ever goddamn engage on the conversation of *why* people use Electron instead of just throwing a pile of developers under the bus who have been fucking begging for better tools for decades, then the whole problem you're complaining about wouldn't exist.
But noooo, it's much easier to just whine about the tech, of course, and never actually introspect about how we got here or what role you and others might have played in that. Fuck off with that shit, seriously.
personal venting, caps
The fucking problem is that COMPANIES ARE UNDERPAYING DEVELOPERS AND NOT HIRING PEOPLE WITH THE RIGHT SKILLS. It's fucking CAPITALISM, like every other problem you people talk about on here. It's not the goddamn framework or the runtime or whatever the hell else.
It's companies hiring webdevs because they are cheaper, who have zero experience with building anything that stays resident in memory for longer than the lifespan of a tab, and "Electron is like a browser, right????" and so why *wouldn't* you task an underqualified developer with building a whole goddamn desktop application despite having had neither training nor opportunity to learn what the requirements of the job actually are, and THAT is why every Electron app you are running uses 3 fucking gigs of RAM, not because boo-hoo it uses the evil javascripts.
And if you spent literally ANY time learning to understand the problem with the resource usage of Electron apps, and actually ran a profiler for more than two seconds, and actually, y'know, *talked* to the people who work with this stuff, you would KNOW ALL OF THIS ALREADY. But no, again, it was easier to just shit on Electron because that's the cool thing that everyone is doing, right?
personal venting
Also: yes I have in fact checked many many times over the years what people based their anti-Electron sentiments on, and I can count on none fingers the amount of times that anyone came up with anything that even vaguely resembled a sound rationale, 100% of it has been hearsay, every single time I've checked, without exception
reading material, re: personal venting
Also, this is frankly mandatory reading if you're a programmer: https://blog.aurynn.com/2015/12/16-contempt-culture
reading material, re: personal venting
@joepie91 me, learning C++ and webdev simultaneously in 2014ish: wow, html is so much easier to use than any desktop GUI. Someone should take the declarative style of HTML and the power and ease of use of CSS and put them into a native GUI toolkit I can use C++ with
Me, a few years later when Electron and React Native and other technologies increasingly bring *exactly* HTML, CSS, and JavaScript to the desktop instead: this is not exactly what I had in mind
re: personal venting
@joepie91 I'm torn on electron, because it basically means Linux desktop support for corporate apps is at an all time high, but also I just wish it was a tiny bit more compatible & didn't hurt my iGPU as much (which is probably just because the Linux support was haphazard). But ragging on it for being js is bottom tier criticism, or even for memory usage really.
re: personal venting
@ZeroEcks Oh yeah, there are certainly valid criticisms to be directed at Electron. But crucially those are never the ones that people actually bring up, and the people complaining about Electron are *also* never the ones willing to contribute to getting the remaining issues fixed.
re: personal venting
@joepie91 well I would have to actually contribute and maintain things so I'd rather not, if every complainer actually contributed a fix we could get places.
I think my main complaint is actually that it should be easier for me to update companies electron for them though, like how Wayland support is much improved but a bunch of apps don't ship with it. But arch solves that with their "system electron" packages so idm. Probably says a lot about how much it's improving too.
re: personal venting
@ZeroEcks Honestly you can just use the system Electron for like 95% of Electron apps in my experience without anything meaningfully breaking, I've been doing that for years, the whole "shipping an Electron with every application" was more of an invention by tech companies because they didn't want to deal with package managers, originally it was meant to be used with a system runtime much like Node
re: personal venting
@ZeroEcks @joepie91 ime all the electron apps I've used work better with better sandboxing and less total RAM use by running the web app in my normal browser
(My foreground tasks are often io limited where as much disk cache as possible saves me time, and I don't know how electron handles that memory pressure)
personal venting, caps
@joepie91 I don't understand why this is directed at people complaining about Electron if Electron exists specifically to enable people to engage in this shitty capitalist mode of application development. JS, sure, but why Electron?
personal venting
@freakazoid It's not. The goal of Electron, especially of the broader community originally around it, was to make the frankly just better application design tooling of browsers (CSS in particular) available for desktop development, because historically UI toolkits, especially the cross-platform ones, have sucked shit (and in many ways still do).
It's just that capitalists saw this as a way to cut costs.
personal venting
@freakazoid (Do note that at the time of introduction of Electron, CSS and versions thereof were not actually a thing in other UI toolkits - that only came much later, and even then usually in a much more restricted and janky form)
personal venting
@joepie91 But isn't resource usage (not to mention download size) going to be high in Electron pretty much no matter what you do? Browsers aren't exactly small. Microsoft managed to avoid that while still supporting HTML and CSS by sharing everything AIUI. Which is a security nightmare the way they did it.
I absolutely support the end goal. It's just that using a full-blown browser for each application seems like the epitome of focusing on developer convenience over user needs, which is IMO a big reason why free software has struggled to compete with the capitalist model.
HTML for desktop UIs
@joepie91 I feel like this Microsoft-technology-from-20-years-ago would make a great basis for a next-generation desktop environment. One rendering engine, one JS engine, all your applications/components.
Yes, that's essentially ChromeOS I guess. Maybe we should just fork it? I think to make a new DE work we'd need to take things away from Linux, not add more. No OS package manager (just Flatpak), etc.
personal venting
@freakazoid "But isn't resource usage (not to mention download size) going to be high in Electron pretty much no matter what you do?"
Short answer: no, it's not. Electron does not have 'high resource usage' and never did.
"It's just that using a full-blown browser for each application"
Electron isn't a "full-blown browser" and this is very much part of the misinformation that is causing all this bullshit. Its internal complexity is not meaningfully higher than that of a modern UI toolkit, and it's not Chromium either.
personal venting
@freakazoid Like, all of these claims are literally just false, but nobody ever bothers to actually *check* them before repeating them.
personal venting
@joepie91 I'd certainly fallen for them, having heard them many times and never having heard anyone contradict it!
Time for me to go learn about Electron!
personal venting
@freakazoid Some pointers to that end: the actual thing that Electron uses is CEF, Chromium Embedded Framework, which can more or less be thought of as "just the engine part of Chromium without all the other browser stuff" (ie. mostly just layout, parsing, and an embedded JS runtime, similar to modern UI toolkits), the baseline memory use of Electron is somewhere in the region of 50MB at most, V8 is a very fast and well-optimized JS runtime (achieving close to C performance in some cases... and often better performance in typical I/O-bound scenarios), and most of the 'memory use' of both V8 and the rendering subsystem are optimistic memory allocations/retaining that are not actually used yet to prevent memory fragmentation, and which disappears under memory pressure.
personal venting
Jesus fucking christ I hate tech discourse.