On Thursday morning in Shenzhen, China Microsoft held their second Windows Hardware Engineering Community event (WinHEC). At this event a number of new hardware initiatives were announced; but the one everyone is still discussing is Windows 10 for ARM chips with x86 emulation.
For those that don’t know this is “full” Windows running on mobile processors with the ability to run legacy x86 programs; things like iTunes and Chrome. This is in addition to the newer mobile apps built on top of the Universal Windows Platform (UWP).
The new ARM news brings up a lot of interesting topics and questions with one being the future of universal Windows platform.
What is UWP
The Universal Windows Platform is simply the developer platform for making software for Windows. It makes use of a number of different languages such as XAML, C, C#, win JS, and .NET. UWP based applications can run across all device screens running Windows; so they can be used on mobile, PC, Xbox, HoloLens, and Internet of Things (IoT headless) devices. UWP apps are usually touch enabled or are built for things other than the classical PC. UWP apps are different from .exe x86 programs because they were designed to be sandboxed away from the underlying bits of a device and restricted in how they can change functionality.
If you want a real overview of the history of UWP please read Peter Bright’s article on Ars Technica.
While Microsoft executives and program managers have stated UWP was the future of Windows development many still wondered. For one the platform lacked features found in older developer platforms like WPF. Second was Microsoft’s recent history of creating then retiring platforms in haphazard manners. Third has been the need to maintain x86 for legacy support.
UWP vs x86
The big issue facing UWP (amongst other) is x86. For the purpose of this post x86 is the current set of technologies to make programs; also it implies these programs can only run on Intel chips.
x86 has been the main platform for Windows for the better part of three decades. Most applications people use is based on it. However x86 development has waned over time. X86 is a mature platform, but it has limitations. For one x86 has no app model. Second it has security issues in the form of programs having no set limitations. Three, X86 is quite power hungry. For not designed for the mobile world.
Going forward: Wither x86 or UWP?
So which wins: x86 or UWP?
Well after the most recent WinHEC x86 and UWP will coexist but UWP will supplant x86 over time.