Slashdot Mirror


Electron and the Decline of Native Apps (daringfireball.net)

SwiftOnSecurity, regarding Microsoft's switch to Chromium as Windows's built-in rendering engine: This isn't about Chrome. This is about ElectronJS. Microsoft thinks EdgeHTML cannot get to drop-in feature-parity with Chromium to replace it in Electron apps, whose duplication is becoming a significant performance drain. They want to single-instance Electron with their own fork. Electron is a cancer murdering both macOS and Windows as it proliferates. Microsoft must offer a drop-in version with native optimizations to improve performance and resource utilization. This is the end of desktop applications. There's nowhere but JavaScript. John Gruber of DaringFireball: I don't share the depth of their pessimism regarding native apps, but Electron is without question a scourge. I think the Mac will prove more resilient than Windows, because the Mac is the platform that attracts people who care. But I worry. In some ways, the worst thing that ever happened to the Mac is that it got so much more popular a decade ago. In theory, that should have been nothing but good news for the platform -- more users means more attention from developers. The more Mac users there are, the more Mac apps we should see.

The problem is, the users who really care about good native apps -- users who know HIG violations when they see them, who care about performance, who care about Mac apps being right -- were mostly already on the Mac. A lot of newer Mac users either don't know or don't care about what makes for a good Mac app.

6 of 328 comments (clear)

  1. Re:Wha?? by Entrope · · Score: 5, Informative

    Electron is an app "platform" that basically involves installing an app-private copy of Chromium, a node.js webserver, and running the application's logic mostly in Javascript between the two.

    To paraphrase Churchill, Electron is the worst architecture for desktop applications, except for all the other ones that have been tried.

  2. Re:Wha?? by tepples · · Score: 4, Informative

    Chromium is Google Chrome with the few proprietary components (mostly Adobe Flash Player and video DRM) stripped out.
    Node.js is Chromium's JavaScript engine repurposed as a server-side language.
    Electron, an application framework that Microsoft acquired when it bought GitHub, is a way to build a copy of Chromium hardcoded to one website, possibly bundled with Node.js. This allows a developer to ship a web application that can be installed as a desktop application.

    Electron shares many disadvantages with the web platform. But one significant advantage of Electron is that you're less likely to get "Sorry! This application is not yet available for your platform. Subscribe to our mailing list to be the first to know when the crowdfunding campaign to port this application to your platform begins."

  3. Discord, Slack, Skype, and Visual Studio Code by tepples · · Score: 5, Informative

    Discord (desktop version), Slack (desktop version), Skype (desktop version), and Visual Studio Code are all made with Electron. But the differences between Discord (desktop version) and Discordapp.com are quite minor: the option to let others know what game you are playing at the moment, system-wide push-to-talk in voice channels, and video chat capability.

  4. Re:Wha?? by 110010001000 · · Score: 4, Informative

    Real greybeards call them "programs", because believe it or not everything that runs on a computer is a "program". I know, hard to believe, but computers still work the same way they did since the 1950's.

  5. Re:Wha?? by nine-times · · Score: 5, Informative

    I'll give a simple explanation, as best I understand it:

    In order to make it easier to build applications that work on Windows, Mac, and Linux without completely rebuilding it for each platform, a lot of developers have resorted to basically building web applications, and then making them available in a specialized web browser called "Electron". Electron is basically a stripped down browser that allows the web application to behave more like a native application. So you might care at least a little bit, since it's possible you're already some of these Electron applications and not know it.

    So that's kind of a good thing, that developers can more easily make cross-platform applications. The problem is, if each application is running its own web browser, then you end up installing and running a bunch of web browsers simultaneously. That ends up being a bigger drain on system resources than if they were native apps, or if you just had them all running on the same web browser.

    Microsoft wants to fix that problem, for Windows at least, by working on how all these Electron apps integrate with the operating system's built-in browser, so that they can manage those resources better. There's a big problem with the idea: Electron doesn't integrate with their own built-in browser. Electron uses Google Chrome, and Microsoft can't easily make the apps use their own browser instead. So instead of trying to make these Chrome-based apps use Edge, they're rewriting Edge to be based on Chrome. Once that's done, they can work on getting the electron apps to use their own built-in browser, and then they can work on that browser to improve performance of those apps.

  6. Re:Wha?? by nine-times · · Score: 5, Informative

    why does Microsoft care enough about the desktop experience to bother doing this?

    Well there are a lot of complicated issues in play. Again, to try to keep it simple:

    Their vendor lock-in on the desktop is not what it once was, and you see them moving increasingly into web applications and services, open source, and cross-platform projects. They're foreseeing that, even if people continue to use their operating systems, they won't be able to rely on vendor lock-in to force people onto the OS.

    They're already knee-deep in this "Electron" stuff. They already have applications on Electron (e.g. Skype, Teams, Visual Studio Code), and I think their "Modern" applications work in a similar way. I would bet that in the coming years, you'll see more and more applications move to being web applications in a wrapper. We may even see them eventually get their Office web applications in this form as a replacement for the existing native apps. That would remove the need for them to duplicate their efforts in making a separate Mac version, and they could even support Linux without extra effort.

    Even if they weren't doing this themselves, you have a bunch of developers doing it, and it's going to continue to be a thing whether Microsoft likes it or not. If they want to stay relevant and keep people on their platform, they need to try to be the best platform to run these kinds of applications on.

    Aside from all that, it really makes more sense at this point for Microsoft to use Chromium instead of continuing to build their own browser engines. They lost the browser wars. For most web developers, Chrome is their target browser. Safari and Chrome, and therefore pretty much all mobile browsers, are based off of the same code base. They can spend a lot of time and money trying to build something that works just like Chrome, or they can just use the existing open source code.