Picture by Apple from the Apple Beta Software Program.

There’s this craving out there in the industry. Imagine walking around with super powerful device inside your pocket. You can do all sorts of cool things on it like browsing the Internet, taking amazing pictures, listening to the music, downloading apps, documents and what not. Not that hard to imagine these days, most of the smartphones out there can do of the above and then some. Most of them can and does replace multiple devices we needed in the, not that distant, past (walkmans [yeah, I'm that old...], iPods, calculators, cameras etc.). But the craving is still there. Common understanding is that these devices are so powerful nowadays, that they could take on doing even more. Imagine – for the last time, I promise! – walking around with super powerful device inside your pocket. Imagine you get back home or arrive to the office, you bring the device out of your pocket and you connect it to the big screen, pointing device and a keyboard. All of a sudden, your pocket device became your desktop device. Bam! 🤯

All the failures in the world (and more!)

What’s the convergence? It’s roughly the ability of the graphical environment to adapt dynamically to the screen size of the device it’s running on. We have it on modern age web sites – they change their layout dynamically depending on whether you are using your 30” desktop screen or your 5.8” phone. The idea is very appealing: ability to run exactly the same application, only scaled and dynamically adapted to the form factor, does sound amazing.

Conceptually it’s not hard to imagine. You’ve got set of different devices with different specs, and dimensions, and hardware, and architecture… Wait a second, how on Earth could this ever work? The simple answer is: it couldn’t and it wouldn’t. Hence, we have no real life convergence anywhere. There were many attempts though (spoiler alert: none of them any good).

There’s this saying each year that it is going to be the year of Linux on the desktop. I don’t mean to be harsh – I was a Linux desktop user and advocate for a long time, though, admittedly, I never gave a damn who was using it too and how many people in general. These are just statistics and I could easily argue both pros and cons of using it, equally good. The reason for that is very simple: as with every single desktop OS out there, there are good and bad parts to it. It’s just a matter of personal taste, set of expectations and amount of compromises one is willing to suffer with.

But Linux is notable example in the convergence example with trial and error, iteration by iteration. I still remember the backlash that GNOME 3 received when it was introduced back in the 2011. They broke the old paradigm of the desktop environment and people were not happy. Eight years later I would argue they made the right choice. Sure, it took time for stability to kick in and for ironing out all the small glitches here and there, but overall GNOME managed to introduce new way of doing desktop on Linux. The baseline idea was to make it touchscreen friendly, sort of preparation step in moving towards “real” convergence.

The problem is, that being touchscreen friendly is not really solving anything. Windows 8(.1) proved it extremely well. Difference between how we operate touchscreen devices and the old school desktop is huge. In one use case we have very precise pointing device and the external keyboard plus big screen, on the other we have our fat fingers and inaccurate eyesight trying to cooperate with each other with high error rate and big amount of frustration. You can’t tackle both with single solution, this simply can’t work.

To give Microsoft credit, they somehow figured it out. They’ve hidden the old, ordinary desktop paradigm behind the ugly tiles that are haunting me to this day. GNOME didn’t do even that – the whole idea was that it should be good enough for both use cases, being somewhat “good enough” in the end, at least on the desktop. They are, however, still trying to push this dream further, and here’s the latest attempt coming from Purism:

Picture by Purism from Converging on Convergence PureOS is Convergent, Welcome to the Future.

This shows that convergence is still some kind of holy grail in the Linux desktop world. I have to give credit to Purism that, at the very least, they are not trying to tackle this huge problem themselves, they contribute directly to the upstream and have the support of the community. I can imagine a lot of geek people dreaming of single OS that drives both their laptop and phone, hell, I’m on board too!

However, here’s what Purism has to say about convergence themselves:

Since this is the ideal dream, why don’t we have convergence already? Why can’t a person run the exact same app on a phone and laptop today? It turns out that this is really hard to do unless you have complete control of software source code and access to hardware itself. Even then, there is a catch; you need to compile software for both the phone’s CPU and the laptop CPU which are usually different architectures. This is a complex process that often reveals assumptions made in software development but it shows that to build a truly convergent device you need to design for convergence from the beginning.

It is a hard problem to solve. Call me skeptic, but I somehow fail to see Purism solving it. They are not exactly well-known for neither their software nor their hardware stack. Combination of the two is not really adding up to satisfactory conclusion, is it? I’m really hoping I’m wrong in this regard, but I will not hold my breath for their solution until there are actual devices shipped that are somewhat usable.

Any problems? I foresee a few: they work on support for GTK+ only (everything Qt-based will look like crap, but what else is new?), any random update to the underlying libraries will make things go south (but what else is new?), Wayland vs Xserver drama all over the place (but what else is new?), basing it on Debian was a rather smart move, but still, systemd will kick in to break a thing or two with its lack of backwards compatibility (but what else… you know the drill). If, that is, the devices will even ship. It’s Purism after all, why do I even know they exist?

Sure enough, one could argue that there was Maemo in the past, hell, maybe even Windows CE at least attempting to have convergence-like features. But they were always very limited (either to hardware or software and often both) and very far away from the smooth experience the industry is craving for.

Picture by Apple from Xcode 11 + SwitfUI.

OK, so what all of this has to do with Apple? Are they tackling the convergence problem? No, of course not, silly.

Well… Honestly, it seems they wanted to tackle this at some point. Mac felt very neglected for past few years and it was iOS, iOS and iOS everywhere. The strong push they made on the iPad Pro front seemed to foretell the inevitable dooms day of their desktop OS. But iOS 12 failed to address a lot of things pro users still needed and even the amazing Beyond the Tablet: Seven Years of iPad as My Main Computer by Federico Viticci of MacStoriesacknowledged a lot of shortcomings from using iPad as a main driver. Personally, I can’t imagine using iPad to do my job – I honestly believe there are jobs that will never be as easily done on proper desktop as on an OS that is mainly destined to be a touch device driver.

Still, the indent was there. Idea that iPad Pro could, potentially at least, replace the good old macOS. This, in fact, would be a true convergence – iOS powering their “desktop” device (iPad) and their mobile device (iPhone) and both of them having a lot of things in common. Apple has and always had this advantage of owning the entire stack, including the hardware and it’s even more true for their iOS devices than it is for Mac (yes, I mean their dependency on x86_64 architecture and Intel in particular.). At some point though, they had to acknowledge that letting go of Mac would sacrifice a lot of their pro users (Designers/Filmmakers/Devs/Whatevers), so they backed off and listened instead.

After this years WWDC I no longer feel like a secondary Apple’s products user – Mac received so much time on stage that the direction of the company couldn’t be more clear in this regard. Desktop isn’t going anywhere, it’s doing just fine and the future looks bright for it. And the future is, to an arguable degree, convergence. It’s not the convergence we were hoping for, but it’s the convergence that we all deserve.

There is a certain appeal to the way Apple approaches this problem. They didn’t try to force macOS on the touch devices (thank goodness!) – I think it’s fair to say that this is one of the reasons why there are no Macbooks with touch screens. It seems they attempted to counterfeit iOS as a desktop replacement with iPad Pro, but this didn’t workout either. What’s the solution? Well, if you own the entire stack, you can unify the platform to one common denominator: API. Instead of trying to forcefully fit the entire OS to a different form factor, how about simplifying the way of writing apps to target all of them? And by all of them, I truly mean all, cause iOS derivatives in form of tvOS, watchOS and, the new addition to the family, iPadOS will all be supported. This is exactly what SwiftUI brings to the table and it’s mind boggling.

This is the right way to go. This is the only sustainable way to go in the long run. And sure enough, adapting new paradigm of writing apps, getting used to the new API and making the API stable and reliable takes time. Potentially a lot of it. But the end game is so much worth it and it will also buy Apple some time for preparation of Mac going ARM-based. Even this they somehow figured and prepared for though, with the project Catalyst. It may seem counterintuitive that they introduced two different technologies to essentially solve, on the first sight, the same problem. But it’s not the same problem. Catalyst will reinvigorate macOS’s application ecosystem by giving developers very easy way to port their already existing iPad apps to Mac. That’s it. SwiftUI is the new way of creating application for entirety of Apple’s ecosystem.

So that’s the convergence we were given promise of in 2019 and I’m really looking forward to the upcoming future – both mobile and desktop as well as convergence.