3 ms·
I'd put up Slack or Discord as the modern exemplars of Electron apps. As much as I loved Atom it has clearly been de-prioritized and on the verge of being shel
by qbasic_forever 6y ago
I'd put up Slack or Discord as the modern exemplars of Electron apps. As much as I loved Atom it has clearly been de-prioritized and on the verge of being shelved by GitHub & Microsoft. Yeah Slack and Discord take a few hundred MB of memory, but for thousands and thousands of people they sit there hanging out in their desktops all day every day with very little fuss. You don't need to install a JVM to use them, you don't need to worry about keeping it updated... it just works. Whether you're on linux, mac or windows... again, it just works. I can walk my parents through installing and using Slack over the phone--I cannot do that for nearly any other desktop app.
- ducktective 6y agoSo you are willing to trade ~1GiB of your RAM and ~5% of CPU cycles just to be able to send/receive some text messages? I use those services only in their webapp form and even then, my laptop grinds to a very noticeable halt as soon as they are loading in the tab. 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.
- Mavvie 6y ago> So you are willing to trade ~1GiB of your RAM and ~5% of CPU cycles just to be able to send/receive some text messages? 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.
- bayindirh 6y ago> I, and surely tons of others on this forum, am doing this right now without issue. 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.
- qbasic_forever 6y agoThere is enormous pressure on web engines to improve efficiency and decrease battery/power spend. With browsers and JS sandbox VMs they are much better equipped to actively manage and spin down idle tasks. Folks get 20+ hours of battery now on M1 macs running tons of Electron apps like Slack, Discord, VSCode, etc. all at once. 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).
- bayindirh 6y ago> There is enormous pressure on web engines to improve efficiency and decrease battery/power spend. 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.
- qbasic_forever 6y agoWe're living in a world where my 2 year old phone has 8GB of DDR4 RAM. Even a $150 Chromebook has 4GB. RAM consumption just isn't a realistic concern anymore for office and communication work, much like hard drive space is basically infinite for most people.
- bayindirh 6y agoWhen you’re doing development work on any system, every resource is scarce. 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.
- Iwan-Zotow 6y ago> So you are willing to trade ~1GiB of your RAM and ~5% of CPU cycles just to be able to send/receive some text messages? yes has 32gb and looking for next laptop with 64
- mhh__ 6y ago> I use those services only in their webapp form and even then, my laptop grinds to a very noticeable halt as soon as they are loading in the tab. 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
- philote 6y agoWhat is there to gain using the Electron versions of Slack/Discord vs the web versions?
- omniscient_oce 6y agoThey have access to the file system and OS apis
- qbasic_forever 6y agoThey sit in the background and pop up alerts in your native OS notification center. They can start up automatically when you login. You can't accidentally close them when shutting down a browser. That's about it, honestly (Discord is a little more special since it needs native access to see and capture games being played).
- bayindirh 6y agoThere are some well optimized Electron apps, I agree however, they can be implemented in a much better and more native way, without being harder to install and/or update. Qt is a possible alternative. Similarly WxWidgets can do it. 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.
- CoryAlexMartin 6y ago> You don't need to install a JVM to use them, you don't need to worry about keeping it updated... it just works. Whether you're on linux, mac or windows... again, it just works. 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.