4 ms·
Electron is essentially an operating system that runs on every operating system, so you can target just a single OS and your application works everywhere.
by p-e-w 4y ago
Electron is essentially an operating system that runs on every operating system, so you can target just a single OS and your application works everywhere.
- rob74 4y agoYes, and that's exactly what people hate about it: every application written in Electron lugs around its own copy of this OS. You can imagine why this might not be a good idea, especially for applications designed to run in the background, like the Slack client. For me, it was a godsend when Slack decided that my Linux version was too old to support and the client stopped working. Then I switched to the in-browser version and never looked back, even after upgrading to a new machine. My laptop's CPU and memory usage are still thanking me...
- imbnwa 4y agoI strictly run Teams, Slack, Discord, and Spotify in pinned browser tabs
- smaudet 4y agoTeams holds the crown as far as terrible electron apps. I actually can't run it locally (absurd tech policies), and I am so glad to never run it at all ever. Just easier to load it into an isolated browser tab when I need it, Zoom is so superior it's not even funny...
- jiggywiggy 4y agoThought the same. So was using teams and slack in the browser. But at least for new m1 Mac, resources for running a tab and a seperate electron app are pretty similar. It's scary how much memory certain latent tabs use, especially with video ads running.
- ly3xqhl8g9 4y agoWith regards to various applications, the question seems it is not if Electron is fit for them, but if they really need to be a "native application". Why does a chat application need to have it's own native package and can't run in a browser tab? With all the recent development on WebRTC and even File System Access API, can't really find a sole reason* (but feel free to point them out) for 99% of Electron applications: seems some kind of developer ego "we are not just a[nother] web app, we are native". * Looking at an arbitrary article, "Why does Slack desktop app use Electron?" [1], the answer seems mostly aesthetics, "faster performance [citation needed] and the frameless look". [1] https://brainhub.eu/library/electron-app-examples#:~:text=Why%20does%20Slack%20desktop%20app%20use%20Electron%3F https://brainhub.eu/library/electron-app-examples#:~:text=Wh...
- klabb3 4y agoWhen you start building an app that does anything more than what a typical website does – basic stuff like keeping some persistent files, drag and drop, notifications, minimize to tray, using threads, the html5 apis are widely insufficient, performs poorly or – in the case of webrtc – massively over-complicated). They’re (rightfully) designed for the browser with its ephemeral untrusted model. It’s a shame, because cross platform app building, distribution and updates is a shitshow, even with electron, putting extra labor on the developers, so neither party is happy. That said, some apps should really be web apps, but are still bundled as desktop apps purely for the frameless “premium” experience, and I assume to not be lost among 100s of tabs. It would be great if there was better browser support for allowing users to “install” web apps, but right now the support for that is pretty poor in terms of UX.
- chaxor 4y agoWhat's the big deal? Surely you have at least 512 GB of RAM, not the typical 1 TB for good measure these days. Modern computers with these bare minimum hardware requirements can handle a few electron apps.
- dgb23 4y agoThere are two sides to this. In the Electron case, it’s wasteful to some degree. Especially if the app is not doing much with files/storage etc. For VSCode it makes sense to not run in the browser but for Slack, not so much. But generally I feel like there’s too much overlap between OS, browsers, IDEs and language runtimes (JVM, V8/Node etc.). It gets worse if you add containers and VMs. I wonder how many garbage collectors, file abstractions, JITs, databases, schedulers, GUI engines, indexers and so on are running on my machine. How many flavors and versions of essentially the same libraries are used. There is no unified vision, of what an OS/runtime/IDE/browser should be. There’s not even a common understanding!
- otikik 4y ago> I wonder how many garbage collectors, file abstractions, JITs, databases, schedulers, GUI engines, indexers and so on are running on my machine I tried to picture clusters of information as they moved through the computer. What did they look like? Ships? Motorcycles? Were the circuits like freeways? I kept dreaming of a world I thought I'd never see. And then one day …
- thispbowden 4y agoLike a JVM?
- steve1977 4y agoBut with a crappy language.
- nocman 4y agoagain, like the JVM I am not particularly fond of Java (I know I am not alone :-D).
- steve1977 4y agoI'll take Java over JavaScript any day, but that's just a personal preference of course
- zeveb 4y ago> I'll take Java over JavaScript any day Well sure, and I would choose to be hanged rather than broken on the wheel, but I’d rather neither. Fortunately, Armed Bear Common Lisp runs fine on the JVM.
- criddell 4y agoThere are other choices. One of my planned projects over the Christmas break is to use Scala for a personal project. https://en.wikipedia.org/wiki/List_of_JVM_languages https://en.wikipedia.org/wiki/List_of_JVM_languages
- ilikehurdles 4y agoThe third most loved language [1], below Rust and Elixir, uses the JVM: Clojure. [1]: https://survey.stackoverflow.co/2022/#section-most-loved-dreaded-and-wanted-programming-scripting-and-markup-languages https://survey.stackoverflow.co/2022/#section-most-loved-dre...
- 4y ago
- socialdemocrat 4y agoKind of defeats the point of having separate operating systems. I think the best environment an OS creates where apps are deigned around that OS is the value an OS brings to the table.
- satvikpendem 4y agoAlways bet on Javascript, isn't that how the saying goes?
- nocman 4y agoThe selling point of Electron is that it is cross platform, but that does come at a cost. The cost is essentially running a separate instance of Chrome for every application you run that is built with it. The runtime overhead for that is significant. It is a tradeoff that works for some applications, but there are a huge number of applications for which it makes them resource-sucking pigs that do not provide value significant enough to justify the resources they consume.
- TeMPOraL 4y agoThe source of most of complaining about Electron and companies/developers choosing to use it is that it's not just an ordinary trade-off. The gains - being cross-platform - accrue mostly to the producer side (cheaper to develop and maintain). The costs - resource use at runtime - happens entirely on the consumer side. In other words, it's a typical case of costs being externalized, making the supposed trade-off be a "free win" instead. Since software resists commoditization, consumers don't even have a way to pass those costs back onto the vendor (by e.g. leaving for a competitor).