Devs getting stuck into Windows 10X on Surface Neo will have to tussle with UWP
Wonderbar: Compatibility issues ahoy
Microsoft has gone public on a new range of Surface hardware, the most intriguing being two foldable devices – one an Android phone and the other running a new variant of Windows, Windows 10X. The devices are prototypes, with general availability planned for late 2020.
Windows 10X is not exclusive to Surface. Microsoft's own hardware line-up has always been about driving the company's OEMs to deliver improved Windows devices, as well as being an important product line in its own right. So we can expect other dual-screen Windows 10X devices from the usual crowd – vendors such as Asus, Lenovo, HP and Dell.
What, then, is Windows 10X? Microsoft has yet to talk about it publicly in detail. What we do know is gleaned from the little said and shown at the Surface Neo launch and Windows and education corporate veep Eran Megiddo's related post.
Surface Neo is a dual-screen, 360° foldable device running a new Intel CPU codenamed Lakefield, which is optimised for dual screens, enabling a slimmer and more power-efficient design. According to Megiddo, all 10X devices will run Intel CPUs.
Lakefield, announced in January, has a "hybrid computing architecture", meaning that it combines power-efficient Atom Tremont cores with high-performance "Sunny Cove" cores. The idea is that the PC uses the power-efficient cores when it can, and the high-performance cores when needed, extending battery life. Lakefield also features a 10nm process and new "Foveros" packaging, which enables a thin 12 x 12 x 1mm chip.
Windows 10X is not a replacement for Windows 10 but will be offered alongside it, targeting dual-screen mobile devices. It builds on engineering work in Windows that goes back many years, making Windows more modular and allowing Microsoft to strip away legacy code when it is not needed. "We call these shared technologies 'one core'," says Megiddo. Windows 10X appears to be the first full release of Windows Core OS (WCOS) based on this work.
The downside of removing legacy code is loss of compatibility. Windows 10X is primarily designed to run UWP (Universal Windows Platform) applications, but will run Win32 desktop applications in a container. UWP applications use WinUI visual components and are based on the Windows Runtime, first introduced in Windows 8.
The exact details of what code will run natively and what will require a container are not yet known. The container technology is for Win32 applications.
Microsoft has been blurring the boundaries between UWP and old-style desktop applications, enabling Win32 and Win64 applications built with Windows Forms and WPF (Windows Presentation Foundation) to call UWP APIs, and easing restrictions on UWP so that apps can call Win32 and COM APIs. In this documentation, Microsoft in fact says Win32 and COM APIs "are part of the Universal Windows Platform", noting that they are implemented only "by some Windows 10 devices" so developers should check for their presence before calling them.
What this means is that in Windows 10X, some applications will run natively (most but not necessarily quite all UWP applications), some will run in a container (almost all Win32 applications), and the way containerised applications work and interact with the system is not yet known.
Microsoft has high hopes for Surface Neo. The device did look good on stage. We saw how applications open by default on one screen, but can be "spanned" to fill both screens with a simple gesture. We saw how a magnetically attached, wirelessly charged keyboard can flip up, converting the device into a laptop, and leaving an area of screen above the keyboard to become a "wonderbar" for toolbar functions.
This wonderbar screen can also show applications in a mini view. The demonstration showed how a video running fullscreen in the upper display can be moved down to the wonderbar, enabling you to open a new application while retaining continuity.
Microsoft does face considerable challenges, though. The UWP ecosystem is not a rich one compared to classic desktop applications, and tricks like the Desktop Bridge (packaging a desktop application for the Windows Store installer) will not magically make missing APIs appear. This means that, at least initially, users will be working much of the time in the Win32 container – transparent to the user, but with some overhead.
Running apps in a container does have significant advantages. It offers some degree of isolation (though Microsoft is not yet talking about this as a security feature) and helps to keep the operating system running smoothly, avoiding registry bloat and system file corruption.
This could go one of several ways. Windows 10X might revive interest in UWP and usher in a new era of safer, more power-efficient mobile PCs – as discussed at Computex earlier this year.
It is also possible that compatibility issues will have hackers trying to figure out how to get "full Windows 10" onto a Surface Neo, or Microsoft bringing more "legacy" code back into the main part of the 10X operating system.
Developers, as ever, are key – hence Surface corporate veep Panos Panay stating in New York yesterday evening: "We need to get [Surface Neo] into the hands of developers as soon as possible." Preview hardware, perhaps, at the Build conference in May 2020? ®