To Revive the Mac, Apple Wants to Kill Electron
onezero.medium.com
onezero.medium.com
> Electron represents something of an existential crisis for Apple. If developers can build with web-based frameworks, they’re less likely to use Apple’s tools, services, and ultimately, its App Store.
Most Mac apps are distributed outside of the Mac App Store.
> To demo such an exciting framework, you’d expect big names like Netflix or Amazon Prime Video, which could theoretically bring off-line video playback to the Mac for the first time
Nobody seems to have really been clamoring for native apps for these…
> developers like Netflix, which need to build for other platforms anyway, will keep using Electron for other apps
Yeah, no. Netflix makes “native” apps for a mind-boggling number of platforms, including set-top boxes and game consoles.
> A better example of this idea can be found in Chromebooks, where Google allows almost any Android app to be used without modification. Want to run Instagram or stream with Spotify’s mobile app? It works as you’d expect, with all of the benefits from the mobile app in tow.
No, it doesn’t: have you tried to scroll in one of those apps? That’s right, most of the time you have to drag your cursor across the screen.
> If you’re a company like Slack, it’s cheaper and easier for you to target every desktop platform with Electron
No, because Slack already has an iPad app.
I think all of the STB platforms (at least in the UK) are HTML & JS now. I think they used to be flash.
> Most Mac apps are distributed outside of the Mac App Store.
How does that make the author's statement wrong?
> Nobody seems to have really been clamoring for native apps for these…
"Nobody seems". Subjective. Also sounds wrong to me since it goes against my personal experience.
> Yeah, no. Netflix makes “native” apps for a mind-boggling number of platforms, including set-top boxes and game consoles.
How does that make the author's statement wrong?
> No, it doesn’t: have you tried to scroll in one of those apps? That’s right, most of the time you have to drag your cursor across the screen.
Not my experience.
> No, because Slack already has an iPad app.
Irrelevant. How does that make the author's statement wrong?
The author's point is not relevant: the App Store is not the preferred distribution method for most Mac apps.
> "Nobody seems". Subjective. Also sounds wrong to me since it goes against my personal experience.
Subjective…except you replied with your own subjective opinion? Video streaming apps don't really need a native UI: they don't run constantly, and they don't really need access to platform features. Sure, it's nice to sometimes have them be so, but the real focus tends to be on social media apps and productivity tools.
> How does that make the author's statement wrong?
Because the author claims that Netflix will "keep using Electron", but they won't.
> Not my experience.
I mean, this depends on the apps you're using, but I don't think a lot of them will work well without work put into them to make them adapt to Chrome OS.
> Irrelevant. How does that make the author's statement wrong?
Because they can check a box in Xcode to make a Catalyst app out of their iPad app? It's not as hard as the article is trying to make it seem.
49% of the page is non-scrollable on an iPad (811 of 1668 vertical pixels). Unreadable.
That is just blatantly wrong. There's cross platform toolkits like Gtk/Qt/Swing/others that I'd say are still easier to build apps with than electron. There's RAD tools like WinForms and VB that let you drag'n'drop most of the UI if you're happy targeting a single platform.
Electron is still not as good as these options were 20 years ago, the only thing it has going for it are a legion of web developers that are seemingly incapable of learning something different.
Even if you want cross-platform native RAD development, there's options like Xojo / REALbasic [1], at least for Windows / Mac / Linux / RaspberryPi development. I'd bet that most of the Xojo developers are single-person coding shops, and certainly don't have big teams of developers & designers behind them.
Electron is definitely not the only option out there. Anecdata, but most of the people I know personally making money from single-developer cross-platform apps are using Qt, not Electron.
Things like flutter/react are completely going to devour the platform specific space for everything except usecases that require specific hardware(which apple is also losing because they're ignoring scientific/gaming marketshare by cold-shouldering nvidia,ML and AAA game devs in general).
i think apple is trying to "hunker down" until internet speeds improve enough that everyone is using a streaming service for all the hardware intensive stuff and they can continue selling pretty thin clients like ipads/iphones/iARGlasses
1. Building with Electron is not easy 2. Building native apps is easy (at least was the last time I checked on Windows some decades ago, I guess it's not harder now)
however the js/html/cordova support is a second class citizen and you'll have an easier time just using c#/XAML
If I only want to target one OS, I already know better options they electron. What electron gets you is Linux, Windows and mac support with less work than any other platform (in my experience)
The "[surprising] little memory they use" is huge for what they do.
Edit: Yes, I think Electron/nodejs are "bloated" too if I look in node_modules - but once I stopped worrying about that I got over the whole "bloated" perception.
it wasnt slow scrolling up the conversation to see what someone said 10 minutes ago. try scrolling up a teams conversation to find a recent message.
roughly 750MB RAM...
I'm running all this stuff on a beefy desktop - I don't really care if it takes 200MB RAM to open a file as VC Code has lots of features I really like.
Edit: I've worked with people in my career who complained about 'bloat' in C (vs assember), C++ (vs C), Unix, Emacs (vs vi), Java (vs C++)
Complaining about the latest round of tools being bloated is just what a subset of the developer community does at any moment in time (and this is not necessarily a bad thing).
> I've worked with people in my career who complained about 'bloat' in C (vs assember), C++ (vs C), Unix, Emacs (vs vi), Java (vs C++)
That's a big hyperbole.
People used to edit code on a 1 MIPS 8MB 32BIT DEC VAX 11/780.
With 30 people doing the same, concurrently.
> I'm running all this stuff on a beefy desktop - I don't really care if it takes 200MB RAM to open a file as VC Code has lots of features I really like.
I have a bunch of machines. From ARM boards, ARM-based gadgets, Intel-based ultra-light laptop to a beefy Intel-based desktop.
If a tool runs a text editor editing a small file in 3/4 GB RAM, what will it do if the technology is used to develop some actually demanding things?
When I switched from dual 1440p monitors to dual 4K monitors, all the sudden chrome and every electron app started to just randomly not draw parts of itself. Fixed in chrome ages ago, but electron still hasn’t taken the patch. For awhile if you didn’t have windows scaled up to 4K it was mostly fine, now it does it all the time for me. Spotify, VS Code, etc. are all unusable unless you disable GPU acceleration which makes them run very slow and hog your CPU. And then the memory consumption! VS Code eats more ram than visual studio proper. What’s up with that?
We cheered for ever more powerful CPUs all those years, then we lamented the end of that period and Moore's law, and now we voluntarily give up tons of power by turning every app into a bloated 3-4 layers abstracted browser+DOM rendering pane.
Cross-platform is really so over-rated. The Linux diehards aren't that numerous, and if you're down to just Windows and Mac, there are better options. I personally think it's idiotic to try to reuse the same UI across real computers and phones/tablets, so there goes the other leg of the cross-platform story.
Run dual 4K monitors on a Linux box on both nvidia and AMD GPU and all my electron apps turn into a flickery, randomly not rendering mess. Currently running what I can in Firefox, but VS Code still needs to me on my desktop and is still a mess unless I disable GPU acceleration.
Two years guys, please...
Electron can target web/desktop/mobile but the results are far from optimal (RAM, CPU cycles... JS!).
Everything else is worse.
Qt is nice. GTK is... ok. But to get a cross-platform build with either of them requires a couple of hours' fiddling around. The later you wait to go cross-platform, the more platform-specific assumptions creep into your code and the longer it'll take. But no-one wants to spend that couple of hours fiddling around right at the start of their project, when it's just a dozen lines to fix their own problem.
With electron you write that dozen line helper utility and you're automatically cross-platform from day 1. And not just in the kind of theoretical way you get with say PyQt where your application could be made to build on another platform if you spent a couple of hours fiddling with the build; the alternate-platform binaries are just there. That's powerful.
That doesn't actually solve the biggest problem. How do you package up that server? Can you make it something people can run like a regular executable on that platform? How do you distribute it?
The fact that you can't easily piggyback on the local browser irks me somewhat. If it's inherently a behemoth, maybe have it be reusable, i.e. piggyback friendly. You wouldn't want a per-app installation of Qt, for example, but even that would be less stressful on the system.
I have a lot of fantasies about how the web stack could be different. I guess that's reflective of some kind of frustration.
My impression was that with an offline capable web app you need CDNs et al to be reachable to load the web app, and then if connection was lost the app could handle it, but if you were to close and reopen the app, it would again need an internet connection to load.
I'm wondering if we might see more of JVM on desktops when the new low-latency GC engines become usable.
Solving the “apple” side of the equasion is no solution at all.
I believe Microsoft released some React Native stuff for desktop and hopefully, there is some work going on for MacOS.
You can't expect Apple to not invest on the tooling for its own platform even if cross-platform solutions are great.
I am not convinced that v8 itself have something wrong with memory usage. Same app without electron will take same amount of memory.
If i want to write apple only code, I code in swift.
I flag seldom, but this one really deserves it.
yes
But that's about the only electron app I really like to use that I use on a daily basis. Many of the other things like slack, discord, spotify, ... are more of a nuisance, and are more 'background' applications for me. Justifying blowing a Gb or 2 of ram on these is hard. I currently already use Franz (also electron) to replace all the "chat" applications, which is tolerable given that it replaces a few things, but still not a huge fan.