Microsoft has officially announced the successor to the ill-conceived Windows 8, codenamed “Threshold” and now surprisingly numbered Windows 10 rather than 9. You see, “Windows 9” also matches the start of “Windows 95” and “Windows 98”… and a lot of short-sighted coders used a
startsWith string check to determine Windows versions. Also, the internal version number increments to 6.4 from 6.3 in Windows 8.1, presumably to avoid the popular major/minor version check goof.
Windows 10 won’t be released until late next year. Then it’s supposed to run on any device, “from the Internet of Things to servers in enterprise datacenters,” and from small touch screens to large mouse & keyboard systems to screenless devices. If that sounds incredible, that’s because it is… and the announcement quickly backpedals to call Windows 10 a product family rather than a single OS, and without a unified GUI either. The developer-facing API, an improved Windows Runtime (WinRT), is what’s supposed to be unified:
And across this breadth of devices, we are delivering one application platform for our developers. Whether you’re building a game or a line of business application, there will be one way to write a universal app that targets the entire family. There will be one store, one way for applications to be discovered, purchased and updated across all of these devices.
There’s one huge catch in this model: you, the developer, are obliged to create and package all the distinct user experiences and connectivity plumbings that are required for each different platform. Despite the PR insinuations, an application designed for a traditional Windows desktop will not magically run unchanged on a smartphone or web-enabled refrigerator, no matter how similar the internal APIs are.
Universal WinRT Apps
How about the opposite route, though? As promised Windows 10 will finally let WinRT (“Metro”) apps run in desktop windows, using all the familiar application and task switching controls. Those same “universal” apps should work on Windows Phone and Xbox One, meaning developers can now create a single application and deploy it to all Microsoft environments that meet certain minimum GUI requirements. The big question is, would they want to?
Windows desktop users want desktop applications which are usually written to the Win32 or .NET/WPF APIs. These are widely used and offer full access to Windows desktop capabilities whereas WinRT, from all I hear, is still relatively limited and immature. So maybe the trick is to leverage popular mobile apps that scale up to desktop screens? That might work for the upcoming Android laptops but on Windows, desktop is vastly more popular than mobile or the odd Xbox app. (Xbox One is bought for playing optimized console games, not for random cross-platform apps.)
So for the time being my assessment is unchanged. It’s a relief that Microsoft will restore proper desktop functionality including the old Start menu, and I certainly applaud the effort to introduce a new API that solves long-standing problems such as high DPI support, a curated app store for casual users, and support for a variety of devices. However, as long as Win32 decisively dominates the Microsoft ecosystem, including Win32-based .NET APIs and popular Windows versions that don’t support WinRT, there’s little reason for developers to bet on another API.
Microsoft will have to deliver a WinRT API that’s so good and offers such an easy transition from Win32 that developers will voluntarily start the migration. And then, in order to extend Microsoft’s presence beyond the desktop, smart frameworks must flexibly cover the vast UX range from smartphones to multi-monitor PCs. Maybe the company is already preparing such things but so far I haven’t heard of them, and until all the pieces are in place the new unified API is a mere technical curiosity.
The blogosphere went wild with the announcement, so here’s a selection of links with more information. Despite my doubts about the unified application concept, Windows 10 certainly should be a worthwhile upgrade for current Windows users.
- Tim Anderson discusses Windows 10 from a user perspective and a developer perspective.
- Windows Insider Program offers a preview installation of Windows 10. Microsoft has a PDF quick guide, and Ed Bott provides installation tips and takes some screenshots of the current version.
- New command line features: Line-wrapped selections, standard copy & paste shortcuts, and more.
- Cortana traces spotted: Halo-named natural language assistent is likely to feature in Windows 10, at least for English speakers.