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.
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.
No, It's a native app greybeard, and a "TRUE apple hipster!" that are upset about something,
That something being Electron, which from the sound of things, is a solution looking for a problem. (Or a problem pretending to be a solution? Hard to tell anymore.)
Basically, somebody got the bright idea that thin clients were awesome, and are trying OH so hard to drag the world back into that dark and dismal corner. The sensible native app greybeard says "Uh, that's retarded." and the "TRUE apple hipster" goes on some tirade about how Apple was supposed to save us from this horror, but True Apple HIpsters are rare now, because apple became popular, and no longer hip.
Oh, huh. That is pretty cool. I am not sure what those are, except for Skype, but sounds very good. I can feel my ironic beard growing.
What Tepples doesn't point out is that Slack, a simple IRC style chat interface, can easily consume multiple gigabytes of RAM and the more instances you have your slack client connected to, the higher the GB consumption soars. Discord also causes performance problems on my gaming PC when certain things happen. I'm not sure what event is causing it, but it temporarily hangs games while playing some sort of chime over my headset. And that's with a very high end gaming PC.
That explains a lot about 2018.
It says a lot about the human condition. We have a terrible habit of settling on suboptimal solutions.
It is great to have a single cross-platform standard. But really, JavaScript? We could have done far better than that.
As nerds, we have collectively failed humanity.
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.
This is bad because it's the developer offloading their problems onto the user. The user can just download the 100M zip file which is a 40-line shell-script wrapper, the user can just easter-egg hunt to figure out the UI, the user can just pull the web platform into their local domain and hope for the best as far as security, etc. Since the app is based on 96 third_party dependencies, the user can also pay the price nine months later when the app stops working because while the OS developers are paying attention to not breaking their exposed APIs too badly, nobody can really maintain that amount of API surface coherently.
Basically, Electron is Flash.
It is great to have a single cross-platform standard. But really, JavaScript? We could have done far better than that.
As nerds, we have collectively failed humanity.
s/JavaScript/x86/g
Thing is, as an app developer, I really don't want to write a separate app for iOS, Android, macOS, Windows, and Linux. We've been trying for years to develop platforms to abstract away the GUI from the platform to solve this problem. I've seen at least a half dozen come and go. They all are great in some ways and all suck in significant other ways.
You'd think by now we'd have found a good compromise. But we haven't. We're still exploring human-computer interfaces and it seems we still keep finding good but mostly incompatible ways to interact. And about the time we figure out we don't care about fighting GUI wars any more, we'll have to worry about writing cross-platform skills for Siri, Alexa, Cortana, and Google.