From the outside it looks as though it's been a week of turmoil at Microsoft. But as the confusion dies down, it's possible to see the past seven days as just another step to on the road to a very different Microsoft — a Microsoft that reflects changes in the way computing will be delivered over the next decade.
It's clear Microsoft has made some very big decisions about the future of development — and of the future of the company
We shouldn't be surprised. Every company needs to reinvent itself, and Microsoft's reinvention has been telegraphed for a long time.
There have been catch-phrases, public trials of tools and technologies, four or five years of evangelising web-service endpoints and model view controller frameworks that simplify building distributed applications, adoption of open-source technologies and licences, and now a whole new look and feel for Windows, along with a move into the PC business.
Steve Ballmer has described that future quite openly, calling Microsoft a "devices and services company". So what does tomorrow's Microsoft look like?
The future of development
First and foremost it's clear that the centre of gravity in the organisation has shifted. And that means that the heart of Windows future isn't the desktop — though the client will always remain important. As you drill down into the architecture of Windows 8, and especially its new programming model, it's clear Microsoft has made some very big decisions about the future of development — and of the future of the company.
Microsoft builds its applications and services with its own tools. That gives us a good place to start to map out its future, as the tooling for that future is starting to fit into place.
There's been some push-back from developers directed at the new WinRT APIs in Windows 8, with it seen as immature and less-featured than its older relatives Win32 and .NET — even though the runtime it calls is the same. But there's an important difference between those tools and WinRT. Win32 is a client-server era set of APIs, familiar to anyone who grew up developing with Visual Basic and connecting VB applications to mainframes and minicomputers.
The heritage of .NET is similar, but it's a generation on, delivering APIs for the N-tier app architecture world of separate presentation, business logic and data tiers. But as computing evolves, APIs have to change, and WinRT is designed for the new computing paradigm of smart clients working with cloud-scale services.
That approach means WinRT is not intended for complex desktop applications — that's why there's still a desktop in Windows 8 for your .NET and Win32 code. Instead, it's designed to deliver secure, sandboxed, front-ends to cloud services, applications running on Azure and on other web-scale platforms, including the private clouds of Windows Server 2012.
WinRT as a client
At its heart, WinRT is designed to be the asynchronous client to service-oriented architectures that span line-of-business systems and consumer-grade cloud services.
WinRT makes it easy to glue together RESTful cloud services and to deliver endpoint services. It doesn't make it easy to build monolithic, massive local applications such as Photoshop — but then it's not designed to, and that type of application isn't part of the new way of computing, although it will be a long time before it goes away completely, just as mainframes and N-tier systems are still with us.
A WinRT Photoshop would be a window into a cloud service, where images are stored and manipulated away from the PC. You'd chose actions, see results, but the actual image processing would happen on cloud-scale systems.
Making Windows an SOA endpoint is crucial to this future. It doesn't mean a world of thin clients and web UIs masquerading as applications. We don't live in a world of perfect gigabit connectivity for desktop and mobile devices. Applications will always need to be able to run disconnected from the cloud, synchronising data when connected and being able to handle long-running asynchronous transactions.
That requirement means they need to be smart and capable of working offline. The Windows 8 UI is designed to allow users to dip in and out of applications as needed, switching quickly from task to task.
The cloud and cloud services
The real nuts and bolts of this future are the cloud and cloud services. So it wasn't surprising to find Azure front and centre at both Build 2012 and the latest SharePoint Conference. Microsoft clearly sees it as the centrepiece of its developer strategy.
At Build a series of challenges took developers from building simple cloud services, to developing Windows 8 Windows Store applications, showing them how to use Microsoft's cloud services as a backbone for connecting to third-party cloud APIs and Microsoft's own storage services.
Similarly, at the SharePoint Conference developers crowded into sessions where they were introduced to a new Office application model that runs business logic in cloud servers, with HTML5 front-ends built into Office applications. Talking to startups in Silicon Valley last week, Steve Ballmer's message was the same; Azure for the back-end with APIs connecting to apps on devices.
Post-PC? Maybe. PC-Plus? Perhaps. Three screens plus the cloud? As good a way of putting it as any.
Whatever you call it, however you describe it, it's clear the world has changed, and Microsoft with it. No wonder many of the influential developers at Microsoft have moved to Azure over the past few years — it's the future heart of the company.
The approach of Bigger Windows
The centre of gravity may not have fully shifted yet, but it's moving. Big Windows, as many insiders have called it, will be replaced by Bigger Windows, one that works at cloud scale to deliver information and services to smart end points.
Tomorrow's Microsoft will be built around Azure. That strategy means more and more collaboration between the different parts of the organisation as what were in the past standalone applications become services that are consumed by other services.
As Active Directory becomes a federated cloud service, working with Azure, with Office 365 and InTune, as well as in on-premises systems, it can't be the sole province of the server business, running on the timetable that suits the server team — it needs to be part of a wider ecosystem and a wider way of looking at the world.
Microsoft has traditionally been a company of companies, with distinct and separate business units that have had their own roadmaps and agendas. Part of the process of moving to the cloud has meant increased collaboration between those units — something that can be seen in the inclusion of a version of Office in Windows RT devices such as Surface, and in the Bing-powered applications that ship with every copy of Windows 8.
That collaboration is going to be a key feature of the new Microsoft, with its vision of bringing together hardware, software and services into a single platform, both for consumers and the enterprise.