As a big fan of compiled, so-called proper programming languages (and high performance code developer to some extent), I can tell that JVM is being bashed unnecessarily. JVM was heavy, I agree. Since the age of Intel Core i series, JVM is no longer heavy.
I use one of the heaviest JVM applications regularly: Eclipse. It can run in circles around any of the Electron apps with similar memory usage, and I get much more bang per MB in Eclipse. In ~1GB I can keep 3 IDEs open with plethora of files, daemons, tools and integrations. We have in-place updaters for a lot of platforms. Mac has sparkle. Linux's AppImage can update itself seamlessly.
There's no guarantee that an Electron application targets everything out of the pipeline. We still don't have an official Evernote client for Linux. Spotify for Linux is a volunteer project inside the company (which had a very painful and bloody teething too). Slack just hogs your computer. I didn't look to resource usage of Discord, but it's not light I presume.
On the update department again, I've found out that Office for Mac has updated itself again and I didn't notice. Same for Firefox.
So Electron is a nice solution, for some stuff, but it leans too much on "Hardware is cheap, network is reliable" paradigm, which is flat out wrong.
It's very cheap to build on Electron, but user pays the price. There's always the price. It all depends who's going to pay it at the end of the day.
Electron is a nice cross-platform solution until it isn't. Imagine using VSCode, Discord, Slack, Matrix, Spotify, some markdown editor and now you have 6 browser instances chipping away your machine resources...not even counting the actual browser.
Yes. Also, I'm curious, do you find the webapp forms use measurably less resources than the electron version? I would've imagined they're pretty close (with Electron possibly even being lighter than a full browser tab), but I am not confident and could be completely wrong.
> Imagine using VSCode, Discord, Slack, Matrix, Spotify, some markdown editor and now you have 6 browser instances chipping away your machine resources
I, and surely tons of others on this forum, am doing this right now without issue.
Sure it's not perfect, especially if you're on battery, but most of the time it just doesn't matter to almost all of their user base.
I personally run Teams, Spotify, Evernote and Discord, but I close them as soon as finish working with them. So without issue is a bit of a stretch. Also These applications glitch in a funny, agonizing and obscure ways. They are non-deterministic blobs and this is not good.
> Sure it's not perfect, especially if you're on battery, but most of the time it just doesn't matter to almost all of their user base.
Actually, when computing is moving on portables in an ever increasing speed, this sounds bad. "It's a nice application, but it just kills your mobility. It's not important anyway, eh?"
I don't think the approach of "we have a lot of processing power and its processor is efficient anyway, so let's abuse this" is a good way to approach software development.
The reality is it's far, far easier to write a bad Qt app that sits in busy wait loops locking up an entire core while refreshing UI and destroys your battery (this is a knock on complex native app development, not Qt).
Yes. However, these efficiencies are not always translate to better Electron or WebApps on desktop applications.
> With browsers and JS sandbox VMs they are much better equipped to actively manage and spin down idle tasks.
If your code doesn't allow these idle tasks to spin down, all this work is effectively moot.
> Folks get 20+ hours of battery now on M1 macs running tons of Electron apps like Slack, Discord, VSCode, etc. all at once.
This is possible because of the process suspension capabilities of macOS. Not efficiencies of the applications themselves completely. Evernote is the 6th most power hungry application on my M1 MacBook Air, First two is Zoom and Skype. Third one is Safari. I run Teams and Discord only on my desktop, so I've no 12hr power statistics for them for now.
> The reality is it's far, far easier to write a bad Qt app that sits in busy wait loops locking up an entire core while refreshing UI and destroys your battery (this is a knock on complex native app development, not Qt).
Qt's QML simplifies this stuff tremendously. You can write a whole UI in Qt in five lines with QML, without thinking about any of this stuff, while keeping everything native and nice.
I prefer to allocate that memory to a VM or sandboxed/instrumented debug binary instead of a “communicate by sending cats” application.
I want to reiterate that using resources carelessly just because they are abundant is bad resource management. If two or three applications are that careless, neither your RAM, nor your disk space is infinite anymore.
Microsoft Word for Mac uses less RAM and power than Evernote. That’s madness! I love Evernote, but eh, that’s a bit too much for a networked note editor.
yes
has 32gb and looking for next laptop with 64
I'm slightly curious about this, pretty much all my gaming-chat has been done on discord for years now and I've literally never had an issue with it at all
That's because the dependencies are included. You can bundle JRE with your Java app and it will "just work" too. You can also ship a native application that "just works" too. There's certainly nothing inherent about Electron apps that make them easier to use. In fact, I'd say many of them _aren't_ easy to use by nature of them not following OS standards; each one has a new interface you have to learn.