The next time somebody asks why everybody has a problem with Electron, I'm referring them to this page.
The next time somebody asks why everybody has a problem with Electron, I'm referring them to this page.
However, for all the efficiency challenges Electron brings, Slack is universally cited in types of comments such as the above. This makes me highly suspect that—beyond being just written in Electron—Slack is actually an extremely poorly written app, and just the canonical example of overengineered inefficiency in general.
Slack Web, for example, also does similarly draconian things to my CPU.
Similarly, Riot.im—probably the most comparable app to Slack functionality-wise—is also built in Electron. It has some of the performance problems one would expect from any Electron app, but it is nowhere near as bad as Slack (and has a much much smaller development team with much tighter resources).
In short: Electron may not be ideal, but it seems to get an unfairly bad name from Slack; we should be laying the criticism with the Slack dev team rather than with the Electron one.
Spotify is almost certainly used by many more people than Slack, and vscode's usage is probably at least within an order of magnitude. The general feedback in comments is that Spotify is bad but not exceptionally so, and that vscode is actually very performant (not when compared to Vim, but it seems to do fine in the context of GUI IDEs).
The other app that there has been a lot of complaints about in the past has been Atom. These have declined recently due to improvements by the Atom team, but also: Atom being the very first ever Electron app probably didn't help here either.
A billion dollar company has few excuses in my opinion.
If Electron is such a horrible platform that you literally can't write performant software with it, and Slack's performance problems are really a huge problem for regular users, and yet as a massive company with a singular product they still rely on it, then I would guess at least one of two things should be true:
A) Native app development is actually way more horrible than most people say, and Electron's experience is so much better that even a company as big as Slack finds it preferable to building a dedicated Mac team.
OR, B) Slack's dev team just may not actually care all that much about performance in the first place, and they might just be writing a poorly optimized app on top of a poorly optimized platform which exasperates all of its problems.
Or, maybe a combination of the two. I dunno.
Anecdotally using Slack within a web browser (which should get rid of some of Electron's downsides since it's no longer a separate browser instance) I still occasionally see slowdown and issues with the App. Not nearly as bad as, say, Twitter, but not great. Certainly not as performant as I would expect an interface this simple to be.
So while it's silly to claim that Electron doesn't have an impact on performance, I suspect that even if the Slack team was writing native apps, they still might end up with a piece of software that has problems. Maybe fewer of them, or maybe even more, since you can get away with a lot of bad architecture in a C++ program before you hit the same bottlenecks like loading time or typing lag.
Are we sure that the Slack team wouldn't just view a native codebase as license to cut even more corners with performance?
There are plenty of wealthy companies with huge resources that make bad software. The size of your developer pool is not the sole key to quality.
Because it's a running gag nowadays.
I can run Discord and vscode on my machine just fine, with plenty of editor tabs/server tabs open. While Electron surely has its issues, Slack being terrible really shouldn't be blamed solely on Electron.