Me and the Nokia N9

We’re on the long road, maybe the wrong road, but we’re together now, who cares?”
On the One Road

The essence of writing is to be scrupulously even-handed. Or it’s to be shamelessly partisan and assume that fairness happens in aggregate across everyone’s writing in total. I can’t decide. Explaining that both these views exist is in itself being scrupulously even-handed. But even-handedness is wishy-washy and indecisive; partisanship lets you put across a strong full-throated defence of a position. Then, though, partisanship is unfair and discriminatory, and the ability to see both sides of a position is not the hallmark of an inferior intellect. So I can’t decide. As you can see, I am indecisive. I am indecisive even about indecisiveness. That’s the hallmark of the open source mentality, right there. Except for the bits which are rabidly partisan and admit of no error. Indecision even about the need for indecision.

This leads me on to the Nokia N9.

A few months back I bought an N9, and exhaustively detailed my reasons for doing so. At that stage, I liked the hardware, I liked the OS, I wanted to try using web apps for most stuff, and I worried a little bit about there being no applications. Now, three months later, I have a more detailed set of thoughts. There’s a list of positive things and a list of negative things. If you’re looking for a simple review, or you’re looking for a fierce recommendation either for or against, this is not the blog post for you. Likewise, if you’re looking for a writeup with a bunch of numbers in it, or indeed if you’re looking for anything pretending to be a comprehensive and overall review of the device and all that therein is, this is also not the blog post for you. I’m going to tell a story, or possibly just let loose with a very, very long stream of consciousness, although in truth it’s more like a river of consciousness or perhaps a roiling torrential waterfall of consciousness. Sieve out the gems that apply to you, if you can. Because I can’t decide whether I love my N9 or whether I’m annoyed by it. Indecisive, you see. Mondays, Wednesdays, and Fridays I believe in Nessie, to quote the late, great Arthur C. Clarke. I’ve been asked a number of times whether I like my N9, and my standard answer has become that for the first time in my life I have a thing that I adore but that I wouldn’t recommend to anyone else.

This is an attempt to explain why.

First, let us be clear. The phone itself, the device, the sheer physical thing, is a joy to behold. It’s lovely to hold, to look at, to play with. Using it feels perfect; you swipe left, swipe up, swipe down. No buttons to push. Portable Cathedrals is an admirable review of the N9 on that aspect; I couldn’t say any of that better myself. For years I’ve gradually been moving toward a mindset where I want things of beauty and elegance more than I want the ability to fiddle and change, and then yanking myself back because the ability to fiddle and change is important, is critical, and I cannot cope without it when it’s gone. So I want each in equal measure. My cake and eat it. The moon and the stick, both. I’ve now tasted that combination with the N9, and it’s likely spoiled me for everything else.

There are also a bunch of mundane things good about it too, beyond the combination of sheer beauty and amazement that I am able to have a beautiful thing. The battery life is good. It’s fast and slick to use, and I’m told the hardware is way underpowered compared with rivals, which speaks volumes about the quality of the software work done by the Nokia team. It’s got a bunch of sweet little features like face recognition for photos. Swiping everything feels so obvious, so much more so than Android where I was never really sure whether to hit Home or Back or whatever. It distinguishes between backgrounding an app and quitting it. (Do not listen to naysayers on this point. They are not the same. There is a big distinction between putting an app off to one side so you can come back to it later and quitting that app while being able to restart it with session intact. If your list of open browser tabs is your todo list, then you agree with me. It’s not about memory management or anything so esoteric and technical; it’s about knowing that I still have a thing, that it’s still where I put it; the same mentality that made spatial windows in the filer a good idea. If I open a few pages in the browser showing rules for different card games, as I did last week on a cruise ship, I want to be able to see the list and get them back. Hitting the “web” icon to get a new browser window should not try and show me all the pages I’ve got open. I don’t care about whether the underlying OS processes are still there, but I do care that I think they are. When I put something in a particular drawer in my kitchen so I can find it later, I am comforted that I know it’s still there when I turn my back. End of sidebar.)

It’s also just like my laptop, under the covers. Time and time again I’ve tried to work out how to do a thing from a software point of view — I’m a developer, right? I’m interested in this stuff — and the answer has been “how would you do it on Ubuntu? That’s how you do it on the N9.” It uses D-Bus and upstart and python and ssh and apt. I understand it already. Not at all a benefit for, say, my daughter, but it certainly is for me.

It’s made and supported by a proper big company. Perfect example of this: my extra charger. I wanted one of those little battery device thingies that you can charge with USB and leave in your bag, to re-charge the phone when it’s running down and I’m not near a socket. So I bought the Nokia portable charger. It’s a squircle shape, which is the shape all through the N9 — icons on the home screen are that shape, the waiting spinner is that shape — and it’s the same cyan colour as my phone. It’s not some horrible black third-party cheap flimsy plastic box. Having spent a lifetime using the hardware that one can find that works with first arbitrary Linux distributions and now Ubuntu, it’s rare for me to be able to buy accessories designed for the stuff I own, let alone ones which are also elegant and themed right and nice. This is the advantage with having Nokia on board.* This carries right through everything; Nokia have a full and well-written set of UX guidelines for N9 applications, good documentation on how to build N9 apps and the capabilities of the device — I was particularly pleased with the docs on how to build web apps for the N9 — and in general the whole thing feels professional and competent and like you’re in good hands. This ain’t nothin’. It’s a lot. I like it.

Of course, life’s never that nice. There are a whole heap of complaints about it too.

The browser, while it’s WebKit-based, hasn’t had as much development as those on iOS and Android. So there’s no text reflow when zooming, which is really supernaturally annoying. The browser can’t do fullscreen — you always have the address bar, making it impossible to even pretend that a web app feels like a native app. Meego still feels like an iOS rip-off in a bunch of ways — look at the home screen. (I admire the Windows Phone people for going their own way in how their OS works, as do I admire webOS; Android and Meego (and, disappointingly, Firefox OS on mobile) started from a “copy iOS” sort of base, I think.) Writing Qt apps for it uses a bunch of Meego-specific components, meaning that it’s somewhere in between hard and impossible to test that app in your normal Qt/QML environment — most other mobile platforms are like this too, sure, but I can run QML apps on my Ubuntu desktop, and development would be so much easier if I could do that with my N9 apps, but I can’t because you don’t have the magic Meego components. Huge chunks of the underlying Meego architecture require you to write C++ library .so files and can’t be used from Python and PySide, making the point of saying “look, PySide, isn’t it great” much diluted. Getting my mail from Gmail required me to set it up in “Sync for Exchange”, a flagrant contradiction, and that Sync for Exchange thing keeps telling me that “The server or web address is wrong” when I go out of network for a few minutes. Notifications about new emails appear in the events feed but don’t disappear if I read or delete those emails from other devices. The magnifier on text to move the cursor is annoying and under-sensitive. Setting up a development environment is either very hard indeed, or requires you to install a whole separate version of Qt from Nokia at system level, which is highly likely to sod up your standard Ubuntu system. The list of minor abrasions and annoyances extends into the distance.

Then there are the two big elephants in the room: Nokia have canned the whole project, and no-one bought the phone anyway so there are no apps and no community and no support.

These two are not, I think, unrelated.

I’m not qualified to talk about Nokia’s market positioning or the state of the smartphone market as a whole, really. I mean, it baffles me that Nokia obviously put together a world-class design and development team to make the N9 and then started backing away from it before it even went on sale, but they did, so there it is. And, of course, I knew that going in. Since then, Nokia have officially canned the whole thing; not just under-resourced the whole N9 project but cut it off entirely. So no lovely USB chargers any more; no more apps from them, no more well-written and elegant design documentation. I can rail about the circularity of all this until the cows come home — well of course no-one bought it, you did your best to make sure they couldn’t! canning the project because no-one bought the phone is what happens when no-one bought it because you wouldn’t sell them it! what are you, Acorn Computers? — but that helps no-one. Cautionary tale, sure. As mpt said once, “Great design makes success more likely. But Windows on PCs shows that it isn’t necessary, and Windows Phone shows that it isn’t sufficient.” But the fallout from this, from no-one using the N9, from the lack of success whatever reason there is for it, is that there are no applications, no community, no support.

This affects me more than I thought it would.

You see, I went into this thinking, well, I don’t use most of the apps out there in the world, so I won’t be bothered by their absence. And that’s still true. But the lack of userbase hurts me because it means that I get Opera Syndrome. The Opera web browser is hugely competent; it’s as good as any other browser on the market. But hardly anyone uses it, so it doesn’t get tested, and so web things that ought to work in it do not because developers don’t test against it; therefore new users won’t switch to it because stuff doesn’t work in it; repeat until false. I’ve had a similar experience with the N9, especially regarding the web browser. It’s WebKit; it should be able to do everything that Android and iOS web apps can. But the screen’s a little larger in size, in pixels, so web apps switching into a “mobile” mode which were only tested on Android and iOS don’t work sometimes. I have to use Google+’s mobile site in “basic mobile” mode because “pretty smart mobile mode” won’t post comments. Google Reader works fine on the mobile web, but not G+. Many sites, as ever, assume that if you’re not Android/iOS then your phone browser must be some sort of 1998-era WAP thing and serve you rubbish super-basic HTML, or worse you get the “sod off you’re not supported” message even though I’ll bet I’d actually be fine. (Amazon Cloud Reader, you are the weakest link, goodbye.) There are other browsers — Opera, Firefox mobile — but again you hit the same issues — they’re not official builds, because no-one uses the N9 so it’s not a supported platform, Fx mobile is new and doesn’t do much yet (no text reflow there either), they don’t support adding an app to the home screen, the list goes on.

There are some really quite lovely apps for the N9. The ones that come with it are universally good. There’s a community of people writing great apps, too; people like Thomas Perl. There just aren’t many. Also, the N9 suffers from the same problem that open-source platforms always suffer from, which is that the community that there is is full of people who want to tinker all the time, so half the development effort is going into making wicd run on it or tweaking obscure bits of the OS so that it runs 0.2% faster or other ultra-geeky things. XKCD refers. And tearing one another apart on minutiae, of course (“it’s not meego, it’s maemo!” “why isn’t your app GPL!” etc etc. I refer.)

And that ties into a larger point, which is this: I thought to myself, I’m not that worried about the lack of native apps, because I can use web apps for almost everything, nowadays, and they’ll be fine. I was wrong. The mobile web world, for apps, is quite shit. Jake Archibald memorably described the distinction between “look stuff up” web sites and “do stuff” web apps: “look stuff up” are things like Wikipedia, YouTube, Twitter, and “do stuff” are what we’d think of as apps. “Look stuff up” sites work absolutely fine on my N9; I don’t need a YouTube app, I just use the website. Wikipedia, IMDB, all that, I get a native-feeling experience, sized and designed and working fine for touch on a mobile-sized screen. Things like wtfsigte are a lovely experience on mobile. (Great restaurant site: NSFW name.) The Lanyrd people (more Jake) have done a superb job with their mobile web app. But “do stuff” web apps? For mobile? There are hardly any at all. Really. There are plenty of web sites for desktop browsers, but those sites are not mobile-friendly. You want a todo-list app? A notes app? A book reader? Not for you. Or at least maybe these things exist but I can’t find them. And there’s little to no motive to fix this, because everyone who might design and build something excellent to do this is building iOS apps or Android apps instead, so it’s not getting any better. I was pretty frustrated by this discovery, I can tell you, and I could make this interminably long piece twice as long by talking about why this is and what could happen to fix it, but I won’t.

So I wouldn’t recommend my N9 to anyone else.

I’m not blaming anyone for this, really. It’s hardly surprising that there’s limited support for the N9 from web devs and app devs and Nokia when no-one uses it. It’s hardly surprising that a phone which is very open-source friendly but has no apps has its userbase dominated by people who care about open source issues like low-level tweaking and not about making great apps. It’s hardly surprising that Nokia decided that they didn’t want to be in the business of building and maintaining a whole OS stack by themselves. But that’s why I’m indecisive. Do I actually love my N9? Or do I love what it could have been? No other platform comes close to giving me the combination of elegance and openness; the closest out there is webOS, which is also abandoned and on hardware that doesn’t exist any more either. Maybe Firefox OS will solve this for me, but that doesn’t exist yet either. Or Ubuntu Phone. Of course, the other thing I want is a huge, vibrant community of app makers and accessory makers and friends and users and family, which is what the N9 hasn’t got.

Meanwhile, I’m stuck now. I don’t know which of those things that I want is the best to compromise on.

I’m not very good at compromise.