Example: On Fedora, I'd install the Arc Theme + some fancy icon pack. The majority of the applications uses the operating system's theming system, which makes all applications look the same. The same buttons, same spacing, same font sizes/types, same colours, same systems shell/window decorations, scroll bars etc. It all behaves and feels native. Most of them also uses the same keyboard shortcut system and accessibility features. Point is, the whole experience is very consistent. They use a tiny amount of disk space and a tiny memory footprint while running.
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 ...
In the 90s and early 00s it was a sign of professionalism that applications used native OS widgets and respected the theming choices of the user. Sadly, that all went away (about the time the iPhone was released?) and we entered a UX dark age where users only ever get at most 2 choices about theming and UI is considered part of your brand.
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.
No, shoehorning a hypertext document viewer and a bunch of macros into being an application has never been a good idea. Imagine building an app in Word with macros written in its version of visual basic and then being serious about it and distributing it as your official and only desktop experience. That's how I feel about all this electron crap.
Electron is amazing for developers; less so for the end users.
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.
It can also download and execute arbitrary javascript from the web, outside of a normal browser sandbox, effectively turning every app into a potential vector for system takeover, because it is RCE by design.
Yup, as a developer, being able to build a UI once and have it work pretty much identically on Linux, Windows, and MacOS is a huge time saver.
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.
They’re arguing: better for developers is better for users. Developers get to spend more time on building features and less on the accidental complexity that comes with supporting all of the competing platforms and frameworks.
Amazing and bad reputation are not mutually exclusive. Electron is an impressive engineering accomplishment, but it also has some dimensions that not everyone likes. Electron is great if you're a developer who wants to write apps in javascript+HTML+CSS and put developer preferences over preferences of users. Not everyone agrees that the decisions behind Electron and using it are good decisions.
> Electron is an impressive engineering accomplishment
...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.
> Electron is great if you're a developer who wants to write apps in javascript+HTML+CSS and put developer preferences over preferences of users
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?
Maybe people have a preference for software that conforms to a set of often well-thought-of platform UI standards and interoperates seamlessly with their other applications instead of Web applications that don't conform with the platform's standards. Part of what made the Mac and Windows attractive compared to MS-DOS is that the former had UI standards that made it easier for people to use new apps and to interoperate among apps, while in MS-DOS each application implemented its own UI and things like interoperability and accessibility were challenging. The Web is a throwback to MS-DOS-style development, where there are no standard UI guidelines. It's one thing to deal with this when using remotely-hosted Web applications, but it's another thing when an increasing number of desktop apps are essentially locally-hosted Web applications.
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.
People don't get much of a choice. It's a bit like saying people must love Joe Biden because they elected him, which could only be true if you ignored a whole universe of other factors.
As a user, I have yet to find an electron app I have tested and kept using.
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.
Of course it is user hostile!!!!
I should not feel like an intel i-7 processor with six cores and 12 threads in a machine with 32 GB of Ram is sometimes not enough to run a fucking chat application without it stuttering; or ramping up the fan like a fucking 747 during take-off should I decide to use to have a video call on this application.
People say that but I have yet to see a C++/Qt app take more time to develop than an Electron app. Case in point: ripcord, a discord AND slack client, developed by a single person in this stack. In the mean time Slack has rewritten their Electron app from scratch, what, three times for the performance problems it has ?
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 ...