Wednesday’s Build 2015 keynote address was well-received by the developers here in San Francisco, and should rightly be seen as a triumph for Microsoft, which has stumbled a bit with this audience in recent years. But the issues Microsoft faces are vast. And while the software giant should have little problem meeting its goal of 1 billion Windows 10 devices, the success of the underlying platform is less sure.
That platform is officially called the Universal Windows Platform. And while Microsoft is now promoting it as the backbone of its “One Microsoft” mantra, it’s really just “v10 of the modern platform that started with Windows Phone in 2010 and in Windows 8 in 2012,” as Microsoft’s David Treadwell said this morning. The inference was that developers who have invested in these platforms will be able to move forward somewhat seamlessly to Windows 10 development. But this isn’t necessarily a huge win for everyone.
For starters, many developers have simply opted out of this modern platform, in the same way that many users have ignored Windows Phone and Windows 8. And even those who have dutifully moved forward with Microsoft’s developer platforms over the years—from .NET to Silverlight to Windows Forms to Metro to Modern/Windows Store to Windows Universal Platform and everything in-between—will tell you there’s been a lot of churn, a lot of uncertainty, and a lot of incompatibility. Some are rightfully a bit tentative about this latest evolution.
To be fair, the Universal Windows Platform does solve many of the problems of the past. It is the first Microsoft developer platform to actually address a wide range of Windows devices—traditional PC form factors, of course, but also phones and tablets and other mobile devices, Internet of Things (IoT) embedded devices, holographic devices like HoloLens, Surface Hub, and Xbox. These devices can have any size screen, or no screen. They can support an amazing array of input types, including mouse and keyboard, touch, pen, motion gestures, game controllers, and multiple sensors.
The Universal Windows Platform also lets developers adapt a single design across devices, or manually tailor the design across devices according to the unique capabilities of each. They can do so using a single design language and a single control set, though some developers and users are burned to see some favorite user experiences from Windows Phone be deemphasized or even disappear in Windows 10.
Windows 10’s short-term success isn’t tied to acceptance of the Universal Windows Platform, but it’s going to matter big-time for the long term. And to get developers to embrace this platform, Microsoft has made a number of adjustments to the less pliable Modern platform that debuted in Windows 8 just three years ago.
The first and most obvious change is that universal apps—as opposed to previous generation modern apps—don’t only work in full-screen mode, like mobile apps you would run on a phone or tablet. Now, these apps can run in floating windows next to other apps—and app types, like desktop applications, web apps, Air apps, or whatever—on the Windows desktop.
This may seem like a subtle distinction, but full-screen apps was a major issue for users in Windows 8, as was the overly-large, Fisher Price-like UI controls that made these apps ridiculous on desktop-based PCs and laptops. So they’re fixing it.
On Thursday, David Treadwell told a story about the time he informed Microsoft co-founder Bill Gates that Windows 10 would reverse the problems caused by Windows 8.
“Bill, Windows 10 is bringing back this fine feature from 1986,” he told Gates, “resizable, overlapping windows for apps.” Gates expressed his support for this change. To which Treadwell quipped, “We really should have called it Window 8.” Funny, yes. But you have to sort of pine for those three wasted years and the uncountable hours of user frustration that those full-screen-only apps caused.
Fixing the core platform is great, and necessary, but the world hasn’t sat still while Microsoft treaded water with Windows 8. The cloud has exploded, of course, and on the personal computing side, popular mobile platforms—Android and iOS (iPhone/iPad) have eclipsed Windows with consumers and, increasingly, in businesses as well.
Microsoft, as ever, is being pragmatic, and building what it calls Windows 10 platform bridges that will enable developers to reuse their code bases, regardless of origin, to create universal apps that will run across the gamut of Windows 10 devices. There are four such bridges.
The first is the web: Microsoft is enabling web developers to package and deploy live web sites as universal apps. These apps require a live Internet connection, of course, but they can also take advantage of features that are unique to the Universal Windows Platform, including Integration with Xbox Live (achievements and more), Cortana (including speech), and more.
Next up are desktop applications—Win32 apps, .NET apps (Windows Forms, WPF, whatever) and like. On Monday, Terry Myerson noted that there are 16 million such applications out in the world, and while many are powerful and useful, they are also potentially harmful to the system. So Microsoft is letting developers wrap these apps into safer, App-V based application packages—universal apps—that can take advantage of features like live tiles, notifications, Cortana, more.
The next two are interesting. Controversial, perhaps. They involve allowing developers to take code created for Android and iOS app and reuse it for universal Windows apps.
The Android integration targets Windows Phone exclusively for now, though I suspect it will be expanded to tablets and PCs over time. Basically, you can bring Java and C++ code for Android into Visual Studio and create universal apps that integrate with core, unique Windows capabilities—Cortana, share contracts (instead of the default Android experience), live tiles, Microsoft cloud services including Bing Maps (instead of Google Maps), and the like—via a “rich SDK for Microsoft services.”
On the iOS side, Microsoft is providing a toolkit that will import iOS app projects from XCode (Apple’s developer environment) and then let you edit, debug, and profile that Objective-C source code in Visual Studio, integrate new C and C++ code, and then create a universal Windows app and deploy it to the Windows Store.
Exciting, yes. But will it succeed?
Since the announcement, I’ve informally polled others at the show—journalists and bloggers, but also developer attendees—to get a sense of how these changes will impact Windows going forward. And while no one has reacted negatively to these advancements—indeed, most are impressed at the sheer scope of this work—the people I’ve talked to weren’t clear on how or whether they would result in a new app boom for Windows 10.
Microsoft is desperate for such a boom. Because today, all major new app development is happening in three places: iOS, Android and the web.
So Microsoft points to 1.5 billion active Windows users today and to a potential 1 billion Windows 10 users within 2-3 years. Less promoted is the fact that there hasn’t been a single major new Windows application developed in over a decade, and that the most popular Windows apps today are competitive (iTunes, Chrome), legacy power-user applications (Office, Photoshop), or small utilities (most of which make Windows 8 look like older Windows versions). The lesson here? The presence of users could just be inertia, not a guarantee of platform success.
As the dust settles on the big Build announcements, it’s clear that Microsoft has done everything it can to embrace the rival platforms and developers it needs to drive Windows 10 forward. It’s just not clear whether these changes will have a major and positive impact.