My colleague Adrian Kingsley-Hughes recently postulated that Android may be coming to an end sometime in the next few years. He makes many valid points. On consideration, I realized how Windows (yes, Windows) has already solved most of the problems Adrian detailed in his article.
We all know that the last thing Google will do is turn to Microsoft for a solution. We also know how dead in the water Microsoft's phone operating system has pretty much become. Even so, it makes for an interesting intellectual exercise to look at how Windows 10 Mobile already solves the problems Adrian predicts for Android in the future.
A good look at this issue shows why Microsoft is so frustrated that uptake for Windows 10 Mobile has been so underwhelming -- because, as I'll show, it's already pretty close to the unannounced, and barely teased, future that Google seems to be chasing.
Open source leading to device and OS kernel fragmentation
Android's biggest strength has ironically become its greatest weakness: the fact that it's free and open source. By releasing Android into the wild back in 2008, vendors were able to enter the smartphone market without either the initial investment in developing their own OS, or the licensing fees that would increase overall unit pricing.
The open nature of Android allowed vendors to take the source code and modify it freely. Today, according to analysis by OpenSignal, there are more than 24,000 distinct devices supporting Android. That's more than double the 11,868 unique device models that existed back in 2013.
Android is based on the Linux kernel, which has long allowed for different device drivers. However, because Android -- like Linux -- is open source, device vendors have also modified the source code of the Android implementation to fit their devices. This has created a wild west of customized and tweaked implementations of the operating system.
Here's where Windows, in the form of Windows 10 Mobile, already has an upper hand. While every seasoned geek has some war story to tell about fighting with Windows device drivers, the fact is that Windows' actual core implementation is consistent across devices.
For our thought experiment, we should note that even back in the pre-Windows 10 days of Windows Phone, the core OS architecture implementation was coherent across devices. As we'll see next, this approach has benefited users in the often convoluted process of updating carrier-provided devices.
Stranding users on old OS versions
Let's move on to the failing of Android most visible to users: unpredictable, or even never-occurring, OS upgrades. The Android developer site tells this story more eloquently in one image than I possibly could in a hundred words:
Let's be clear. Android Marshmallow was released almost a year ago, yet 85 percent of Android users haven't upgraded. The most common version of Android in use today is KitKat, a version of the operating system released more than a thousand days ago.
Even worse, according to a report by Apteligent [PDF], it can take Samsung more than five months to release a security update. Then it has to pass through the hands of each carrier to eventually reach users. That's for Samsung, the vendor that ships the most Android devices. It's far worse for users who buy from other Android device vendors, with the exception of Google's own house-controlled Nexus line.
Here's where Windows is different. Windows is now successfully pushing updates to Windows 10 Mobile users without waiting on the carriers. For Windows on PCs, users can choose whether or not to update their Windows versions. They don't have to wait for carrier or vendor approval. This can be seen in Ed Bott's recent article, which shows that Windows 10 adoption doubled in the last six months. Expect to see this capability move down to mobile devices in the future.
Adrian, in his bleak look at Android's future, described what an Android replacement (which he estimated could be available in five years) might offer: "No more devices being launched running years-old releases with no hope of an update."
Continuing our thought experiment, we can see that Microsoft, because it controls the Windows platform, is already in a place where it can let users choose to install their own upgrades, and also push fixes to users when necessary and on demand.
Android fragmentation causing poor developer support
There's also the problem of developer support. Steve Ballmer is famous for his "Developers, developers, developers" speech, but no one these days doubts Microsoft's commitment to developers.
While Google also has good developer support, they don't ultimately control the developer experience on all 24,093 unique Android implementations. This is causing difficulty for developers, who need to understand the platform they're using in order to support it. No developer can realistically support 24,000 different device configurations. Many of the differences are in the core code, so it's anyone's guess what's happening on any given device.
Android is so inconsistent that one of the enterprise world's greatest vendors can barely support the platform. And yet, Windows, for all its flaws, is able to reasonably enable developers to provide support across the astonishing variety of PCs out on the market. In addition, Microsoft has undertaken a major effort to create a Universal Windows Platform that allows apps to be built for, and run reliably on, anything from tiny phones to giant PCs.
With Microsoft's work on Universal Windows Platform apps, Microsoft has created what it calls the One Windows Platform that supports all range of devices from servers down to IoT.
Legacy Linux code makes Android a lumbering target for bad guys
We've talked before about the dire nature of Android malware, so we don't have to go over that again. Instead, I'll just point out that because Android is based on Linux, it has inherited some of the Linux legacy bugs.
There is a common argument that because Linux is open source, its code is subject to enormous ad-hoc peer review. There is some truth to this. But because Linux was essentially built by unpaid amateurs coding in their spare time, the platform has many nooks and crannies where there are deep and unfortunate flaws.
For example, last month a flaw was reported that makes 1.4 billion users vulnerable to attack. Apparently, a bug was introduced into Linux kernel 3.6, which was then adopted into Android KitKat. As I mentioned above, the single most common version of Android in use today is KitKat.
Because vendors have largely abandoned older Android versions, you can pretty safely bet that none of those devices, along with many running Lollipop or even Marshmallow, will ever get an update. So we're going to have users running around with old devices for years with gaping holes in their device security.
It's not like Microsoft isn't fighting its own legacy code problem. Millions of users still refuse to upgrade from Windows XP. But the difference is that users actually can choose to upgrade to something more modern. For the millions of users of left-behind Android phones, there's no upgrade available. They're merely targets, abandoned by the carriers and device vendors.
License fees: the elephant in the room
The elephant in the room is, of course, license fees. Android became so popular so fast because money didn't have to change hands in order for vendors to use it. They could experiment and ship products without reducing their profit margins due to licensing fees.
Because Microsoft already has a powerful licensing hold on Android, the argument that Android is free and Windows isn't is actually false. Sad, but false.
Our thought experiment
Adrian ended his article with this thought:
Don't expect this to happen anytime soon, as operating systems take time to develop. But equally, don't think that Android is going to be around forever. Android has some serious shortcomings that Google is well aware of, and the fact that it isn't making much effort to fix these issues is perhaps the strongest evidence -- along with the company's declared interest in developing new platforms -- that such work is ongoing.
Microsoft has what could essentially be viewed as the replacement OS for Android. Microsoft also has deep vertical integration from IoT to enterprise, a robust and proven upgrade system, a long history of license management, and a nearly universal programming solution that allows applications like Office to use one code base across a wide range of platforms.
It must be eating at the folks at Microsoft that, despite all that, Windows 10 Mobile is pretty much DOA.
It's not even like Microsoft is late coming to the mobile party. I published my first issue of Windows CE Power Magazine on, ironically, April 1, 1999. Windows CE, Microsoft's then mobile OS, had been a player for a while, even before 1999.
We don't need to re-adjudicate the missteps Microsoft made that caused them to help push the PC market over the edge, and lost them the chance to own the current mobile market. But it is instructive to note that the company today, right now, has what is pretty much the complete end-to-end solution that Adrian estimates it will take Google five years to produce.
That should be food for thought for Google, device manufacturers, and even Apple. Microsoft doesn't have the market share in this business today, but they have a full solution, a whole lot of very smart people, and a lot of history. Microsoft's competitors would be foolish to complacently count the giant of Redmond out of the mobile race for good.