I have absolutely heard non-programmer users complain about the Slack desktop app. They may not be able to diagnose why it is being slow or unresponsive, but they can still tell when it's being slow and unresponsive. And while the term "power user" has fallen out of favor, there are still users who aren't programmers, per se, who nonetheless understand concepts like memory and CPU usage.
non-programmer users don't complain because they don't know how bad they are fucked.
A few weeks ago my non-technical neighbours told me that their computer was "a bit slow" and if I could "install a new antivirus". Here's what "a bit slow" meant :
- windows took 7 minutes to boot
- IE took more than a minute to open
And of course it wasn't always like that, but the proverbial frog was boiled long enough that it took a lot of time for them to be pissed enough to look for help (the poor guys had 4 antivirus programs running concurrently - on a machine with 2 gigs of ram).
In contrast, if my browser takes more than 3 or so seconds to open I start looking for what's wrong.
That's because programmers know that it could be much faster if done with native technologies.
Non-programmers assume this is normal and now they are used to slow apps. Also, they don't know that the reason their whole system is very slow is slack.
"Apps" like Slack are on my hate list even above desktop Java apps. Seriously, I can't understand how come it's acceptable to use >1GB of RAM to display 10 lines of text.
It's easy. The text is marked up, mixed in with images, video and other miscellaneous rich content, and includes remote resources and third party embeds.
There is no native UI toolkit that can do this properly, nor is there a cross platform way for 3rd parties to integrate even if there was. So web it is, with a runtime designed for being able to rapidly page in/out the entire UI from one screen to the next, even if that is entirely unnecessary for a single app.
Grouches have been shitting on the web, not entirely for bad reasons, but it's made them miss the fact that web has been stealing their lunch for a reason. If you live inside a terminal, your needs have diverged from the majority, and you're likely relying on crutches that are considered impossibly clunky by most.
The only ray of hope here is what FB has done with React and React Native, but I imagine it will take another 10 years before the unix geeks will want to admit there is something in that "webshit" worth looking at.
macOS Messages (aka iMessage) has been rendering text chat using HTML views for years, and it doesn't use gobs of memory.
The problem isn't that the text part is rendered using HTML. That actually makes sense - multiple desktop applications that compose/render user generated rich content rely on HTML (or something converted to HTML) and a web view of some description to render that content: mail, chat, etc.
The problem is rendering the entire application's chrome using Web technologies, and then running all of that inside a web view from a browser that is known to have the resource usage of a porcine creature with an eating disorder.
> The only ray of hope here is what FB has done with React and React Native
No. The ray of hope is that people realise web technologies are not the best choice, and the way they're used in Electron is fucking atrocious.
> macOS Messages (aka iMessage) has been rendering text chat using HTML views for years, and it doesn't use gobs of memory.
Keep in mind that the OS and the hardware it runs on comes from the same company that does iMessages. You shouldn't discount the amount of control that brings.
Contrast that to people who have to work with different OS platforms and hardware specifications.
Adium did exactly the same thing - rendering chat contents using HTML. It also didn’t use gobs of memory.
The hard work of optimisation has been done by apple, any app can embed a web view for content and take advantage of the optimisations in the system html renderer.
I refuse to use Electron apps - they clearly work in JS so the web version will work fine, and I get to keep the sandbox protections, content blocking etc of Safari.
And I use IDEA Ultimate almost daily. Yes, it uses a ton of RAM - but it uses a ton of RAM and is powerful.
I've not yet seen another IDE with the same capabilities (i.e. built in static analysis of dynamic languages like PHP, with refactoring support, etc).
I have oodles of memory (64GB) so I could of course run Slack and not "run out". But the key thing here is that Slack doesn't just use memory, it wastes it.
It is unfortunate that this unsaid sentiment has pervaded all the engineering organizations I've worked for... except the one that made software for developers. Funny that.
It's not that difficult. You ship products to specific usergroups and don't need to exceed their tolerances. That 5% of users really hate Electron - or even know what it is - simply just doesn't matter to Slack.
And besides, of that 5% of people who hate it, a large percentage of them use it anyway because they have to.
Overengineered products for the minority don't do well unless you charge a huge premium for it, something my field unfortunately does a lot of and I have to deal with.