The Persistent Gravity of Cross Platform
Each time a cross-platform app has found itself in the crosshairs of the internet, I hear a variant of this question: “What is it about enterprise companies that make so many of them abandon native apps, when they could surely afford to develop one app for each platform?”
[…]
At the highest level, cross-platform UI technologies prioritize coordinated featurefulness over polished UX.
[…]
Where things get interesting is when you look at customer-facing software. Products where the experience is a big contributor to success or failure, and the higher “UX ceiling” that platform-specific UI code enables can help retain paying users. It seems, conceptually, that a big company willing to spend big money to build really nice native Mac and Windows apps would be in a position to outcompete the Electron-based Slacks, Figmas, and Spotifys of the world. Right? So why isn’t that happening?
[…]
When you’re rapidly hiring, rapidly adding client features, and adding support for a third, fourth, and fifth platform, things start to get dicey. […] Hiring more engineers makes for a non-zero improvement, but the exponential – or at least super-linear – nature of coordination overhead means the additional product velocity per new hire can get disturbingly low.
More and more apps written with web tech (such as Electron) are showing up on the Mac desktop everyday. I understand why, but I don’t have to like it.
Previously:
Update (2021-09-14): Fred McCann (Hacker News):
The obvious question is if Electron is so bad, why do companies keep shipping Electron applications? There’s a set of common theories, which do have merit, but I don’t think they explain why Election is gaining so much traction. Before I give you my take, let’s break these down.
[…]
With some notable exceptions, most awful Electron apps are clients of network services. Why does that matter? Haven’t there always been terrible cross-platform applications that were clients of network services?
[…]
The interesting question to me is not whether developers, companies, or users are to blame. It’s not how we could expect a single company to be able to develop applications on multiple platforms with feature parity. The question is what fundamentally changed? Why are internet applications today more often than not controlled entirely by a single company which carries the burden of creating client applications for every user on every platform?
[…]
When protocols are open, there’s more innovation and more choices. If anyone can make a client, every popular internet application will have a high quality native application because there will be a market for people to make and sell them. Not only that, these competing developers are more likely to add features that delight their users. When one company controls a service, they’re the only one who can make the software, and you get what you get.
5 Comments RSS · Twitter
I just wrote up some thoughts on the The Persistent Gravity of Cross Platform and a few other takes on Electron apps. I think this point of view has merit, but I think it ignores larger industry trends that are leading to less open systems. In that context we have a trend where only a single supplier can make client applications for proprietary network services and they don't have a lot of incentive to make great clients tailored to each platform.
We used to live in a world with more open protocols which lead to better native clients because there were more companies making competing client applications.
https://duckrowing.com/2021/09/04/electron-isnt-cancer-but-it-is-a-symptom-of-a-disease/
Maybe if Apple actually provided more documentation and didn't compete against its developers, more people would be inclined to work on native apps.
It's also hard to produce convincing figures about how much a native UI will improve customer engagement and the consequent income, if you're a development manager who suddenly needs to hire new developers to support a native UI that your organization hasn't used before. You also need to manage the maintenance and retention of expertise in several different areas as staff come and go. Cross-platform UI makes the dev manager's job far simpler.
I am still not convinced about customers aching for product velocity over product quality. It’s a manager - shareholder value, not a customer imperative.
Nevertheless, if the industry has no recourse other than cross-platform then it needs to come out with a better alternative to Electron. The applications industry should look towards the gaming industry and quality cross-platforms like Unreal Engine and Unity.
I think the comments above miss a key factor.
Electron is not just a way to port from Mac to Windows or vice versa. It can be used that way and is occasionally (e.g. VS Code, 1Password). But the vast majority of apps port from web-app to desktop-app (Spotify, Slack, Discord, etc.) These apps take their already built web-app and simply encapsulate it with Electron.
Simply put: Electron offers a way to build all the ***optional*** desktop apps from the ***mandatory*** web-app using the existing web-app team.
Every other option requires hiring more developers.
That's a pretty strong offer.
So long as the web is dominant Electron will continue to pull in many PMs looking to leverage their existing MVP web-app team.