For well over a decade, developers have been urged to pursue the “convergence” of desktop and mobile platforms. The term refers to the idea that user interfaces, data and experiences will become wholly consistent across both mobile and desktop apps. To remain relevant, we are told, programmers must be able to write apps that can run equally well on both phones and PCs.
It’s time to admit that convergence between desktop and mobile platforms--and thus a completely consistent experience across mobile and desktop apps--is not really happening and probably never will. Here’s why.
The Promise of Desktop-Mobile Convergence
People have been predicting the convergence of mobile and desktop platforms since the dawn of the smartphone era (which is to say 2007, when the iPhone debuted). The conversation about convergence has continued steadily in recent years.
It’s not just analysts who are convinced that the world of the future will be one in which apps look and feel the same, regardless of whether you run them on a smartphone or a PC. This idea has also helped drive the popularity of programming frameworks like Angular and Proton, which promise to make it easy to use the same programming tools to build apps for both desktop and mobile platforms.
True, some convergence efforts stalled and died--most notably, Canonical’s attempt to unify desktop and mobile versions of Ubuntu and the late, great Windows phone (which was never solely about convergence, but included efforts in that direction).
Nonetheless, other open source projects, such as PureOS and maru, continue to pursue the dream of mobile-desktop convergence. At the same time, there is clear interest among at least some developers in tools for building cross-platform apps without having to follow a different coding process for mobile and desktop apps.
Why Mobile and Desktop Apps Will Never Converge
Despite the endurance of visions of desktop-mobile convergence, the reality is that desktop apps and mobile apps will likely never offer a unified user experience. There are several reasons why.
1. Desktop hardware is not mobile hardware.
The most obvious factor is that mobile devices and PCs have quite different hardware profiles. PCs typically lack touchscreens, biometric authentication hardware and the ability to connect to cellular networks, for example. They also have much larger screens. Mobile devices, meanwhile, usually don’t come with physical keyboards. There are also big differences in battery life between each category of hardware.
Many folks who have predicted mobile-desktop convergence have assumed that PCs would acquire hardware features that make them more like phones. But that hasn’t happened in a major way. Sure, it’s eminently possible to put a touchscreen, fingerprint reader or cellular modem in a PC or laptop. But these sorts of hardware features are typically found only in high-end or special-purpose desktops and laptops. It seems an unlikely bet that we can count on a majority of PC users having mobile-like hardware features for the foreseeable future. (Nor, for that matter, is there any sign that PCs will disappear entirely, despite recurring predictions to the contrary.)
Without parity on the hardware front, it’s very hard to achieve convergence for many apps. You can’t deliver a consistent user experience when the screen size on one platform is a fraction of that of the other, or when one is all but guaranteed to have a built-in high-resolution camera but the other may not.
2. Mobile and desktop operating systems are divergent.
A second challenge is the fact that--outside of the Apple ecosystem, at least--mobile devices and PCs almost always run different operating systems.
That’s not by chance. As noted above, there have been efforts to bring Linux and Windows to phones. They met with little success. Nor is there any reason to think that Android will ever seriously power a PC.
In a way, this is surprising. There are few technical reasons why it should be hard to take a PC operating system and run it on a phone, or vice versa. Yet the fact that no one has done this in an enduring way suggests that, perhaps for cultural and political reasons, it will just never work (except for Apple, which benefits from an astounding level of vertical integration that other companies will probably never achieve).
And if you can’t even get the same operating system on your phone and PC or laptop, there is little hope of building a consistent app experience across them.
3. Users don’t want convergence.
Even if we could build a consistent experience across mobile and desktop platforms, I’m not sure many users would want it. Most people use phones and PCs for different types of tasks. You don’t generally use a phone to create a PowerPoint presentation or a desktop to take pictures of your pets.
In other words, there is a reason that not all types of hardware devices are the same. Users need different devices for different things. Building software that is designed to negate those differences in the interest of a unified user experience would end up depriving users of the flexibility they enjoy to choose which device they need for which situation.
Where Convergence Has Actually Happened: Operating Systems
For all of these reasons, it is a fool’s errand to fixate on converging mobile and desktop software. Developers should not be shy about building different apps for different platforms in this respect. Even if they could achieve more consistency, users probably don’t want it.
Instead, programmers’ energy can be better spent focusing on another type of convergence: the ever-increasing similarity between different types of operating systems. Gone are the days when writing and deploying an app on Windows was vastly different from building an equivalent app for Linux or macOS. Almost all of the major programming languages today work across all of the major operating systems. So do most development and deployment tools.
There have been fewer heady headlines during the past decade predicting this type of convergence. Even after Microsoft’s declaration of love for Linux, developers have seemed to assume that the ecosystems surrounding Windows and Linux (not to mention macOS) would remain distinct.
But they no longer are: They have converged, in a way that mobile and desktop platforms--and mobile and desktop apps--never will.