Wow, I've never read such a thorough review of a phone OS. So far the reviews have been surprisingly positive. I think it's not at iPhone 4 with this release, but I think they came out very much in the hunt.
Here's what MS needs to do quickly:
1. They really need to hurry and get on Verizon and Sprint.
2. Add multitasking. They are going to get a lot more grief for not having it than the grief they'd get from some users who experience poorer battery life due to rogue background apps.
This one is really not that hard for them to do technically. If anything its probably just removing code paths where they fire events and shutdown processes.
3. Improve the Silverlight perf. 3rd party apps need to hum like 1st party apps.
4. Get IE9 out the door and the IE9 engine in the phone.
If they can deliver this early in 2011, then I think we'll see some sparks begin to fly.
I'm a little worried about point 3. I've done a fair amount of WPF (of which silverlight is a subset) programming on the desktop and while you can achieve pretty smooth animations they still arent as fluid as the ones we're seeing in iOS and built-in WP7 apps. The framework simply lacks some of the necessary support like V-Syncing to make that possible ATM.
That's probably why native apps on WP7 aren't done in Silverlight and I'm not sure how they'll bridge that performance gap.
2. I doubt it is that simple. Once you let apps to run in parallel you will need to manage them, to look after power consumption, have an UI to support multitasking, etc.
3. Ok, I guess that's easier than improve Flash for mobile.
4. I don't think the browser on WP7 is based on IE7 just for numbers to match. And this give me little hope there will be quick improvement in that area.
Also there was this tidbit about detecting WP7 browser from user agent string. That's not the way to do it. The way to adapt your layout for a mobile device is using CSS media queries (IE9 should support those).
BTW, about the interface. Some seem to really like it, but I find that clipped text a bit weird.
>> 4. I don't think the browser on WP7 is based on IE7 just for numbers to match. And this give me little hope there will be quick improvement in that area.
It's a very nice looking OS, but there's no compelling reason for me to use it as opposed to my G2, or if I so desired, an iPhone so far as I can tell. The defaulting to Bing search and maps would in fact be a deal breaker for me.
Non-existent tethering and linux support AFAIK too. Ugh.
In addition to your points above, Microsoft needs to:
1. Make it easier for developers to port apps from iOS and Android to WP7.
2. Allow OEMs to customize WP7 and the hardware to some extent so they can effectively compete with differentiated and innovative products; else WP7 smartphones will become commoditized, just like Wintel PCs.
3. Consider a different revenue model. Charging $15 a copy to OEMs is a tall order, particularly when the competition is free (Android). Some have argued that the total costs of deploying and maintaining Android are higher than deploying WP7, but how can this be, given that almost all the costs with deploying Android are fixed in nature, while WP7 costs are primarily variable (on a per copy basis).
4. Improve its brand image in the smartphone market and across the board. Microsoft has a weak brand in the hacker community, given the preference for open source. Hackers are driving much of the innovation in the application markets.
I think that would be for the "full Google experience" with Google-branded apps. If you choose to go plain Android with your own apps instead of the Google ones, you should be free.
Without license one also loses the name 'Android', the good deal on Google Ads and access to the store. All telecoms and big phone companies do pay the fee.
> "1. Make it easier for developers to port apps from iOS and Android to WP7."
I disagree strongly with this point. The last thing they want to do is encourage developers to bring over UI paradigms from other platforms and just drop them into WP7. They've fought hard for a solid UI that reviewers seem to love (I like it too, having used one of the preprod phones) and it would all have been for nought if they cannot get 3rd parties to maintain consistency.
That's one of Apple's strong points, and one of Android's problems - Apple devs give two shits about HCI, Android devs in general do not, and the average level of UI polish between the two platforms is phenomenally different. MS will have to go the Apple route if they want to compete, and this means being a bit draconian when it comes to HCI enforcement. Drop-in porting tools would compromise this.
> "2. Allow OEMs to customize WP7 and the hardware to some extent so they can effectively compete with differentiated and innovative products; else WP7 smartphones will become commoditized, just like Wintel PCs."
Oh Lord no. They've already compromised too much by allowing carrier crapware onto their phones. One thing Apple is good at is earning consumer trust - and part of that is doing things that act in their best interest (even if it means screwing developers). Their obsessive enforcement of HCI is indicative of this, and their complete refusal to bundle crapware is as well. You give OEMs the ability to customize WP7 and I guarantee that they will shit all over the gorgeous user experience that MS has obviously worked hard to create - and I guarantee that carriers will get right in this game also.
> "4. Improve its brand image in the smartphone market and across the board. Microsoft has a weak brand in the hacker community, given the preference for open source. Hackers are driving much of the innovation in the application markets."
I don't think it will matter. iOS is about as anti-hacker as a development platform gets, but it still has the support of the open source community. The fact that it's 'nix has a lot going for it (widely available libraries without too much porting effort), but in the end consumers will drive developers much moreso than the reverse. MS needs to drive a lot of customers to the platform, the developers will come after that, whether or not hackers actually like the company and platform is only a minor issue.
If anything, I feel that MS should've gone for the Apple revenue model. One thing that both Google and MS have failed to grok, and one thing Apple has a very good idea of, is that the software and the hardware are inseparable. Designing the two separately is foolish and can only lead to compromising the user experience, and the market has shown in recent years that it weighs user experience far above that of raw functionality.
You simply cannot create a halfway decent experience without knowing what hardware you are targeting. The case is worse in Android's case - since effectively the OEM is allowed to change the hardware spec in any way it chooses, leaving just about anything up in the air for devs to deal with.
MS has obviously chosen a stricter model, but I fear it may not be strict enough.
Beautiful review, though I think Anand should consider using videos to describe some things.
This is telling of how strict Microsoft is being with the hardware:
"At the top left of any Windows Phone there must be a volume rocker. The top right has to have a power/lock button. The lower right has to have a physical camera button capable of waking the phone up from sleep and putting it directly into the camera app. Microsoft views the smartphone as the replacement for the point and shoot camera and thus Windows Phone needs to be able to function just as quickly as a P&S. Finally, all Windows Phones must have a 3.5” stereo audio out jack and support for headsets with three button integration."
I'm all in favor of the physical camera button. I was actually brainstorming today about ways to be able to select which app you want to run without actually turning on the screen (be it iphone/droid/wp7/whatever). I want to be able to take out my phone and just start doing what I want to use it for immediately, without fiddling with lock screens and menus. I want it to be a voice recorder on demand, camera on demand, camcorder on demand, mp3 player on demand, etc.
The reason you have lock screens is exactly because you have the phone in your pocket. If it worked the way you suggest you would have photos of the inside of your pocket, recordings, phone calls, etc.
I think you misunderstood. I'm not saying there shouldn't be a lock screen, I'm trying to figure out a way to keep the lock screen (so that it doesn't do stuff in your pocket) but be able to go from phone-in-pocket to doing-what-i-want-it-to-do, without going through the usual process of: take out phone, power on, bypass lock screen, search for app icon, etc. I don't know how to accomplish that, but it would be a huge feature for me if it was possible.
Well, if you don't have PIN to lock, you could have different gestures to unlock that would jump to an app. Like swipe up for camera, right for phone, diagonal for messaging, etc. Perhaps even show those icons so unlocking is swiping the app icon you want to use across the screen. As long as it's limited to a few apps, it might work.
Actually that's exactly what I came up with later last night after posting the comment. Lock screens on android are replaceable right? Maybe I've found my first dev project...
Ah, I didn't get that from your original comment. If you could figure this out you could probably.... erm.... <whisper>patent it</> and sell it for big bucks to any of the big phone players.
The phone looks pretty good. The UI isn't to my taste, but that's actually irrelevant.
However, I am in the middle of development of android client for our streaming server. There are three major obstacles for me to start developing similar client on WP7:
1. lack of multi-threading support
2. no access to network sockets (yes, microsoft omitted sockets support, at least for first version of their api, I couldn't believe it also)
3. development tools for linux
Hopefully, they will clear these obstacles pretty soon. At least first two, I can be flexible for the third.
EDIT: I have to correct myself, just found out, that there actually is support for multi-threaded apps. Cool, only one major hurdle left to fix.
The network effects can't be underestimated. When I consider a new phone just having the best operating system isn't going to cut it. If I can't interact with others because of a different set of apps or be a second class citizen, getting apps for popular services well after there release on the iphone (as nokia basically is, if they ever get the app at all) no amount of new innovation is going to get me to use it.
I think there needs to be an easy way to port apps, then later sure try and differentiate yourself. The same way the Xbox works where the majority of games I can get on the PS3 also.
Games are usually good candidates for portability because the GUI capabilities & conventions of the host OS need not affect what you do in your custom full screen rectangle.
This is usually true; your backend can be straight C and you can have a thin layer at the front end to glue your game to the target OS. This makes for easy porting between iOS and Android and Web OS.
But it won't currently work for WP7, as they don't allow anything but Managed C#. You have to do a top-to-bottom, from-scratch rewrite to target WP7.
I also read on TC: "WP7′s networking APIs currently lacks direct sockets support. If developers want to network their apps, they’ve gotta go through the HTTP protocol."
So, with the voice of the dude from WP7's commercial:
I'd suggest getting in early with apps called Aardvark if they're really only giving people an alphabetical list of apps to scroll through rather than any way to spatially group them.
Kind of a fascinating read. The UI approach seems interesting, but hearing about all the random things that don't quite work right (or at all) is disconcerting.
The Zune Pass streaming works like an expensive Pandora, except you get to pick and choose the songs you want to listen to.
That's funny, the whole reason I use Pandora is so that I don't have to pick out which songs to play.
...but hearing about all the random things that don't quite work right (or at all) is disconcerting.
Is that actually surprising though? I think I'd have been more surprised if they got everything right on first release, and in any case it certainly looks like they've made a good start.
FTA, it looks like WP7 is trying to walk the fine line between Apple (little-no customization) and Google (full on open source) in its user experience.
If they're able to continue staying on this line for an extended period of time (say, for two or three generations of the OS) they can be successful. However if they start falling on to one side (which they have in the past), they will be seen as a me too in the space and their brand will suffer.
It isn’t quite as bad as how iOS will completely dump a page and completely load then render it again (effectively double loading pages occasionally - which is admittely nice way to increase apparent browser market share), but it is there.
WTF? I hate when otherwise great reviews are ruined by biased, ignorant, or conspiratory crap.
I believe there's some sand boxing issues on one hand. But usually the problem is how to make the UI for c-p non clunky and non interfering. Well, that's the same spiel that companies always give us.
Anyhow, c-p support is coming with the first OS revision of WP7. As anand stated, it already works on test versions of the revision.
Here's what MS needs to do quickly:
1. They really need to hurry and get on Verizon and Sprint.
2. Add multitasking. They are going to get a lot more grief for not having it than the grief they'd get from some users who experience poorer battery life due to rogue background apps.
This one is really not that hard for them to do technically. If anything its probably just removing code paths where they fire events and shutdown processes.
3. Improve the Silverlight perf. 3rd party apps need to hum like 1st party apps.
4. Get IE9 out the door and the IE9 engine in the phone.
If they can deliver this early in 2011, then I think we'll see some sparks begin to fly.