In the world of making apps and games, going multi-platform is serious business. It adds cost, complexity, and can extend the amount of time developers need to push out finished products.
Microsoft wants to change that calculus -- especially when it comes to developing on its own two computing platforms that share the same name.
At its developer preview event in San Francisco, Microsoft debuted Windows Phone 8, the next major version of its mobile phone OS, slated for release alongside a crop of new phones later this year. Among the myriad announcements, perhaps the most significant was Microsoft's decision to tighten up compatibility between Windows Phone and Windows 8.
Under the hood
That closeness comes in the form of a shared kernel. In non-developer speak, you can think of the kernel like a bridge between the hardware and the software. It takes care of some of the dirty business like giving software access to parts of the hardware, and managing resources, all to make sure everything keeps humming.
As my colleague Mary Jo Foley over at ZDnet explained elsewhere, Windows Phone as we currently know it, runs on a version of Windows Embedded Compact. Yes, that's Windows, but it's a variant of its flagship OS that was under-featured by comparison. The new version sets the foundation for Microsoft to make significant changes in hardware and software compatibility, including support for multi-core chips, and support for native code.
Native code lets apps run on the device using both the C and C++ coding languages. At its presentation yesterday, Microsoft talked up how this plays a crucial role in helping developers create apps and games for Windows 8 and Windows Phone 8.
"The biggest effect this will have is we're going to see some freaking killer games this year," said Joe Belfiore, Microsoft's vice president of the Windows phone program.
The company illustrated that yesterday with a demo of 3D game Marble Maze, running first on a Windows machine, then back over on a phone. Belfiore said the changeover was accomplished with "incredibly small" changes to the code. Microsoft tried to underscore that point with a barrage of technology demos from Havok, the popular physics engine, showing hundreds of boxes being tossed around, shot at, and even exploded -- all on the screen of a Windows Phone.
One downside is that to make all this happen, older phones won't be able to run apps written in native code for Windows Phone 8, and conversely existing Windows Phone devices when it arrives. Microsoft is addressing the latter with an update called 7.8, which adds a new home screen view. On the plus side, the company pledged to give Windows Phone 8 devices support for 18 months.
No doubt this creates fragmentation, something that'splatform, and, to a lesser extent, . But it's also a big bet by Microsoft to cut ties with the past and to move the platform forward -- not to mention get it in closer step with Windows 8. In other words, Microsoft wants to quickly close gaps that separate it from rivals, with a longer-term goal of surpassing them with unique platform tie-ins that only it can provide.
So, does all this mean developers can create a game or app for Windows 8 and simply push it over to Windows Phone 8 at the same time? Not quite. What Microsoft promised, is that it will make it easier to bring titles back and forth between the two, and even some rival platforms using its software development tools.
That strategy could help Microsoft make up ground against competitors in app volume and attract more customers. Microsoft said yesterday it was up to more than 100,000 apps on its mobile store, but that's well below Apple's 650,000 and Google's 500,000.
The bigger picture is that Microsoft is trying to make its platform as attractive as possible to developers who have been lukewarm about programming for an unproven Windows Phone. That's certainly nothing new, but with Windows Phone 8, Microsoft is parting with some of the old in the name of paving the way for what's next. And that's something you don't usually hear in the same breath as Windows.