Problem is, the moment I install any electron/web-based app (Slack, VS Code, Gitkraken, Spotify, Steam etc), they look out of place. They do not conform to the rest of the system. They ignore basic guidelines, spacing is all different, different themes, no native window dressing/menu's, most don't use the tray/notification system correctly etc. Basically they stick out like a fat wart.
Nevermind the resource usage and general laggy UI from these application. Yes, they lag and are slow on all OS's and yes we can notice it. Web tech is cool for what it is within the scope of a webbrowser, but outside of that it is a steaming pile of ...
People used to say one of the reasons Linux Desktop was shit was that it had so many different look-n-feel's for its disparate applications. Now it is one of the most consistent. People used to say one of the reasons Java was shit because it didn't use native widgets[0] and looked out of place, but now that's the default even for native software. Now we live in an age where developers loudly proclaim their love for bundling an entire web browser as their UI, nothing even remotely resembles the native look-n-feel, and they consider adding a bespoke 'Dark Mode' theme some kind of actually noteworthy achievement.
If personal computing survives the next few decades, future historians will judge us very poorly.
[0] It could, but people used Swing in practice.
You get faster iteration and more features at the cost of humongous system resource usage. Running several Electron applications, each with their own slightly-outdated Chrome engine, is terrible for battery life and available system resources, but you do get fully-featured applications in no time.
If your users run 32GiB of RAM and at least 8 cores, then Electron should probably be the obvious choice of platform. For most applications, though, I don't think this approach is necessary or even a good idea.
But whenever I actually use an electron app; the startup times and half-baked keyboard support (I know this is the dev's fault, not electron's, but it is much more common on electron apps) always remind me that this isn't the best way to make desktop apps.
Speak for yourself. As a user I love Electron apps for all the features they bring out of the box to developers. The alternative to a full featured Electron app is not a full featured native app, it’s no heavy client at all, because almost all the native frameworks suck in more ways than Electron does.
Also I don’t give a crap that my applications all look the same as long as they make sense. And most of the criticism of « buttons that don’t look like buttons » seem just like hidden nostalgia to me, I’ve never seen a button and wondered if it was a button. There are tons of discoverability issues in modern design, but the look of buttons is just not a problem.
The comment you replied to is referring to end users who are generally not-technical people and just want to get work done.
Your comment, instead, talks about the developer friendly features of Electron.
...it is? How? It's just a web browser hacked up to allow shit we decided it was a terrible idea to allow a web browser to do just so it can be a GUI for a local application that's probably an order of magnitude or more smaller than it is.
I’m so tired of this. Sure, the case for Electron is that it allows leveraging web-targeting code and skills, which makes more devs able to work on desktop software give the current prevalence of web skills and makes their job easier given the prevalence of web-targeting code that can be reused. But this is in no way user hostile: it means the cost to develop software with any given function is lower in developer hours (and, for commercial entities paying for development, actual $$), which means it is more likely to get done than otherwise, and that it is more likely to be a sustainable proposition to maintain on an ongoing basis. Given that users generally have a preference to have software with the functionality they desire developed and maintained, this is conducive, rather than hostile, to user preferences.
It’s hostile to the preferences of developers who have emotional attachment to particular nonweb (or just emotional hostility to web) technology, who are left in the dust, in terms of meeting users actual needs, by those adopting Electron. Or, less emotionally, it is hostile to preferences of developers who have a substantial investment of time and effort into building marketable nonweb skills in desktop app development, and are finding those skills marginalized in the marketplace by adoption of Electron.
... and so do I, as someone supporting a company, looking at why users complain that their shiny new M1 laptops' batteries still sucks. I can tolerate Electron if it's battery-efficient, but everytime we analysed which apps are battery-hungry? Electron apps always tops the list. Not to mention genuine UI concerns like why are some developers insisting on a thin grey font that's genuinely unreadable? And even if it has a decent UI, navigation outside of a mouse-keyboard duo is never there. We have to file multiple bugs on behalf of disabled users because most web devs don't care about accessibility.
In a sense, I wouldn't complain about Electron if these three problems (battery life, genuinely user-hostile UI, poor accessibility) didn't exist (or are few and far between that it became an annoyance instead of being monsters), but here we are. Again, I don't want to waste dev time on inconsequential things like most UI toolkits are insisting. I've worked on apps with Qt and it genuinely sucks, and web development has been genuinely a better development platform (still sucked, but much less), but developing an application predicates on that application not being user-hostile, and Electron (and to be honest, web in general) doesn't encourage the developers to think about these issues.
So am I. Not user hostile? Since when is it acceptable to assume that users don't care about efficiency? People care about battery life, people care about responsiveness, and people care about interface consistency. You may be tired, but I'm happy that slowly the tide is turning and people are less friendly to things like Electron that put developer and business priorities before anything else.
I also don’t get the argument that it is a good thing for users to make desktop development open to the glut of web developers we’ve created. Again, that is a developer- and business-centric argument. This feels like saying we all should accept a lower quality of software simply to match an average skill level for a large collection of available programmers. Is it really unreasonable to set our expectations of quality higher than that which an average web developer can (or wants to) achieve?
The Web is fundamentally a different platform from modern desktop environments; writing desktop applications as if they were Web applications running on beefy servers leads to bad user experiences, just like how Web applications that do not take into account network latency, security, and other aspects of the Web that don't normally apply in native desktop applications leads to bad user experiences.
I'm not saying that Electron is automatically bad. Cross-platform GUIs and other tools have existed for decades due to their labor-saving characteristics, and this is a recurring controversy (for example, Microsoft Word 6 for Macintosh was widely panned by Mac users due to its feeling like a simple port of Word for Windows instead of a tailor-made Mac application, and certain Java GUIs don't fit with the underlying platform's UI standards, though Java does support native UIs). However, I think it's a bad thing for software vendors and developers to take the attitude that users should be grateful for whatever they release, though I admit there is a thin line between expressing dissatisfaction and acting entitled.
There are many tools available as electron apps that I have to use for my daily job that I prefer running in a browser window instead of the buggy electron app such as teams or slack. And I don't see any downside in using the website instead of the electron app, quite the contrary in fact. Even on mobile there are some tools that I prefer to run on the browser, mostly for better control of my privacy.
If you develop on the web, develop on the web. If you want to build desktop app, develop your apps like desktop apps. Users will thank you.
Why bother with web widgets, or running daemons with local browser when one can contribute to Google's takeover on the Web.