5 ms·
Slack and Spotify are two other famous examples. Yeah, like everything, Electron is all about trade offs. It’s incredibly expensive and difficult to implement
by baron816 8y ago
Slack and Spotify are two other famous examples.
Yeah, like everything, Electron is all about trade offs. It’s incredibly expensive and difficult to implement every new feature 3 different ways for three different clients. It’s very nice (and probably worth it) to just do it once, even if you lose some performance or small details that most users won’t notice.
- purephase 8y agoThis is the crux of the anti-Electron folks that I've never understood tbh. All things being equal, I'm sure companies would love to develop their apps using native tooling and have them simple, beautiful, accessible etc. Doing this 3 times for 3 times the cost, as opposed to once some sacrifices is the obvious reason for this widespread adoption.
- deleted 8y ago[deleted]
- chipotle_coyote 8y agoWell, the anti-Electron argument is that you're not necessarily doing it "three times for three times the cost." If you designed your app with the intention of being cross-platform to start with, you're writing it to have some kind of platform abstraction layer. The bulk of most applications isn't going to change. That's undoubtedly still more expensive than doing everything Electron, sure. But it's going to produce a nicer application: lower resources, faster performance, working better with platform-specific features (e.g., macOS's Services menu). Maybe that's not worth it for all applications, but if Electron-style frameworks that lock their applications to the lowest common denominators become the norm, the overall quality of software drops.
- purephase 8y agoWhen I say three times the cost, I primarily mean for the web, mobile and desktop. Not for the varying OS distributions. Electron provides a means to handle all of those environments with some admitted drawbacks on desktop. I'm not a proponent of Electron, just stating (IMO) the likely reason for it's adoption.
- solarkraft 8y agoI'm fully in support of cross platform frameworks, I just hate the Electron approach of taking the worst parts of a browser and putting it all into a gigantic, ran gobbling monstrosity. There are good "non-native" frameworks - Qt comes to my mind first, but Flutter and the now seemingly revived WPF are also good contenders. Those are pretty great. You can also do Electron well (VsCode), but almost no devs do it, which makes me question whether doing it well might require just as much effort as using something else.
- justinmchase 8y agoWhats an example of a non-good electron app?
- CyberDildonics 8y agoAtom, the ethereum wallet (worst software I've ever used) and many many more
- pjmlp 8y agoI can do that only once with Qt, and have perfectly simple, beautiful, accessible apps.
- seanwilson 8y ago> Doing this 3 times for 3 times the cost, as opposed to once some sacrifices is the obvious reason for this widespread adoption. Are there any stats that back this up? It wouldn't surprise me if it was more than 3 times the cost given you'll likely have a larger team to coordinate.
- CyberDildonics 8y agoI have no idea how this whole idea of doing something 3 times gained any momentum. Do people not realize that you can use cross platform C++ libraries and essentially get the same program to compile on three different platforms, then just write it once? It really isn't that difficult. Use Qt, or Juce, or FLTK, the standard library and a couple of cross platform libraries for things like networking and you are in the clear. The idea that anyone is actually maintaining three separate versions of a program is completely detached from reality.
- nazka 8y agoDiscord too. And like Discord or Finda[1] did, wherever you need some parts of your software to be really fast or to interact with the OS you can use Rust under the hood. And you have the best of both worlds. Using knowned technologies with CSS/HTML and React/Redux for fast UI/UX iterations, with “native access” and performance with Rust. [1] https://keminglabs.com/blog/building-a-fast-electron-app-with-rust/ https://keminglabs.com/blog/building-a-fast-electron-app-wit...
- diesal11 8y agoSpotify is web based but not electron
- paxys 8y agoIt uses Chromium Embedded Framework (https://en.wikipedia.org/wiki/Chromium_Embedded_Framework https://en.wikipedia.org/wiki/Chromium_Embedded_Framework), which is very similar.
- justinmchase 8y agoIt does, they basically use the same approach but before Electron was invented.
- justinmchase 8y agoSteam also. Embedded web with a native underpinning but not electron, totally custom made just like Spotify but their own creation.
- joemi 8y agoI disagree that Spotify is a good Electron app (and I've never used Slack so I can't comment on that). I run Spotify on my work computer (Windows) and at home on my Mac and it's extremely resource heavy on both of them, and I often get various weird issues. It's the primary reason I've been moving back iTunes a bit, actually. I never knew it was Electron until now, and I think that explains why I've always hated the Spotify programs on both platforms I've used it on.
- tomjakubowski 8y agoI don't think Spotify is Electron. They use CEF (and sponsor its development), and client side app code is primarily in webviews, but they've been doing that for much longer than Electron has existed. And for what it's worth, I have never been dissatisfied with Spotify's client performance on any platform (Win/Mac/Gnu+Linux+XOrg/iOS).
- solarkraft 8y agoElectron seems to have become equivalent in meaning to "this uses the web and is sluggish as fuck". I barely recognize VSCode as an Electron app, btw, it's so fast. They're doing something right.
- deleted 8y ago[deleted]
- joemi 8y agoWell then I guess it's objectively not a good Electron app, in that case.
- thanatropism 8y agoYou're already looking at a web browser, open tab to open.spotify.com is easier than finding an app on your computer.
- deckard1 8y agoI'd also disagree Slack is a good app. I've used it, Spotify, and a few others. I never understood the point. You're running a web page. It feels like a web page. It drains your resources just like a web page. Just because your web page runs in a window that doesn't have your web browser window frame doesn't make it native. It's a pointless exercise of tomfoolery. Not to mention you have to install and update an app now. It's not even as convenient as the web.