I don’t consider myself a “fanboy” of any particular company even though my consulting and training business focuses on Microsoft technologies. A "fanboy" is someone that sides with a particular company regardless of how good or bad something is. I go with what I feel is best regardless of company. The .NET framework is my preference for developing Web and desktop applications and Visual Studio is untouchable as an integrated development environment in my opinion. iPad is my preference for a tablet, iPod for a music player, and Android for a phone (although I’d love to replace my Android device with a Windows Phone 7 device since I love the WP7 interface - Sprint still doesn’t have any WP7 devices that I like unfortunately).
I’ve seen a lot of technologies come and go over the years so I’m always a little skeptical when a major shift is announced by a company. After many years of seeing promises made and later broken in the technology world (think back to Longhorn for a fairly recent example), I’ve become a bit hardened and generally view new announcements with an air of suspicion. The exception would be the announcement of the .NET framework and C# language that I heard about while attending an author’s summit at Microsoft back in 2000 and the releases of a few key technologies such as ASP.NET MVC, LINQ, and Silverlight. Aside from those technologies, there hasn’t been anything earth shattering or exciting released (in my opinion) especially when it comes to consumers.
With the announcement of Windows 8 I’m excited and so are a lot of other developers that I talked with at the BUILD conference. Do I know how it will all play out and if it’ll be successful? Since my crystal ball broke the obvious answer is “no”. But, I think the story is compelling from a consumer and developer standpoint and that things are moving in the right direction overall. Before BUILD started I was hoping that a fraction of the rumors floating around about Windows 8 were true and that’d I’d be pleasantly surprised with the direction Microsoft was going. I was really excited when .NET first came out and was hoping to feel that way again. I’ve been happy with Microsoft’s enterprise story to this point but have definitely been worried about their consumer adoption story. I was really looking forward to what Steven Sinofsky had to say at the keynote (I had breakfast with friends and arrived right before it started – the cheap seats weren’t bad though):
There was definitely a buzz in the room as the keynote started. Although things started out a little slow, excitement really picked up steam once Steven Sinofsky introduced Antoine Leblonde who showed how Windows 8 Metro applications could be built, and Mike Anguilo who walked through different hardware options. The different demos and devices they showed got me excited all over again about what the future holds and not because they gave everyone a new Samsung tablet (although that helped :-)):
I came away from BUILD feeling good about things so I thought I’d write about the specific things that get me excited about the future of Windows 8.
What’s all the Excitement About?
So why am I excited about Windows 8? Those who follow me on Twitter or read my blog may be surprised to know that it’s not just about the technology Microsoft announced. There are a few different reasons I’m excited including the simplicity Windows 8 offers for consumers, Metro application development options, support for different form factors, support for traditional Windows applications and the upcoming Metro app store. Let me walk through some of these points in more detail starting with why I think the new Metro interface provides much needed simplicity for consumers.
Consumers Like Simplicity
I have a general benchmark I follow called the “Mom Test”. If my Mom can’t pick up a new consumer technology quickly then it should be thought out better. Windows 8 represents the first time Microsoft has announced a technology that I think even my Mom can get excited about and understand immediately with little to no training. She navigates around traditional Windows applications fine, but tends to avoid things she’s unsure of. Those of us who grew up with computers don’t feel intimidated when a lot of menus and options are shown on a screen, but that’s not the case for a lot of people and something we as developers need to keep in mind. The popularity of the iPad really highlights the “Mom Test” since my Mom was able to pick one up and use it immediately without having to ask a lot of questions. It’s intuitive by default.
Windows 8 Metro-style applications eliminate much of the complexity associated with traditional Windows applications by focusing on what the user wants to see using intuitive interface concepts. Metro applications even avoid forcing users to think about closing applications when they’re done. Due to the life-cycle management features of Windows 8, applications can automatically be frozen as a user leaves them and be thawed when they revisit the app. This is extremely important and critical for consumer adoption, especially in today’s world. An example of a Metro application that displays weather information is shown next. Although it’s very simple, it highlights the important data people want to see and adds appealing visuals.
Here’s an example of the Metro browser in action. Notice that there are no toolbars, status bars, tabs, etc. While I do think it’ll take users a little time to get used to that type of interface (since the traditional Windows approach is so engrained in many people’s minds), I think it’ll be embraced by people over time.
If a user wants to get to a different tab, type a URL, or perform another action they can right-click on the interface (on a PC) or swipe their finger if they’re on a touch device. Here’s an example of the Metro browser after that type of action has been performed:
This is all the functionality that people need in order to browse. Most people don’t care about getting to Internet Options or accessing other menus to perform more advanced tasks. The full version of the browser is available on the Windows 8 desktop of course. In addition to the simplicity offered by the Metro browser, picking files has been greatly simplified and optimized for touch devices as well:
The tiles in the Windows 8 Metro interface bring a lot to the table as well and go a step above what other platforms offer. Each tile is more than just a simple icon – it can convey information to the end user without forcing them to load the application. Windows Phone 7 first introduced this concept but I like how Windows 8 is keeping the tile format. An example of the Metro tiles in action is shown next:
I think that Metro-style applications and tiles will go a long way toward helping consumer adoption once Windows 8 is released. Although I haven’t shown her yet, I’m confident my Mom will like the new interface and find it easy to use.
Side Note: I’m an Enterprise Developer – Why Should I Care?
The simplicity that Metro applications and tiles bring to the table is really good in my opinion especially since Microsoft is getting hammered in the consumer market right now (and that should concern every Microsoft-centric developer). But, if you only build enterprise applications that won’t be using the Metro framework (WinRT) then why should you care? I tend to build enterprise solutions that target browsers (ASP.NET, HTML5/jQuery, Silverlight, SharePoint) so the client OS doesn’t really matter (Linux, Windows, iOS, etc.) in many cases. Regardless of what happens in the consumer and enterprise markets I can still use ASP.NET and other technologies such as jQuery to build applications. However, consumer preferences tend to find their way into the enterprise environment since most consumers have jobs. Students will eventually get jobs and influence decisions in the enterprise as well. I don’t think it’s hard to come to the conclusion that if consumers continue to move to other technologies that it could impact adoption of Microsoft technologies in the enterprise down the road (especially when it comes to desktop applications). It’s not anything that will happen overnight, but I’d rather have consumers excited to use Microsoft technologies again than continue to flock to other technologies. Whether or not they will be excited about what Windows 8 offers remains to be seen (it’s extremely early at this point), but I’m optimistic and think that Windows 8 is a good thing to “get a little mojo back in Microsoft” as my good friend Ward Bell told me.
Metro Development Options
In addition to what I hope will be positive consumer adoption, Windows 8 provides a developer friendly way to built Metro-style applications that can target a variety of devices through the Windows Runtime (WinRT). Here’s an slide shown at the conference that shows how WinRT fits into the mix:
Whether you’re building Metro applications for the desktop or the variety of Windows 8 tablets that will be released, you’ll be able to build an application once and have it load and display properly. That’s a huge deal and something we simply couldn’t do before without a tremendous amount of work. The Metro interface is also much cleaner, consistent, and consumer friendly and it obviously lends itself well to touch devices.
I’m definitely excited about the ability for Metro applications to scale to different resolutions and device sizes. This was an important move Microsoft had to make to get caught up with all of the different tablets and alternative devices that have been released over the past 2 years. As a developer, I can provide different tile sizes, backgrounds, and more and know that my application (if designed using the recommended guidance) will work across many different Windows 8 devices without having to maintain different code bases. I’m hoping Windows Phone 8 will support this development model as well so that a Metro application can be written once and scale to a variety of devices including the phone. Wishful thinking on my part but being able to write an application that would run (and display properly) on the desktop, tablet, and phone would be an amazing development story (although the phone certainly presents some size challenges).
The tools talk given on day 1 of BUILD highlighted the device emulator and tools that Metro application developers will have in Visual Studio and Expression Blend. One of my favorite features was the ability to remotely debug an application on a device such as a tablet. During the talk given by Kieran Mockford and Chris Sells (I had the chance to have dinner with Chris at BUILD - great guy) they showed that feature in action (an example of the emulator is shown below):
The App Store
Building Metro applications is one thing, but getting people to download and install them is another thing entirely. If you’re involved in selling software then you know that marketing and sales are the name of the game if you want to make money. With the installation base Windows has (over 450 million PCs are running Windows 7 according to Microsoft), there’s a massive opportunity for developers to build Metro applications since each Windows 8 machine will have a built-in App Store. It’s hard to say how well developers will do financially building Metro apps (the store isn’t available at this point), but I like the odds given the current number of Windows installations out there.
Support for Traditional Apps
Although I’m excited about the opportunity that Metro applications offer, my business is centered around building traditional Web or Windows applications for enterprise scenarios right now. Windows 8 will support traditional Windows applications built using WPF, support Silverlight applications, Windows Forms, native C++ applications, and more. For business workers, this means that they can continue to use existing line of business (LOB) applications.
I have no idea what the future of WPF or Silverlight is long-term (WPF 4.5 was announced at BUILD and Silverlight 5 is about to be released), but I know that I can still use the same languages and skills that I know now on Windows 8 including .NET and all of its associated technologies. Traditional applications can even call back into the WinRT Metro framework if needed by simply referencing the proper namespace. For other operating systems such as Windows XP, Windows Vista, and Windows 7 it’s business as usual with ASP.NET, Silverlight, WPF or another technology. Telerik’s Todd Anglin (another great guy I met at BUILD) has a nice decision chart that walks through the different options.
I’m excited to see what Microsoft is doing with Windows 8. Although I don't consider myself a "fanboy", I really like what's happening with Windows 8. By supporting Metro and traditional applications with a single operating system it opens up a lot of opportunities and allows support for different devices to become a reality. The new app store should allow individual developers to compete with large development shops just as they do now on other platforms. The future’s bright and I’m looking forward to updated builds that are released by the Windows 8 team. In the near future I’ll dive into WinRT more here on my blog and walk through how Metro applications can be built using HTML and XAML. Until then, follow the steps Scott Hanselman provides to get Windows 8 up and running quickly and easily so that you can start building applications for it.