In my last blog post about smartphones, I urged the universe at large to help maintain a variety of ecosystems, to help foster competition and originality amongst vendors – and the same day I hit publish, WebOS was killed.

Apparently the universe hates me.

Since then, a few things have changed. My main phone since the day of its release was the HP Pre 3, running WebOS – and whilst I still have a soft spot for the OS, the Pre 3 was simply too buggy for me to use full time. The main issue is that I use my phone as an MP3 player in the car – but the Pre 3 would pause playback at the end of a track every half dozen tracks or so – making it impossible to drive the 85 miles to work without needing to root around in the armrest and poke a touchscreen. Not something I really want to do whilst moving – and ultimately too big a papercut to deal with.

So, come the new year, I moved on to my next device, a Nokia N9 running MeeGo Harmattan. Ultimately, this was an even bigger failure for me than the Pre 3 was, and I lasted maybe two weeks with it before giving up and going back to the HP. Beyond massive usability errors in the software (especially the braindead unkillable pop-up demanding Internet access, even when none is available), the worst for me was how it handled the MP3 player task. My usual way of working is to have the phone hooked up to the stereo with a 3.5mm jack, and the car switches to headset Bluetooth profile to handle calls – this is pretty common on cars too old to support A2DP profile (Stereo music-capable headphones). WebOS and Android are fine with this – but not the N9. The N9, instead, will output all audio through the last connected audio device, regardless of how much that might not be helpful. Get in car, start music playing, plug in cable, start engine – and it plays audio for about three seconds before the Bluetooth connects, and it switches to outputting music via the Headset bluetooth profile (not something that my car can do). Unplug and replug the cable, and music works – but incoming calls are silent until I disconnect the 3.5mm jack, as it outputs the headset audio through the headphone socket. I just couldn’t deal with this big a step back from WebOS as far as my workflow goes, and gave up.

So, where next? Well, a funny thing happened – a co-worker with generally very good instincts regarding consumer electronics usability told me that his housemate had just bought a Nokia Lumia 800 Windows phone (the WP7-based cousin to the N9) and loved it. Enough that said co-worker was considering getting one himself. This was a very strange thing to hear, especially from an iPhone owner, about a Microsoft product. I’d been generally interested in WP7 on an academic level for a while, but to hear that degree of praise of the actual product was interesting. Also interesting, and roughly simultaneous, was seeing Sajid Anwar’s reverse engineering of the proprietary Zune file transfer protocol go from theory into an actual set of libmtp patches.

So if the capability to use Banshee to transfer music on is here or near… and it can’t be as braindead as Harmattan when it comes to headphone/bluetooth behaviour, then why not jump ship and squeeze a handset out of Orange?

About a week after my co-worker replaced his iPhone with a Lumia 800, I bought one too.

So where to begin? Well, I’ll begin at the start: WP7 is a joy to use. It really just is. It’s the first mobile OS to try something radically different in the UI department for years. Everyone else these days (especially Android) builds iPhone rip-offs to varying degrees, and even the iPhone interface has a lot in common with the old old OLD interfaces found on the dumb Nokia phones of the 1990s. WP7 has an interface which provides just the right level of passively visible information and interactivity, and manages to do it with an elegance that no Android home screen filled with widgets will ever manage. The uncluttered screens are easy to read, and the Metro usability paradigms are trivial to pick up and learn. Without a doubt I’d recommend WP7 to friends and family from a usability perspective, and the Microsoft engineers and designers responsible for cooking up the WP7 interface are worthy of praise. And I’m not the only one saying this – Apple co-founder Steve “Woz” Wozniak recently came out with a similar line.

That’s the good. There’s also some bad, make no mistake. I’m going to cover all the reasons WP7 sucks over several paragraphs. But overall, a smartphone is a device which I expect to suck – the question is how bad the suck is, and whether it gets in the way of me using the device for what I need at the time. Moreso than MeeGo, moreso than Android, and even WebOS (and I’m still a big WebOS fan), WP7 has more good points than bad points. But there’s still some room for improvement, and some room for caution – and since I know there are a few Microsoft folks following me on Twitter, I’m going to go over my prescription for continued platform success.

Oh, one more thing before I start: I know WP7 isn’t Free Software. As an end user, I really don’t care about that. I just want something that works – something I didn’t get from WebOS and Harmattan, both of which are primarily Free Software stacks. I’m not saying there’s a causal relationship there, or that a mobile OS can’t be both Free Software and good – just that as an end user, my favourite platform right now is non-Free. Take from that whatever you like. It’s also vitally important, as Free Software folks, never to lose sight of what the other players in the market are up to. If you can’t objectively assess why people are using a proprietary option by using it & recognising its good points (i.e. what to steal & what to improve) then you can’t hope to win over users.

So. WP7’s downsides in detail.

In-place updates. Seriously guys, even Apple can manage this now. Why can’t Windows Phone? I understand that making backups is smart – and all updates come with a mandatory backup – but I really shouldn’t be tied to a PC to update a post-PC device. Also, those backups are useless, since they cannot be restored onto replacement devices in the case of failure or theft, so fix that too.

Update all the things. An iPhone sold in June 2009 still has access to the latest iOS releases. Android phones are notorious for shipping with an outdated version of the OS, then getting at most one major update over the phone’s lifetime (usually the device is abandoned by its manufacturer within months of release). Which camp does Microsoft want to align with, there? Every Windows phone 7 device released should receive Windows Phone 8, even with some features disabled. Anything less is punishing every existing customer, in the hope that you’ll attract new ones – not a winning strategy for a fringe platform whose biggest evangelists are its users.

Fix IMAP. IMAP isn’t hard. Yet WP7 never seems to work properly with a subset of my mail, never showing the message body & just saying “Downloading” forever. Fix it.

Bing sucks. Bing’s search results are terrible. Either do something to make them bearable, or allow me to pick which search engine I get when I hit the search button. A Google live tile isn’t the same thing.

Make killing apps easier. I know you stole the WebOS card view for multitasking (hold the back button) – please also steal the WebOS ability to close apps. I don’t want to have to go into an app and bash “back” repeatedly until it quits. This is particularly annoying for Internet Explorer.

Make reinstalling apps easier. If I want to install every app I previously had installed on a new device, without restoring a backup, this should be easy. There are third party apps which try to plug this gap.

Find a way to support copyleft. I’d like to port a few C# apps to WP7, but because they’re LGPL, I can’t. The code’s copyright holders would have no issue with their code being on WP7, as long as end users have a mechanism to replace the libraries, so why not find a way to allow this? e.g. when compiling an app, let me mark a library as “user-replaceable”, then allow for some mechanism where an end user can replace those assemblies with their own version.

Let me use multiple Google calendars. WP7 only lets me add/see appointments on my default Google calendar. I want to add/see things on my wife’s calendar, which is shared with me. WebOS can do this.

MTP-Z is the devil. I do not need or want encrypted end to end communication between my PC and my camera device, to transfer a photo off. I do not need or want encrypted end to end communication between my PC and my MP3 player to transfer a photo on. Let’s be honest, the only reason for MTP-Z is to enforce DRM on Zune-rented music tracks – and honestly, there’s no good reason to require MTP-Z for *all* communications if all you want to do is protect one folder or file extension. Now, since MTP-Z theoretically forces me to use Zune for many tasks better handled by other apps, now I get to write multiple criticisms of Zune’s desktop app – and as long as MTP-Z is enforced, every Zune failing is a Windows Phone failing too.

Zune: Support Windows’ codec infrastructure, and transcode where needed. Windows Media Player can play Ogg Vorbis files. No, not out of the box, but if one installs the required codecs. Zune should support the same files as WMP – if you want to ensure people don’t try to copy files to a portable device which are not supported on that device, then you should have an API in place to allow for pluggable seamless transcoding of files as required – Banshee allows me to do this (e.g. to copy files I have as .flac to devices which do not support it).

Zune: Search my tracks, not the web. Zune’s searching is terrible – it doesn’t do as-you-type searches, and when I hit enter, matches from my collection are given a tiny little space compared to matches from the Zune music store. Let me easily pick the track I feel like listening to, don’t make it a chore

Zune: Let’s solve metadata together. I absolutely love how nicely the Zune app – on desktop and on phone – shifts as appropriate to the currently playing artist (e.g. changing the lock screen to an image of the artist in question). However, Zune doesn’t make it obvious how to set an album’s metadata to support this, and it’s particularly frustrating when it’s a minor difference of spelling causing a track not to get the “nice” treatment – e.g. “UNKLE” versus “U.N.K.L.E.”. Either start making heavy use of audio fingerprinting services like MusicBrainz to fill in metadata, or allow me to search for “fully supported” artists when filling in track metadata

Zune: Random playlists are useless on devices. I like smart playlists. In Banshee, I have one to pick 12GB of random tracks, which I can sync to my phone. I can’t do this with Zune. If I try to just sync all my random music to my phone, it errors out due to lack of space. If I have a random playlist, the random selection changes multiple times during a sync – resetting the sync, wiping out half the tracks that were transferred on, and starting again. As a result, the sync goes on for literally hours, never ending up with more than a gig or so of tracks on the phone. Random playlists should be freezable, so I can transfer them to my device in peace, then get a new random selection when I want.

So, that’s my list of miserable failure – and it’s still a less painful list than any other mobile OS I’ve used. Perhaps one day Android will approach being usable, perhaps Blackberry’s BBX will actually appeal to human beings rather than corporate IT managers, and perhaps Mozilla’s delightfully named “Boot to Gecko” will get some traction. Who knows. All I know is, My Lumia 800 is the best phone I think I’ve ever owned, and it’s important for anyone working in the mobile space to understand why.

Things that aren’t to my personal taste:
– I hate that I have to sync all my contacts through a cloud service first. I don’t want to upload my hundreds of phone numbers to hotmail or gmail just to get them onto my phone. I wish they could just be kept local. But zune can’t even sync my Windows Contacts / Outlook Contacts. It has to go through the “cloud”.

– I want apps to resume when I launch them from Start, not kill the old instance and make a new instance. But I also want the ability to kill processes from the task switcher because so many apps get themselves into a terrible state that i do need to relaunch them.

– Make the toolbar labels visible by default. They save what, 3 pixels by having them removed? Move the icons up a few pixels and keep the labels on them. I always have to tap (…) EVERY SINGLE TIME I want to use a toolbar icon because I can never tell what I’m actually pressing. And it makes the (…) option pointless because I never know if there’s a full menu under there or not.

– The background processes system is complete junk. I tried writing an app for Android and WP7 that does background GPS reporting. Effectively impossible on WP7.

– WP7 marketplace has more junk in it than the Bada marketplace, and that’s pretty bad! Actually everything about the marketplace is crappy

@MW,
– I want apps to resume when I launch them from Start, not kill the old instance and make a new instance. But I also want the ability to kill processes from the task switcher because so many apps get themselves into a terrible state that i do need to relaunch them.

Well, it is developers responsibility to make proper use of tombstoning in WP7 apps. If app is developed taking tombstoning into account, then it should “resume” after relaunching.

@MW, moving data to the cloud really is the best thing to do. Spend a bit of time setting up and connecting services to your primary Windows Live account – everything else just falls in place afterwards. In fact, I’m seriously considering how to get _all_ my data in the cloud, including SMS, docs, music. May be via Skydrive one day?

There’s no reason why when I switch between phone and PC I’d even need to sync. The data should already be synchronized the minute my phone is in range of my home’s wifi network.

That is the future I think, not connecting via Zune, or plug into a laptop.

– tool bar …, there’s a tip here, you can drag those dots with your fingers, touch the … and slide them up. I find that highly usable.

I’ve always thought that WP7 looked simplistically elegant. The system itself is gorgeous for being a tad too simple, with bold contrast and its tiles.

I agree that the WP7 is filled with obvious flaws, but its usability stands out as its defining feature. Despite the lack of an effective task manager or reliance of synchronization through a wired connector, it is still entertaining to use and see from afar.

Your comments on Android are rather harsh. It’s seems from your writing, you haven’t actually owned an Android phone.

Some of your complaints at WP7, are actually features in Android (e.g. multiple calendars, contact syncing to google account).

Android software support from carriers does tend to be outdated very quickly, but that’s where custom community alternatives come into play due to its open source nature. These custom builds of Android really give you back the power to do what you please with your hardware. But of course you should know that, since you are a free software guy.

@Andres, I owned an HTC Hero for just over 2 years, and my wife has an HTC Sensation. And I bounced around various replacement firmwares in that time. I think it’s fair to say I have plenty of Android experience.

And Android is only just barely Free Software – it has more in common with old “shared source” projects, where there is absolutely no community interaction permitted. Free Software is a superior development methodology more than anything – and Android does not follow this development methodology. The monolithically-developed Android *product* is simply worse than the monolithically-developed WP7.

Interesting article.. I own a Lumia 800 and have owned android and ios devices before.

While I agree with some items (in place updates, etc), I have to disagree on 3 items.

1) Bing Sucks – I disagree, it does return different results as they use different methods/algorithms.
You get more mileage with phrases instead of keywords. Google tends to push keywords over domain/trademarks etc.

Would be interesting to hear why you’re so dimissive of Android. You mention examples only from your Pre days.

Also, while I love Android and don’t want to sound too defensive here, I’m annoyed by your remark that, in your eyes, Android’s development model = WP7’s development model. No, Android isn’t community developed but it is certainly open sourced after every release. Want a feature? You’re free to develop it yourself. Now try that with Microsoft’s mobile OS.

Stack your Lumia against a Galaxy Nexus and I’d be surprised if you have too many arguments left. But if you did, as I say, I’d love to hear them specifically.

Would be interesting to hear why you’re so dimissive of Android. You mention examples only from your Pre days.

I owned an HTC Hero, from around its launch until the Pre 3 was released some 25 months later; and my wife currently owns an HTC Sensation that she’s very happy with. Both periods of time have allowed me plenty of time to observe the direction of Android development compared to that first-gen device, and the answer is “nothing’s changed”. Android’s multitasking is still a travesty of a joke of a travesty. Device support from vendors is still “we’ll ship an ancient version of Android, then maybe you’ll get one major version update ever, have fun with your 24 month contract” – with the usual excuse being “omg it was impossible to predict we might need partitions with more space in the future, we can’t fit the new version and our crapware!”. Every Android shell inflicted by vendors is terrible – the only thing worse is the default UI in AOSP. Due to insane fragmentation, many apps won’t work at all on your device. The entire user experience feels like a bad Linux desktop from five years ago – a bunch of random apps from random toolkits throwing random errors, all of which clash & look horrible, yet somehow the user has convinced themselves they have the system “just the way they want it”. The existence of so many ROM replacement projects isn’t a sign of a healthy ecosystem – it’s a sign of sick software which has a community desperately trying to glue it back together (and only the nerdiest of nerds will ever install a custom ROM anyway, making it a get-out clause which is useless for 99% of customers).

There’s a few starters. Let’s not get into the technology under the hood.

“Develop in secret, NIH everything ever with low-quality replacements, and occasionally toss a tarball over a fence & expect praise” is not a good development model. It completely misses the point of Free Software. It’s openwashing.

No, Android isn’t community developed but it is certainly open sourced after every release.

Honeycomb says “hi”

Want a feature? You’re free to develop it yourself. Now try that with Microsoft’s mobile OS.

You’re free to develop it yourself, then fail to deploy it because 99% of devices on the market are locked to prevent users from flashing their own ROM, unless best-case you forfeit your warranty? And also lose access to half the apps on the Market because your DRM keys become invalid? Awesomesauce, where do I sign up?

Stack your Lumia against a Galaxy Nexus and I’d be surprised if you have too many arguments left.

I can’t think of anything I’d like less than to buy another Android device. I had plenty of time to poke the wife’s Sensation before buying my current device, and in no way felt I was missing out.

Obviously not going to convince you here, I think, but you’ve done some cherry picking there without much substance (like Honeycomb – since they’ve now AOSP’d Ice Cream Sandwich, it’s hardly an issue).

Basically, from I can tell, your message is “Android isn’t as open source as I want it to be, so I’m going Microsoft”, but without much in the way of reason beyond “I don’t like Android’s interface”.

Fair enough, but hardly the specifics I was hoping to go into.

I fully disagree that the ROM community is a sign of a sick project. In fact, how many ROM communities have grown around Microsoft or Apple’s devices? None? Of course none – unless you count the lame jailbreak here and there. AOSP makes this possible and the community that springs up around is a sign that people want to hack and Android’s open nature makes it possible.

Good point about the manufacturers tying things down, but how is Microsoft or Apple any different?

So Android’s not for you, I get it.

Nothing Apple or Microsoft is “for me” either, and I admit that I’m equally blinkered, despite also having tried Apple products in the past (first gen iPad mainly). Never again.

Oh, and as for “nothings changed”… I’m baffled. I’ve only ever used Google Nexus devices and so admittedly I’ve had updates aplenty but nearly every single one has made significant changes for the better to Android : no more worrying about internal ram, decent task switching with a dedicated button and previews, no need for task killers, integrated tethering, and more.

Android’s not perfect, no, but the alternatives, at least from a “free/open” perspective are all far, far worse.

Aye, true, Android’s track record on updates is poor. The price of freedom, I think, because that freedom lets the vendors and carriers in on the action. Where’s their incentive to backport new versions of software onto older phones? None at all.

Another huge gripe I have with Android is it’s lack of a backup/restore process. Sure, they say they have one, but it only restores the apps, not the data. So not much incentive to pour 20 hours into a game only to lose your phone and have to start from scratch!

Funnily enough, Asus is the only company I’m aware to address the backup/restore issue. They supply an elegant tool which clearly has superuser rights that can do a “Titanium-style” backup of not just your apps, but all your data too. Very slick.

But that aside, as I said, I think you’ll find the most recent Nexus device to be night and day from your past experience. I’ve had mine since Christmas and it’s been upgraded 3 times. My three year old Nexus One didn’t make the ICS cut, but my wife’s using it now on 2.3.7 and loving it. My mate’s Nexus S got ICS pre-Christmas and has been rock solid.

Perhaps I’m just lucky that I stuck to the Nexus brand (and Asus for my tablet).