My Thoughts on the Windows Phone 7
The field of smart phones is getting larger this holiday season: the Microsoft offering is the Windows Phone 7. It should be of no surprise to most people that this category of phone is becoming increasingly important, but not because its a phone.
Many people spout off that the iPad is a category changed, but I think the iPhone was much more important. The hand-held computer is finally a reality. Having great experiences for consumers is the lynchpin of these devices. In this category are really four major players IMHO:
- iPhone by Apple
- Blackberry Phones by RIM
- Android Phones by Google
- Windows Phone 7 by Microsoft
I won't repeat the relative merits and misses that the other players have made, instead i'd like to make a pitch for both consumers that Windows Phone 7 is likely to be a great experience (and until we have final silicon and OS we won't know for sure).
Great Consumer Story
I think Microsoft is finally doing the phone right here. They've repeatedly stated that they will be focusing on the consumer story in this first release. While Microsoft can do and has done a great job focusing on the enterprise, they've struggled with their consumer level products in many areas (XBox notwithstanding). By not trying to solve both masters, this first version should provide a great platform for consumers. They're not being goaded by developers into opening up the platform to features which hurt the consumer experience (e.g. multi-tasking) while working with specific partners on features consumers want (e.g. background audio with Pandora and the like).
In addition, I think that being late to the game will actually help Microsoft this time. Phones are not like other devices. People are not as invested in them (or keep them as long) as other hardware. I firmly think that iPhone-fatigue is setting in. Some of it is the result of Apple's heavy-handedness in control of the AppStore and equally its reluctance to punish AT&T for bad service.
Android equally has other problems with multiple versions of their operating systems and are trying hard to have better control over that. The fact that when you go get an android phone and the average consumer has to know to get a 2.0 or 2.1 phone instead of 1.6 phone is just a travesty. This will ultimately hurt the adoption of the Android phone. While the Apple's AppStore is too tightly run, the Android store is too lose. Android is often called, "iPhone Without Rules". That comes with a cost.
Blackberry is a completely different animal. They've succeeded in the enterprise market and are certainly the big dog in the business sector, but this first Windows Phone isn't targetting them...but I suspect v2 will be all about business users.
But What About Developers?
A lot is made about the developer story on each of the platforms. Apple requiring Objective-C (or other C based coding) does seem shortsighted but at the end of the day the richness of the programming platform is only part of the story.
When I first got my Android phone I wondered how many of the apps that I craved on the iPhone would be on my new phone. I was pleasantly surprised that apps like Shazam and 4Square were already ported to Android. Similarly when the Windows Phone 7 was announced, some of these same apps were demo'd. But the reality is that most of the hard work of these apps aren't on the device. Building a new client for the functionality on the server means that most of the client code is just polish, not functionality in the traditional sense.
Let's use Shazam as an example. Shazam was ported quickly mostly because all it does on the phone is record and play music as well as show data of the songs that were identified. But the detecting of the song information is all done on big iron in the cloud. The radical change in the iPhone then seems to be the ubiquity of the Internet on a phone, not the phone itself. Turn off 3G and Wireless and see how many of your apps continue to work on your phone. Go do it now...i'll wait.
As you've figured out, many of the apps you use are really the first of the new wave of cloud-based apps. The fact that instead of being web-driven, they are smart-client cloud apps. This affects developers by realizing that they need to get both sides right. A great user experience on the device that is driven by a great cloud experience. The skills required can be pretty varied to get both sides correct. Nothing worse than a great looking app that's waiting on server time-outs.
Late to the Party?
But is Microsoft coming out with their phone after Apple's already plucked the market from under them? Perhaps, but I think quickly coming up with a 'me too' phone would have proven disasterous. Coming late to this part may in fact be the reason for its success. With the relative success of the Android phone has shown, the iPhone is not indominable. In fact, the level of iPhone fatigue I think is at a high point at this time.
While coming late to the party, many people also worried about what Microsoft would come up to complete in this new phone era. The Metro (or Cosmopolitan) design language has thoroughly surprised me. I expected microsoft to just compete not to overtake. The new phone paradigm is still to be tested, but it is my sincere hope that this new hub system works as advertised.
Much has been said about Apple's take on how to control their developers (and force their own language requriements). I think this will be ultimately lead to developers flocking to other phones. We are already seeing this on the Android phones as it uses Java and that helps re-use existing skillsets of language and tooling. I expected Microsoft to do something similiar but their decision to use Silverlight was a complete surprise. Using XNA for game development just fits (as that's how XBox Community, Windows and Zune games were written). But Silverlight as the programming model does several things in Microsoft's favor as far as I am concerned:
- Allows existing .NET developers to come to the platform easily.
- Allows existing Silverlight and WPF developers to use their skills seemlessly.
- Promotes cross-usage of assets on the desktop, web and phone.
I've played with the bits in building the course and writing the first chapter of my upcoming book (so I am obviously not a completely neutral party) but I am impressed so far.
I've updated my XBox Games Browser app for the phone to the most recent version (Windows Phone Developer Tools CTP (April 2010 Refresh). The biggest change in this version is that I had to use Tim Heuer's advice (and PowerShell tool) to remove the signing of the OData Library for the phone (I've included that in an externals directory in the source). You can get the project here:
What do you think about Microsoft's new Phone OS and development platform?