With the unveiling of Windows Phone 8, Microsoft completes the circuit it promised last fall at its BUILD developers conference. Even though the company took a meandering, lumbering route, today we're seeing a compelling combined desktop and mobile vision coming from Redmond. Between the Surface tablets shown off last week and Windows Phone 8 - together with Windows 8 - Microsoft appears to be setting itself up well for the post-PC, cross-platform world. And if Microsoft truly fulfills its potential to unify platforms, that will give its operating systems a distinct edge and grant users a clear benefit.
Windows Phone 8 will share native C and C++ code with Windows 8. Native game development gets a boost, too, with DirectX and common graphics drivers support. The shared kernel will greatly simplify how developers can create apps for both platforms. Microsoft notes that the presentation layer, which will be optimized for different types of devices and experiences, is separate from the underlying code.
In its most basic sense, this structure will make it possible for developers to write once, and publish many. The code base can be reused across different devices; only the presentation will need to be revisited. This will also make it easier for developers to ensure the quality of their software; the need to test against multiple variables is often an albatross for Android developers. The Internet Explorer browser will do the same HTML rendering on the phone, PC, and slate, which is another critical component for jump-starting development for cross-platform Metro apps.
Growing the app ecosystem
Microsoft claims the Windows Phone Marketplace has 100,000 applications - double the number of of six months ago. According to Microsoft, the company reached the 100,000 apps milestone faster than Android did.
Even so, Windows Phone has a long way to go to boost the breadth of its selection vis a vis iOS and Android. That's why this behind-the-scenes change to support developers is so critical for Microsoft and for consumers.
"That momentum of growth is indicative of the power of our ecosystem and the power of our skill at building out and focusing on the developer audience," says Larry Lieberman, senior product manager at Microsoft. He expects last week's announcements will make development for Windows Phone much more attractive. "This is huge in terms of what it will do to unblock and leverage a single set of code assets to target multiple operating systems, particularly Windows 8 and Windows Phone," Lieberman adds.
First Microsoft needs to build up its Windows 8 Metro apps library, and quickly. Metro apps will run on Surface for Windows RT, the tablet targeted at the more mainstream audience and Microsoft's lure for those considering an iOS or Android tablet.
Windows Phone 8 also needs apps to show off its capabilities and to sway wary consumers who may already be committed to Android or iOS - or may even be buying their first smartphone - that Windows 8 is the way to go. It's compelling for developers to have a way to create apps that run across the millions of expected Windows 8 desktops and laptops, and then to leverage that code to quickly create apps for tablets and phones, too. Microsoft hopes this will spur development, and we do too. The Surface tablets may look promising, but if no compelling apps ship for Windows RT, consumers won't considier these tablets as a viable alternative to Android or iOS.
Unfortunately, Lieberman admits that another holy grail - the capability to run a single app across multiple platforms - won't be ready with the first release of Windows Phone 8. "We do believe that is a compelling goal that we would like to get to," he says. "It is something we want to figure out how to get to as quickly as we can."
Mobile development has been a fractured mess for years. When app developers can easily scale across platforms, we come closer to the ideal of write once, publish many. Logically, that means we'll have more apps - and sooner - across both mobile and desktop platforms. That's exactly what the nascent Windows 8 Metro app ecosystem needs.