On Monday, September 12th, I landed in LA, did the usual routine of get-the-rental-car, look-up-the-hotel-info, drive-to-the-hotel and check-in-to-the-hotel that has become a pretty standard part of my life. The next day was to be the first day of Microsoft's rebranded Professional Developer's Conference (PDC), now known as “//Build/” (and apparently the slashes are mandatory when you say it). Other than the somber remembrances of a decade ago that took place the day before, there wasn't a whole lot to talk about.
I know what you're thinking: "This is the part where he says, �And then, it all changed.' Or something like that." And truth be told, I really want to say it.
Before
On my flight down to LA, I spent some time thinking about “win conditions” for the conference, both for me and for Microsoft. My win conditions were simple: catch a few sessions, hang with some friends, do a few parties, drink a few Scotches, and maybe come home with a new T-shirt or two. If Microsoft was going to call //Build/ a success, however, they needed to establish a couple of things:
Stop the Hemorrhaging
Let's call the spade a spade: People are abandoning the Windows platform in droves. My family, meaning my folks and my sister, are entirely converted to Mac, in what I think is a fairly typical shift. My sister is a professional actress (http://www.imdb.com/name/nm0627609/) and needs the Mac because it works better for creating video clips. My mother is a parochial school principal, and needs an iPad that she can carry around with her as she administers the school. She bought an iMac before this, mostly because “it just works.” My father… well, he just likes having latest-and-greatest toys, but he's finding himself using the Mac more than he does his Windows machines for a variety of reasons, particularly running Windows apps from inside virtual machine hosts like Parallels.
None of them has purchased a new Windows machine in several years.
If Microsoft is going to survive as a viable operating system vendor, this has to stop.
Bring Forth the Tablets
For close to two years now, the only competition we've seen in the tablet/slate space (yes, I'm politely referring to the “iPad market”) has come from Android. For a vast majority of the computer purchasers out there, a tablet is sufficient for what they need. It does email, surfs the web, plays games, and has just enough functionality to be able to sometimes write a document or spreadsheet. Granted, the tablet/slate won't ever completely replace a full-blown PC, but what Microsoft (and those who develop for it) needs to realize is the brutal fact that not everybody does Photoshop, or Visual Studio, or other “high-precision” kinds of computing.
And Microsoft's tablet story was non-existent. Putting Windows 7 on a tablet/slate piece of hardware was a travesty. I tried one at the Microsoft Store in Bellevue, and I couldn't put it down (or wash my hands) fast enough.
Consumers want tablets. Windows 7 is not a tablet OS. Somebody needs to teach that remedial math to Microsoft management.
Are You Not Entertained?
Let's be honest: Microsoft has needed a clear “winner” kind of conference or event for a while now. Something to motivate us, excite us, and get developers talking about Microsoft technologies for a change. For several years, any sort of “mojo” or “momentum” or “inspiration” has come from Microsoft's competitors: Apple with its MacOS, iPhone and iPad, Google with its Android, Google App Engine cloud system, even Amazon with its cloud offerings like EC2, Elastic Beanstalk, S3, and so on.
Lined up against these, Microsoft's offerings just haven't had it. Windows Phone 7 looked nice, but had a long way to catch up in features. Silverlight suffered “message” and “clarity” problems against HTML5, and so on. Visual Studio 2010 was a good release, but let's be honest, it's hard for the industry as a whole to get excited about developer tools. And for whatever the reason, Windows Azure just isn't being used, for reasons which remain elusive to me and anybody else I talk to.
It's hard to be excited about being a Microsoft-stack developer right now. And that has deep, deep ramifications that last a long time. Think I'm exaggerating? Find somebody who's excited about going to work for an IBM partner, and I'll take it all back.
During
It was pretty much impossible to know what was going to be debuted at the conference-Microsoft had set a strict embargo on all the details, so when we showed up, we didn't even have a schedule of sessions. No abstracts, no titles, not even any tracks. It was basically the largest leap of faith I've ever seen a conference ask of its attendees.
And the conference sold out in four weeks, remember. The Microsoft faithful were ready to be dazzled. And the keynotes, for the most part, didn't disappoint. There were the expected bursts of spontaneous applause that characterize a big-vendor keynote, there were the subtle jabs at competitors (particularly Sinofsky's “We want a chrome-less experience” crack), there were the shots of hyperbole (“This is the biggest opportunity in the history of computing,” I believe was how Jensen Harris put it in his keynote, to a few snickers)…
... and there were the gifts. Surprise! We were each going home with a brand-new slate, a Samsung touch screen device with Windows 8 pre-release bits on it already. The cheers were deafening. Critics cried foul, claiming we were fools for allowing ourselves to be “bought” so easily. Sure, I can be bought. But not for just a tablet; it'll have to be a lot closer to “retirement” money. What having that tablet meant, I found, was that we could follow along during sessions and see if we could repeat the demos on our own hardware, without having to stay up all night trying to get the bits installed into a VPC or VM image. Frankly, having that tablet handy was awesome. Even for the demos that didn't work.
And, of course, I ran into Rod Paddock, our fearless Editor-in-Chief, at a lunch with a few friends from both inside and outside of Microsoft. His words to me? “You know your column is due, right?” Hmm… Sometimes a writer really has to stretch for something to write about, or second-guess his editor about what they're really asking about.
This was not one of those times.
After
As I ride an airplane away from LA and //Build/, and after having played briefly with Windows 8 and Visual Studio Express 11, several thoughts come to mind.
Metro
By far, the biggest “splash” came from the Metro UI, its “tiles” concept, its new templates for applications, and so on. The keynote by Jensen Harris is a great resource on this (http://channel9.msdn.com/posts/Jensen-Harris-Walks-Us-Through-the-Windows-8-UI), I thought, to give just a general idea of what a Metro app should be and look like and act like. And that brings up an important point.
Metro apps are not like “regular” Windows apps. They require a different view and approach, and developers are going to have to adjust to that. Quite honestly, it feels to me like an app running on a Windows 8 PC will need to have two major views: one a “Metro-ized” view, and the other a “standard/classic” view. (Just to be clear: “need” here is a relative term-the Windows 7 version of Evernote installed flawlessly onto my Window 8 tablet, but obviously it completely lacks the Metro UI.)
This isn't necessarily a bad thing-it feels to me that Metro apps should be aimed at the tablet, and “classic” apps at the keyboard/mouse set. Keeping your user firmly in mind (and developing good user UI/UX stories) when developing these UIs should be top priority.
Suspended Apps
Apps that don't have the foreground get “suspended” to relieve CPU pressures, and are swapped back onto the CPU when they are brought to the fore-the new Windows Task Manager displays this quite prominently. This raises some interesting questions about useful Windows apps that operate in the background, a la SnagIt or Dropbox. Lots of enterprise apps expect to still be running, even in the background, and developers may have to jump a few hoops to keep this behavior in place.
Don Box's Revenge
One of the things that became apparent, judging by the Twitter traffic, was that C++ is apparently big again. For the first time since .NET's inaugural announcement at PDC in 2000, C++ talks outnumbered the C#/VB/F#/.NET set, and by a large margin. Some saw this as a “.NET is dead” message; that seems premature and incorrect, based on the messages I heard from several Microsofties, including Harry Pierson's excellent TOOL-531T session (http://channel9.msdn.com/Events/BUILD/BUILD2011/TOOL-531T).
Instead, what I see happening is that Windows 8 wants to surface native APIs, such as the ribbon control, which have historically been more or less out of reach from the managed developer, to the C#/VB/F# community. Case in point: How many .NET apps have shipped with an Office Ribbon in their UI? Few do, it seems, and I assert it's not because the ribbon is a terrible metaphor. Instead, the Ribbon has never been surfaced as a managed component, and developers don't want to write the P/Invoke and COM Interop wrappers themselves.
The Windows Runtime (WinRT), it seems, wants to fix that. By elevating native code up to a rich metadata format (the IL metadata format), C#/VB can now consume those native Windows APIs without complex declarations. Harry's talk describes that in more detail.
But, ironically, all that native code is coming back up through COM. Somewhere, deep inside the bowels of the XBox team, Don Box is hoarding copies of “Effective COM”, laughing an evil laugh and waiting for the Amazon stocks to run out….
The Office
One thing that was noticeably missing from the hoopla was Office. Rumors are flying around what's happening with Office, and without attempting to contribute to the chaos, let me say this: if Office isn't Metro-ized as soon as Windows 8 comes out or, at the very least, for the next version of Office after Windows 8 ships, faith in Microsoft will drop precipitously. Office must be a Metro app, or people will start using that as an excuse to not Metro-ize their own apps.
Summary
All in all, //Build/ was a better experience than I'd imagined it would be; though Microsoft certainly tried to screw it up in a variety of ways. Canceling the pre-cons at the last minute and replacing them with something completely different was not a strong move. The attendee party on Wednesday night was widely panned as one of the “worst ever.” And the Expo floor seemed a little thin-not a lot of vendors seemed to show up, though I heard that vendors were screaming for instructions on how to show up, and couldn't find any.
So did the world change? Not really, though certainly developers should keep an eye on the Windows 8 development and beta cycle. Is this an “unprecedented opportunity?” Sure, if you can get your app into the Windows Store faster than everybody else. But “first app” honors only take an app so far, and something that works well will trump something that doesn't.
Has Microsoft accomplished everything they need to reverse the trends mentioned earlier? Hardly-once upon a time, in a world we don't recognize anymore, we all got excited about Vista. We saw how that story ended. Microsoft has to execute on Windows 8, and it has to be a solid release. If they fumble it, Windows is all but dead as an operating system. One flag I'm watching for: “Windows 8 Premium Home Edition.” If that SKU shows up, they fumbled it; consumers don't want to have to sort out the differences between “Home Premium” and “Premium” and “Home” editions (any more than we do, anyway). There should be one “client” SKU (as opposed to Windows 8 Server) in retail shops, period.
Did //Build/ change .NET development as we know it? Nope. And for that reason, readers of this magazine should take a deep breath, relax, and stop bookmarking Java course catalogs.