Hacker News new | ask | show | jobs
by porcoda 1641 days ago
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.
2 comments

> 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.

> I’m so tired of this.

... 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.

> I’m so tired of this.

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.

That's only mac thing. Windows never (maybe in early 90s?) had any consistency and nobody cares. Just look at control panel.
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 ?