Sat a couple of rows back at the second generation Surface launch in New York earlier this week, I found myself watching for a unifying theme that would bring Microsoft's hardware and its services together.
It didn't take long for it to arrive, as Surface VP Panos Panay quickly showed the device at the heart of a web of services, all held together with Windows and with software.
But that's not quite the right way of looking at it: it's focusing on the old Microsoft at the heart of the new, the platform company, not the devices and services business. Steve Ballmer is reported to have told Microsoft employees at his final company meeting that continuing to think of Microsoft as a platform company was the wrong way to look at things, that devices and services meant a very different way of doing business.
The Surface Remix Project is a prime example of how Microsoft is bringing all the elements together. The 1092 pressure-sensitive touch sensors that underpin the new Touch Cover are one element, pure hardware. The Xbox Music service is another, content hosted in the cloud. The app that puts it all together couldn't work without the device or the services. You couldn't take advantage of the sensor API without hardware, and you couldn't remix that music without a service to provide the sources.
At its heart, Microsoft's devices and services model is very much a software model. But as we move to a ubiquitous computing world you can't deliver software without hardware, and you can't use software without services. That means that Microsoft has to change, shifting from its traditional platform model — and from its Windows-centric way of looking at the world.
Of course, that doesn't mean that Windows goes away. It's being redesigned for the devices and services world, and much of that model is built into Windows 8's WinRT development model.
Even so, Windows is still an open platform, and while new security models mean increased isolation between apps, with tightly enforced sandboxes, new operating system features such as contracts make it easier for users to build their own personal workflows across the Start screen and their Windows Store apps. That user-centric approach is key to any services model, and at the heart of any model that focuses on devices.
That new way of looking at the world is reflected in Surface. At first glance it's just another instantiation of the Windows platform, such as Windows Phone and Azure — and just like the original Surface tables before it.
But drill down a little further, and it's clear that where in the past Microsoft would have tuned its hardware for its software, with Surface it's tuned it for services. That tuning makes Surface just a surface, where both local Windows and cloud services are rendered. It's just one screen in those "three screens plus cloud" that Microsoft talked about a few years back, albeit a highly-optimised screen (and with some of the additional hardware announced in New York it can move to being any one of those three screens).
We're in the middle of generational shift in the way we deliver software. I'm writing this piece on a first generation Surface Pro in a coffee shop in Seattle, and it's being stored in a cloud storage service as I type — smeared around the world in geographically redundant storage fabrics. Those words will soon be copied into ZDNet's content management system before being rendered in whatever browser you're using. It's all services.
Those services mean that I don't need to know anything about what device you're using, or how you're connected to the internet. Open standards and open services are turning our personal devices into smart endpoints, and our applications and content are dynamically reformatted to fit on whatever device, whatever screen you're using.
Windows 8.1 is a key part of Microsoft's vision, as it expands on the programming model delivered in Windows 8 — especially around a key technology that's crucial to delivering a cross-device, cross-platform model: Portable Class Libraries.
While tomorrow's applications will need to run on everything from phones to tablets to servers, one user interface does not fit all. That's where PCLs come in, as they let you wrap common code into a library, ready for you to craft custom user experiences for the surface that renders the application.
PCLs are the heart of tomorrow's services, as they let service code and endpoints be anywhere — an approach similar to that being taken by Xamarin, with its model of using common code modules and device-specific user interfaces. If you're thinking about developing apps that work on Android and iOS, then that same approach starts to scale across all the iterations of Windows. And of course there's just one development environment, one source control, and above all, one project.
A devices and services world may seem to be just another iteration of the platform world we've grown accustomed to – but it's really something very different. It's functional, not siloed. It's cross platform, contextual, and open, able to deliver the right user interface to the right device at the right time for the right person.
This isn't an overnight revolution. Billions of lines of code don't go away in a flash, and aren't instantly replaced by something new and better. We're at the start of a ten, even twenty, year journey, one that's going to carry along the entire industry – Apple's devices and Google's services included.