Wednesday, September 14, 2011

Live from the BUILD Conference - Windows 8

On Tuesday the BUILD conference got off to a roaring start, and it was all about one thing: Windows 8. After an unprecedented amount of secrecy and mystery, we finally got our first real look at Windows 8. Except it was more than a look--Microsoft spent the entire day going through the goals, user experience, application model, and development platform for Windows 8 in much detail. You can watch the keynote yourself on the BUILD site and the session videos will also be posted there as the week progresses. I can tell you already that this is one of the most significant developer conferences Microsoft has ever put on: the amount of good stuff shown was staggering and overwhelming and I'm still absorbing it. There was so much vision, style, and creativity shown I thought I was at an Apple conference! Best of all, a Windows 8 developer preview has been released that you can get now at http://dev.windows.com.


Windows 8 Highlights
There was so much new information shared yesterday it's going to take a while to sort it out and digest it--but let me give you the highlights now.

PCs and Devices. Windows 8 will run equally well on ARM devices like tablets as it will on PCs. Given that some people are calling this "the post-PC era", that's important!
Touch support is really important and is baked into everything. It was stated, "in the future a screen that doesn't support touch is a broken screen". However, mouse and keyboard remain fully supported throughout. The touch support is way more than simply emulating what a mouse does--it's extremely sophisticated and well thought out based on extensive usability research.
Metro. Windows 8's default interface is called Metro, but you can also get to traditional views like the desktop we are used to today. Watch the keynote and you'll get a good sense of what Metro is like. The key phrase is "fast and fluid".
Metro App Model. There's more to Metro than the operating system - there's also a new app model. A Metro App follows a comprehensive set of design and interaction rules and uses a new runtime API called WinRT. Metro apps give up the entire screen to content and are "chromeless". Some people were joking that it is ironic that the new Windows doesn't have windows!
WinRT. The WinRT runtime supports C++, C#/VB/.NET, and HTML/CSS/JavaScript equally well as first class citizens. Essentially the Windows APIs are now available to all of those development environments. XAML is strongly supported, not just for Silverlight/.NET but even for C++. An alternative to XAML is HTML/CSS/JavaScript.
Contracts allow apps to cooperate in such activities as search, sharing, and picking. An application manifest describes a Metro app's capabilities.
Tools. Visual Studio 11 and Expression Blend 5 strongly support WinRT. Blend even lets you work with native HTML5/CSS.
App Store. Windows 8 includs an App Store - which gives developers access to a market of 450 million people!
Cloud support figures prominently in Windows 8. Although Windows Live services were given the spotlight, Windows 8 apps can obviously also make use of other cloud services such as the Windows Azure platform.

Windows 8 and HTML5
What I'd expected to hear was something along the lines of "a Windows 8 app is natively an HTML5 web application" but that's not the story at all. Instead, there is a new kind of app, a Metro app, and you can create equally good Metro apps in everything from C++/XAML to C#/XAML to Javascript/HTML/CSS with no difference in capability or development tool support. From the standpoint of keeping pace with inevitable changes while not alientating existing developer constituencies, this was nothing short of brilliant.

How does an HTML5-based Metro app differ from an HTML5 web app? In these ways:
• Packages - a Metro app has to be "packaged" and needs an application manifest.
• Not a Web App - although Windows makes use of the IE rendering engine, a Metro app is not a web app, it's a Windows app.
• WinRT - If you want to do more than what a sandboxed web app can do, you need WinRT which can be accessed directly from JavaScript.
• Metro styling - the design guidelines for Metro expect your app to conform to specific display, interaction, and form factor guidelines.

Although I was hoping for a "less proprietary" HTML5 story on Windows 8, this is still a big deal: I can create web apps in HTML5 and leverage that code to also create Windows 8 Metro Apps.

Tablets
Those who made the trip to attend the conference in person were certainly rewarded--this year's give-away was a Samsung Galaxy tablet with a developer prreview of Windows 8! It includes a wireless keyboard, a tablet stand, and an AT&T 3G data pass. Microsoft stressed that this tablet is powerful enough to be a development machine and is configured that way. There have been give-aways at past PDC conferences but this one is a real home run.

No comments: