This article is something I have been cooking up for some time now. I finished most of it a week before my hackathon last weekend, but I had to shift focus to the hackathon as we had a commitment to build a complete software solution for a local non-for-profit organization. Now that I have fully recovered from the busy two weeks of planning and hacking, I here present to you my view on the subject matter.
Microsoft should adopt “Android” and make a mobile device.
Whenever this topic/opinion is brought up, people often have different oppositions. The argument is mostly about that Android is owned by Google and that Microsoft needs to depend on them. This is exactly why I put “Android” in quotes. I don’t exactly mean Android. You can say it’s a click bait, but I mean AOSP, ie. Android Open Source Project. Let’s, for the sake of simplicity, call this imaginary version of Microsoft’s AOSP MOS (Microsoft OS). What are my arguments? Let me explain.
I’m not going to get into what happened with Windows Phone, Windows 10 Mobile, UWP or Android for that matter. If you are not at least familiar with the topic, this article is probably not for you.
Many people think that “Android” is this fixed thing where you have to rely on Google and their ecosystem from apps and services to programming languages and tooling. This is typically true if the subject in mind is any other smart phone OEM. Samsung probably cannot live without Google. Although they have almost the entire hardware stack, the skin on top of Android, an app store that’s half decent and even a semi mature design system, they lack one thing that is the programming language and tooling. Like I said, Samsung rely on Android, not AOSP. They need Google to have a usable OS. Their customers need the apps from the Play Store. Their developers need the tooling from Google to create apps.
How Is Microsoft Different From A Company Like Samsung
Microsoft has a very well-maintained programming environment and tooling. One that also happens to be cross platform in the development and usage sense. Microsoft, given their track record in the software market, is capable to fork AOSP and completely understand and extend it. Microsoft targets a completely different user group that is mostly made of large enterprise and power users. These three differences make Microsoft the perfect company to rip off “Android”.
This is the one topic where I can talk more than about anything else, but I will try to keep it short and organized.
DotNet has been around for some time now. Duh. You can pretty much build anything using DotNet. Want a high-performance desktop app? Use WPF. Want an app that adapts to different screen size and response better to different input methods? Go with UWP. Want to build a web app? ASPDotNet at your service. Mobile app? Xamarin is now free and open source. Machine learning? Microservice? API? Video games? IOT? Yep, DotNet can do it all. However, didn’t you feel a little overwhelmed? Even though these are all C#, each project type has a different layout and programming pattern, and that’s exactly why Microsoft is building the next version of DotNet as an open source cross platform framework. DotNet Core has been out for some time now, and it’s at the third iteration. The next evolution of it will be called DotNet 5, unifying the previous non-open-source-non-cross-platform version of DotNet Framework that ended at version 4.x. DotNet 5 will unify all project types, meaning any of the project type I mentioned above will be built on the same programming platform and has the exactly same project structure, making DotNet 5 the best programming ecosystem any programmer can invest in. With DotNet 5, you can learn one single framework and build anything from any platform. Microsoft is making people with DotNet skill feel like they bought a stock that grows exponentially.
How does this tie back to “Android”? The answer is Xamarin. Microsoft doesn’t need Google’s toolchain to develop on “Android”. It is true that the current implementation of Xamarin still use Google’s Android SDK, but Microsoft definitely has the ability to take over AOSP and develop their own SDK and runtime layer.
One of the most popular argument against this is that if Microsoft goes all in on “Android” like I mentioned above, developers will no longer develop Windows apps or be interested in learning Windows development. However, that is not the correct way of thinking any more. All development flow will be converted to DotNet 5 so that all of the apps are just essentially DotNet app. The platform will no longer be Android, Windows, Web. They will all just be DotNet apps. If you want to develop an app that target both smart phone and PC, just develop it in DotNet 5, and two separate projects that share a lot of common logic code will be able to be compiled to run on different platforms. In Visual Studio, they are all under the same solution, so the projects can share the same model, helper methods, constant value, SDK version and so on, making the existing code highly reusable.
Other Than DotNet?
Although DotNet is the main development framework at Microsoft and its developer ecosystem, it’s not all of what they do to improve development experience.
Originally React Native was only available on Android and iOS. Actually, the official support still only limits to those two platforms. However, Microsoft developed their own implementation of it for Windows in C#. Now they are openly developing the next version in C++ for better performance and compatibility, and, guess what, they are also bringing React Native to macOS. Can you believe this? Microsoft is extending Facebook’s cross platform app framework to run on Apple’s platform. This is how much Microsoft cares about development experience. If Microsoft fork their version of AOSP, they can very well still support React Native. Since React Native will be able to run on Android, iOS, Windows and macOS, the argument of “once you go all in an Android, developers will no longer develop for Windows” is once again invalid.
This is a fun topic because even though Google owns Android, they have never had a proper development tool that are developed in house. Gosh they even never had their proper desktop OS for development. Google engineers mostly use macOS. The OG Android app IDE was Eclipse, which is now becoming history. Then people moved to IntelliJ for reasons. Now there’s Android Studio, which people will argue as the proper Android IDE that Google developed in house, but it’s not. Android Studio is basically IntelliJ with skin and Android SDK manager integration. Microsoft on the other hand, has always had Visual Studio, so in some way, they are even better equipped to maintain “Android”.
In conclusion, Microsoft is very well equipped to eject “Android” from Google, and they have the development layer ready to start their “Android” story. They will not be an Android OEM. It will truly be their OS with their development stack, and there is already a large group of DotNet and React Native developers that are on the mobile development train.
A typical Android OEM Modifies the top part of Android and calls it something OS to make the end users think it’s their product. Some even claim that they modify the underline layers so much that it’s truly their OS. No, it’s not. You still use Google’s Android SDK to develop for those “OS”. You still use Android Studio, Java or Kotlin, Google’s update service for OS update and FMC for push notification. A typical Android OEM will not be able to fork AOSP and develop something that’s truly their own off it. There’s only a few companies have the ability to do that, and Microsoft is one of them. Some people may think a company can do it if they can modify Android to have their feature and put it in their phones, but in reality, this is only a very small part of the story. The development layer is about 50% of it, but since I have already covered it extensively in the first part of this article, I will not repeat myself here. However, do take this layer seriously. You cannot find more than a handful of company that have their own development stack, toolchain, OS, developer ecosystem, user base, partners, patens and a huge stack of cash in its band account.
Amazon tried to fork AOSP, and it’s called FireOS. They did not succeed. Since I cannot provide you with an analogy in AOSP development, let me take you off track and talk about Chrome for a little bit. Google Chrome is developed based on open source project Chromium, which is also maintained mainly by Google. Since Google basically owns the web by forcing their standard in Chrome, a lot of browsers are nowadays based on Chromium for best compatibility. You can totally use Brave or Opera as you default browser, and you can say just how much you cannot live without that one feature that no other browsers provide. However, will you also login with Opera’s account? Do you save all of your files and photos in their cloud service? Do your other apps integrate with the browser you love so much? Probably not. In fact, it is definitely not the case. Why? It’s all about the company’s scale. Microsoft also forked Chromium to use as a base for the next version of Microsoft Edge. With the new version of Edge, you can sign in with Microsoft Account or Azure Active Directory if you are an Enterprise user. You can sync the settings and favorites with your Microsoft Account. The new Edge while take the base from Chromium, also gives back. Microsoft implemented smooth scrolling without clogging up the main thread. They also fixed some of the issues to ultimately make the browser drain less battery. They are pushing the changes back to upstream Chromium because they play well with open source projects, and these changes are just the beginning of what’s in the pipeline. Microsoft is one of the few companies with the ability and resources to really take a large-scale open source project like Chromium and truly make their own product out of it. The new Edge now syncs very well with new code from Chromium, and it also contributes back once in a while. It has truly become an awesome product.
If you think a browser is nowhere as complex as an OS, look it up. A browser is basically an OS. Now back to Android. I hope you understood my Chrome analogy. It is the same concept with AOSP. While other company only take Android from Google and modify the top layer, Microsoft can take AOSP (and yes, taking Android from Google is very different from just using AOSP) and make something truly their own. Other Android OEM will not pay too much attention to make Android their own because most of their revenue come from selling smart phone hardware and accessories (and yes, accessories has more margin than the actual phone. that’s exactly why Apple use lightning port so they can keep it proprietary). Microsoft has a very different revenue model. They rely on selling their services. More importantly, they rely on wholesale their services in bundles in subscription. For that to work, they rely heavily on platform integration and development ecosystem. Forking AOSP will allow them to integrate Microsoft Account and Azure AD into their SDK. Making accessibility features a higher priority in the OS development process. They can also further integrate it with Windows 10, Office 365, Teams and many more of their services.
Microsoft has a very unique customer base. While most company in the smart phone business pursue the average consumer, Microsoft target enterprise and power users (or prosumer as some like to call it). This point alone makes a big difference in terms of the kind of product you can expect from a company. Company that build smart phones for consumers need to have eye catching feature to attract people, whereas enterprise users need specific features that works well with their workflow.
For example, Apple sells iPhone. They built features like FaceID to let the users unlock their phones and authenticate into apps. Microsoft has this long before Apple, and it’s called Windows Hello. Well, it’s not only face unlock nor is it just called Windows Hello. It’s powered by something called Microsoft Passport, and it support more than face unlock. Every account is either a Microsoft Account or Azure Active Directory Account, the feature needs to work for both types of account as the enterprise use the later and need an extra layer of security. Face unlock is nice and all, but Windows is used by OEMs. They may want to make all kinds of PCs that use different biometric authentication methods, so Windows Hello supports face unlock, fingerprint, iris scan and plain old pin. It is features like this sells the product to enterprise, not an opinioned feature that the users have to adopt. The reason behind it is simple, Microsoft sells to a very different group of customers.
If Microsoft were to fork AOSP. They will gain more than just a smart phone hardware business. MOS can have built in Azure AD and Microsoft 365 for enterprise users. Making MOS perfect in any organization that already subscribe to Microsoft 365. They get access to their data, apps and services on all the new phones without going through admin setup. All the data will be secure by default through encryption and 2FA. Employees will no longer need a phone number to call since Teams will be install on everyone’s phone and acts as the default Phone and Messaging app (yes, I imagined this feature, but it’s definitely where Teams is going. It already replaced all the desk phones in some companies). Cortana will have a hug e increase in usage since it will be everywhere in each organization’s Microsoft Graph. (And if you need to be convined that Cortana is not dead but shifted focus to Office, stay tuned for another article.) Everyone in the same company will use the same ToDo app – Microsoft ToDo – to make task lists and assign them to each other. IT’s can only allow part of the apps from Microsoft Store or even deploy their own version of App Store (Yes, this is already how Microsoft does it with Windows 10. Companies can have their own store and distribution channel). MOS can be licensed to OEMs for free since the service is where Microsoft makes money. OEMs that adopt MOS will have instance access to enterprise customers as all the features are built in. They would love to have a free version of “Android” to use and get rid of Google. Microsoft can even sell security chips for on device encryption. All the DotNet developers, which are mostly enterprise focused, can now build software in DotNet 5 and target all the platforms that a company may use. They can truly build it once and have it run everywhere. Microsoft had this dream before, but it did not work because Ballmer thought they can succeed in consumer market. This model, however, will succeed in enterprise market since the stake is normally high and the needs are real. The IT department would love to build their CRM in one solution and have it run on PC, web and mobile which they all manage.
Microsoft has another big market, and that is the prosumer market. I myself am identified as a prosumer. I use Outlook, OneDrive, ToDo, Teams, Edge and Xbox Ultimate Game Pass. I would love to have a device that already has all these and a year of subscription of everything when I purchase it.
People in this market are normally looking for a better solution to manage their digital life. For example, I go on trips and take a lot of photos. After a number of trips, the photos start to pile up in OneDrive. Naturally, it makes sense for me to purchase more OneDrive storage, but I already subscribe to Amazon Prime for the shipping and Xbox Game Pass Ultimate for the games. People like me do like digital solutions, but we definitely don’t want to be subscribed to every service. It will be too much financially and too much to handle. However, if all the things I use can be bundled, I’d be ok with that. If the Teams for Life Bundle(yes, this is he rumored name of it, or it might not be a rumor anymore depending the time you are reading this article) includes Xbox Game Pass Ultimate (with xcloud), Office 365 for the whole family, access to the Movies & TVs content, I’d be ok with a price tag like 30 dollars a month.
The consumer version of this device can be marketed as the ultimate device for your digital life. You can manage all your digital content with it. Apps and games will just be DotNet 5 based, so DotNet developers can have one more target with their existing skills. If you want to play AAA titles, just use xcloud. All your photos, videos, game achievements, and messages can be shared among family members. You can sit down and play any game be either on device or connected to a big TV via continuum. You no longer need a computer at home to manage everything because this will be the only computer you need. If you want to get work done, more powerful PCs are there for you. Separating work content from life content will also save more local space on your PC. This won’t be the next iPhone, but it’s not trying to be. The market will be small, but the money will be big. Hardware sales are rarely making any money if you are not Apple, but the subscription-based service is where the profits come from. Xbox, OneDrive and Outlook all have massive non-enterprise users base, and that’s where Microsoft will make its money.
These are the three key points of how Microsoft is different from a normal consumer facing company like Samsung, and it’s exactly how and why they should adopt AOSP for their next Surface Device. This will be a billion-dollar business. This does have a future in the cloud and service-based era. This does align with their plan for DotNet and Windows. This makes sense, and I think they should do it.