It's a fascinating time to be a Microsoft watcher. I first went to the then Professional Developers Conference back in 1998, as the company started finding a way to bring NT and Windows 95 together.
Then came the move to .Net, the abortive push for a web services platform with Hailstorm, the utter chaos of Longhorn, and the recovery through the Vista and Windows 7 years. Now we’re in 2013, and Microsoft is finally on the verge of delivering one platform for developers that supports everything from phone to PC to TV to cloud.
So how do we assess what’s happening in a time of rapid change, when a major set of OS and API updates are arriving less than year from the launch of Windows 8, something that's never happened before with Microsoft's three or even four year gaps between OS releases?
Is it a response to a poor press and relatively slow take-up, or is it something else altogether?
The key to understanding what’s going on up in Redmond is the fact that all these changes result from the company’s shift to continuous development — and continuous integration of new technologies.
That means that its cloud platform rolls out new features every three or four weeks, and cloud service get updates roughly every quarter. Desktop and server are now getting annual refreshes, much the same way that Apple rolls out new iOS releases annually, and Google does the same with Android.
Work on these new releases began the day the Windows 8 hit RTM, without the usual pause to assess where things were going.
Changing cadence means changing many things. Gone are the days of the big bang release full of new features. What we’re seeing now are rapid updates to Visual Studio (three so far to Visual Studio 2012, and a 2013 now being previewed) and annual updates to the underlying APIs for Windows. And while the 8.1 release of the Windows APIs (and especially WinRT) doesn’t look much different to the version we saw unveiled at Build 2011 and released and Build 2012 — there are more than 5,000 new APIs ready for you to add to your applications.
With WinRT apps intended to work with the current generation of web services and cloud APIs, building a WinRT app is very different from building a desktop app. Code needs to be network aware, and asynchronous, while the power-management model is very different from the familiar Windows desktop way of working — as it needs to support the low-power modes that give tablets the long-life that users are expecting. With new power profiling tools in Visual Studio 2013, developers will need to expect to have apps rejected from the Windows Store for being too inefficient.
The underlying development model of the WinRT APIs is one where apps can be built to different versions of the API, so your Windows 8 era apps will run just fine on Windows 8.1. It’s also one where apps built to take advantage of the latest version of the APIs will get the benefit of the latest features, but where an app that uses contracts to expose and consume information with the rest of the apps you install will gain the benefits of working with newer, and upgraded software without needing any changes itself.
Facebook talks about living the hacker way, where you move fast and break things. That’s certainly the way of life at Azure, and while Windows can’t live that way – as it’s the platform much of the world depends on – it can start to move a lot faster than it used to.
WinRT and the new Windows cadence lets Microsoft deliver something that’s an enterprise- and developer-friendly version of the Facebook ethos. You can carry on building to the Windows 8 WinRT APIs, or you can work with the new APIs and add features that will only run on Windows 8.1 (and as it’s a free upgrade, it’s likely to have a very quick uptake from both consumers and business users). That’s a win for developers, as you can carry on developing your existing code, as it’ll keep on running on whichever Windows 8 build your users are running, and then when you feel you’re ready, you can switch over to the newer development tools and the Windows 8.1 APIs for a new version of your app.
It also lets Microsoft take a more evolutionary approach to the WinRT APIs than it might have with .NET or with Win32 or COM. If a feature you were hoping wasn’t there in Windows 8, maybe it’s going to be among the more than 5,000 added in Windows 8.1. Perhaps you were waiting for improved Bluetooth support, or direct access to 3D printers, or for better USB device support? They’re only a handful of the new APIs added to the new Windows.
Build 2013 was the first sight of a faster, hacker-powered Microsoft, one that was ready to work with other platforms and other tools as well as its own. With Redmond’s developers having much to say, and really very little time to say it in, it’s clear we’re going to have to spend time with the Build and TechEd session videos to get the whole picture — but from what we’ve seen so far, Microsoft’s new delivery cadence means we’re going to get access to a lot of intriguing new technologies a lot quicker than might have in the past.
Roll on Build 2014 and Windows 8.2.