Microsoft's Windows 10 has a lot of improvements over its predecessor, but perhaps the most important aspect of the new OS is what the company calls Universal Windows Platform. It is the reason why Microsoft pushed Windows 10 as one platform for all devices. UWP allows developers to build apps for a particular device family, instead of building for a particular OS. This means that if you build an app for Windows on the phone, it will conform to tablets and PCs, with minimal effort required from the developer. While reviewing the Microsoft Surface Pro 4, we asked ourselves some questions that seemed to make sense from an end user point of view, but it didn't make sense to answer them ourselves. So, we discussed the questions with Microsoft's Harish Vaidyanathan, Director – ISV Business, to get the answer's from the horse's mouth. Here's what he told us.
Can continuum on the phone run x86-based legacy apps?
No, you can’t.
Do you think eventually something like this can be done?
If you think about continuum specifically, it is essentially the ability to take apps running on the phone and get them to scale on a bigger display and for other input types. That’s the promise that Universal Windows Platform offers. So, all universal apps could take advantage of such features today. So, if a Chrome has a universal apps, then that can also take advantage for the same.
What if you had x86-based SoCs on mobile, like those by Intel?
I can’t comment on an x86 Intel-based phone, but if you think about it, today we’ve actually solved a different problem with continuum. The problem that we’ve solved is actually a few layers above the processors. So, the Lumia 950XL or 950 are running a non-x86 processor, while on the PC side, we are running Intel SoCs, and on that we don’t have the problem of scaling up, but of scaling down. But the Windows system is the same, as far as the developer is concerned, so the same app runs across different devices. So we’ve already solved the scaling across x86 and ARM platforms.
But doesn’t that bring performance hurdles? How do you get over that?
The way to think about this is, when a developer is building a universal windows platform app, they’re actually writing to a set of APIs that we have built. So, when you decide to lets say create an animation, you’re not actually writing to a CPU or GPU, you’re essentially writing to the operating system. And the work that you have to do, is to make sure that the animation that happens, maintains frame rates across processor types. The magnitude of the engineering marvel is essentially that, it hasn’t been done before.
Having said that, does this mean that apps written for Windows 8.1 were done the same way or differently?
From a developer perspective, the way they would build apps for phones and PCs were slightly different. That is being made consistent with the launch of the universal windows platform. That’s been the major change.
Earlier the developer was not writing the app to the OS?
No, they would write to the OS only, but the difference is that the phone operating system was materially different from the PC operating system, which has been rationalised this time. So what happens now is that when you write an app for the PC or the phone, they’re basically the same operating system. We’ve made the kernel the same across both the operating systems, which was earlier different. On top of the kernel come UWP etc.
What limitations, if any, are there when it comes to games?
Majority of games are built using middleware, like Unity etc. So, we had to work with most of those middleware to ensure that frame rates, graphics etc. are retained across devices. So, that is the engineering work that the game middleware developers will have to do, to ensure that the developer himself doesn’t see the difference between ARM and x86, dual-core vs octa-core and so on.
The other thing is that when you’re bringing an extreme game environment, like on the Xbox, you will not write to the UWP platform. You’ll instead write to the Xbox development kit. The Xbox has the apps mode and game mode, which allow casual games and high-end games respectively.
So a game like Asphalt 8 can be written using UWP but not Call of Duty?
Correct. If you have a mobile game, you’ll want to write as close to the metal as possible.
But doesn’t this handicap Windows in terms of mobile gaming? Since Android has Vulcan and Apple has Metal?
It’s interesting you say that, since what Metal does is provide a DirectX equivalent, and we’ve had DirectX since always, across devices. So it’s really not a limitation on us. Only thing is that on the phone people don’t use DirectX, but use Unity. But our developers can use DirectX is needed.
Does a developer have to write a new app?
If they're taking a Windows 8 PC or tablet app then the process is quicker. But if they’re using older frameworks, then it’s more difficult. Or an older version, like Windows RT, will make it easier.