I attended the analyst summit at Microsoft’s TechEd conference in mid-June and heard from them about their vision and plans for marketing Windows 8. Microsoft’s set a very high bar for itself in aiming for Windows 8 to be the best of both worlds in nearly every aspect, as Aidan Marcuss, Senior Director of Windows Core Marketing & Ecosystem, told us:
- Consumption and creation
- Touch and mouse/keyboard
- And so on..
This approach is undoubtedly a tough one. Optimizing for one or the other is vastly easier than optimizing for both ends of a spectrum, along with all the areas in-between. One thing Microsoft clearly understands, however, is that there’s no such thing as 100% consumers or 100% creators. It’s not about a split between different types of people nearly so much as that individual people tend to split up their time between consumption and creation.
I found this intriguing because it suggests to me that the management running Microsoft’s Windows client still holds a great deal of respect for power users and developers, both of whom lean heavily toward the creation end of the spectrum.
One population tipped far toward the creation end of the consumption-creation spectrum, a group we care deeply about, is developers. Their ability to create a good user experience for everyone else will be critical to the success of Windows 8, and I see two major issues that need solving:
- Ensuring ports happen for the minimal set of apps that people expect, and
- Building a great experience for users of non-IE browsers.
A great developer experience would lead to a strong app ecosystem
Encouraging app builders to port to Windows 8 should clearly be a big focus over the next few months. A prerequisite of this is improving the developer experience. As one example, this may mean Microsoft should devote effort to porting some of the open-source frameworks for building hybrid apps (PhoneGap, Appcelerator Titanium, Sencha Touch, etc) to simplify the effort for app devs.
I asked about this at TechEd and heard that they’re basically waiting for others to do the work rather than taking the initiative. The problem, however, is that now is the time these frameworks need to be ready. Now is when larger numbers of developers will start looking at Windows 8, and they need a great development experience for Metro apps, right out of the box. This covers the entire development lifecycle from technical docs to toolchain and frameworks to app distribution.
Another example relates to changes in developing Metro apps vs Windows 7 apps, in addition to changes in CPU architectures like the popular advent of multicore processors. In Metro, apps are asynchronous, and Microsoft says flat out:
If you are building a Metro style app, you will need to write some asynchronous code at some point.
Asynchronous programming is hard. It’s a totally different model from the typical imperative-style programming that most people learned in college, and it will require significant effort from Microsoft to help the everyday software engineer to make this shift.
Besides the migration to asynchrony, another issue is the growing use of multicore processors. Antoine Leblond, corporate vice president of Windows Web Services, told me at TechEd that Microsoft’s expectation of multicore was that, in the vast majority of cases, it wouldn’t be used to parallelize single processes but rather to run multiple processes in parallel. Think 10 tabs in Chrome rather than heavy-duty image or video processing. This may explain why mentions I had expected of functional programming using F# were almost entirely absent (except possibly as unmentioned text on busy slides). Functional programming allows you to specify just what you want to happen rather than how you want it to happen, thus enabling parallelization on the backend by the language runtime/compiler. It’s surprising to me that Microsoft isn’t making a bigger push with F# along with the move to Windows 8, since it’s generally easier for people to make one big transition than two.
Bad non-IE experiences will hurt Windows more than browser vendors
Something else to consider, now that use of the Web dominates people’s time on computers, is how poor experiences on browsers besides IE might affect people’s willingness to use Windows 8. I don’t see browsers as something that people flip between on a whim, so they’ll expect whatever they used on Win7 to keep working. Not only that, but they will blame Windows when their browser breaks, not a bad browser port. Picture a user: he’s running Windows 7 with Firefox or Chrome, then upgrades to Windows 8 and suddenly his browser doesn’t work. What’s likely to get the blame?
I tried Chrome, which just released a Metro version, and it was frankly pretty awful at this point. Should Microsoft contribute to non-IE browsers? Well, nobody’s paying money for IE, so Microsoft should be doing anything that helps it sell more copies of Windows and create more happy customers. Even if that’s making significant contributions to “competing” browsers.
It’s critical for Microsoft to get the developer experience right for Metro, and to do it now. And it’s no less important to nail the Web experience by the time Windows 8 releases later this year.
Disclosure: Microsoft is a client and paid my travel & hotel for TechEd.