Also: If you can't spare Max 300MB ram and you are complaining on HN wtf computer do you use?
Also: If you can't spare Max 300MB ram and you are complaining on HN wtf computer do you use?
You can make pretty x-platform apps in JavaFX, QT Quick, GTK, hell even Lazarus, and they don't eat CPU and memory like Electron does.
It is a shame that nearly every app released in the latter half of this decade is just wasteful Electron garbage. Don't forget your 300+mb needs to sit along side Slack's 300mb, Discord's 300mb, and so on... fuck even my Crashplan Backup client eats up three processes and another 300mb. It's inconsiderate as hell.
Done.
I think the problem is Chrome, which the Electron runtime requires. Each separate Electron app has its own copy of Chromium in memory. (What happened to shared libs?)
I see two ways you can help:
(1) you can try to get memory-usage-reducing fixes into Chromium, or,
(2) you can build an Electron-compatible runtime that uses less memory (maybe by transpiling it into code that runs on a native toolkit, and not having a static copy of that runtime per-app).
Is it inconsiderate for Ford to make a larger SUV because your garage doesn't have unlimited square footage and you only want to buy so much gas? Of course not. Why is this any different? You can decide not to buy the SUV just like you can decide not to download this application.
(edit: Flash, maybe? Though people mostly didn't try to write too many full apps in it. And Flash projects could be fairly CPU-efficient if effort was put into it, but way less effort than, say, MS with VS Code)
We have regular audits to find ways to make things lighter/faster, and therefore better. Occasionally "flashier" mandates from on high override those considerations, but so far it's been specific and rare.
It's probably because our target audience isn't developers.
But the devs coming out of schools today (and half of HN) believe it's OK to build a skyscraper by stacking frameworks one upon the other.
I wonder if electron is a bit of the same deal, with the recommended way of using it optimizing for developer efficiency over resource efficiency.
Electron being in vogue does definitely compound this issue but the benefits from using it (e.g. cross OS development on a familiar platform & language many devs already know) seem to outweigh the resource problem.
Do any major code bootcamps teach C#, C++, or Java? Or is it all just webtech?
Because I chose my OS carefully and found that I like the way its native controls work. It has a number of features missing from other OSes and I want to use apps that integrate naturally with it. I have yet to find an electron app (or web app) that is 1/10th as good as a native app at fulfilling that desire. Electron apps feel like generic imitations of native apps. Yeah, they work, but everything is just off. Also, it comes from Google so I can only assume it's doing some sort of tracking of me and/or my machine resources. No thank you.
> Is it inconsiderate for Ford to make a larger SUV
It depends on which dimension they extend it and by how much. If they make it wider to where it doesn't fit in a lane on a normal road, then hell yes it's inconsiderate. That's essentially what electron does.
Electron was developed by GitHub for their Atom editor, actually.
There is no such governing body for Electron, save for the nebulous "market"; nobody with any authority is forcing them (GitHub et al) to fix their shit or GTFO
If you stick to using the GUI part minimally, it's easy to build very light weight applications with electron. I've been building my own music streaming server with electron and its gotten some traction since it's easier to install. The GUI layer is only used for editing config options, so the app typically runs with under 50mb of memory consumption: https://github.com/IrosTheBeggar/mStream/releases
If used smartly, electron is a powerful tool for developing desktop apps quickly. However thanks to modern frontend dev practices, it's easy to build a bloated pile of crap.
I get why you don't like Electron apps. I share your position in that. I would expect that if Ivelope grows quickly enough to justify it, time will be spent on improving resource utilization. That could be through scrapping Electron or through optimizing within it - but either way, at this stage "time to market" and "speed of iteration" are much more important than resource utilization.
It's not just one user that they've lost…
- we're not talking about space probes, - this is just one dev who thought "I want to write an email client" and make a tech choice based on his/her own proficiency with that stack and his/her project constraints (time, cost, quality, scope).
It seems unfair to rant so much about it. If it's feature full and good and perf becomes an issue, consider it an MVP and a stack change is doable. If the thing blows, trash the MVP.
Personally I'm far more worried about the first noted limitation about email forwarding with attachments not being available. I'd have wanted that before most of the showcased features, none of which I find particularly interesting. But I applaud the effort and the Polish, and the approach to build the tool that you want/need when. You can't find one.
(Second worry would be: if it's not open source, please make so.)
+1
Do you praise the builder of that Brazilian skyscraper that caught fire and collapse for the thousands of hours that went into its construction?
> You can make pretty x-platform apps in JavaFX, QT Quick, GTK, hell even Lazarus, and they don't eat CPU and memory like Electron does.
lol, if those are your idea of pretty... The reason Electron is popular is because those frameworks are, and have always been, garbage for garbage software.
Plus Gmail and a few others big names in webmail require a HTTP client for authentication if you want to use their proprietary sync (granted there's also POP3 and IMAP. But while IMAP is good in a number of ways it's still far from perfect).
As far as I know, every single usable language comes with a HTTP client, and every single GUI framework has a "WebView" control or equivalent.
As for the HTTP client point; you can use a simple HTTP API (libcurl or whatever) to perform the webmail authentication but honestly you're in for a whole world of pain because it's really more than just a HTTP call. Ideally you'd want another webview for that as well. Oh how all those individual webviews are going to add significantly to your memory usage. You might as well consolidate them all into one...let's call that new WebView "Electron" shall we ;)
So it's not electron vs native, it's electron vs nothing.
You're free to use gnus, notmuch, mu4e, whatever million other variants if you're so concerned about your "precious" resources. This electron app that's been built has some neat features that a lot of people might find useful, like that search seems pretty cool.
https://www.anandtech.com/show/9864/price-of-ddr4-memory-dro...
Slashdot got like this eventually. Slashdot was tech site full of luddites complaining about anything new. Worse, slashdot stopped becoming relevant. When the top comment on an article about increased hard drive space was "why does all this stuff take so much space? bloat!! lazy developers!!!".... it's pretty lame.
300mb of ram is nothing. Your OS will swap the software out when you aren't using it and it will be no big deal. People need to stop micromanaging their computer and go do more productive things with their time....
Wrong, since Electron apps NEVER sit still.
You're so wrong. This hogging literally causes micromanagement. I have to start closing browser tabs and maybe at some point my IDE or a few open files so that just Slack or Discord or some other piece of horrendously bloated software could hog up another half a gigabyte of RAM. When Eight gigabytes stop being enough because of some chat applications it's not okay. Calling people that think software can actually use resources meaningfully "luddites" is counterproductive and damaging to the entire PC ecosystem, RAM and disk space are limited resources on most PCs and people do not want and should not have to spend more just to run a few chat applications.
I have a couple of development virtual machines (VMs), and build containers running on my laptop. They help me with a range of tasks (some are memory intensive). Further, I configure nested virtualization, which lets me setup two level-1 guests (A and B), and inturn run a level-2 guest (C) in either of them. Now I can test live migration of VM C between A and B. So I really try my best to stay away from memory-hogging applications.
That's one of the reasons why 4-ish years ago I ditched Thunderbird, which was hogging memory, and switched to the venerable mutt e-mail client. (Also ditched HexChat for irssi.) FWIW, switching to mutt was one of the best decisions I made for my productivity -- I spend a lot of time wrangling high-volume technical mailing lists; it's unalloyed joy to use mutt on a daily basis (especially if you deal with e-mail based patch workflow).
Granted, it might be a niche scenario. I just wanted to call out that there are damn good reasons to conserve memory.
Wastefulness is not cool.