IanG on Tap

Ian Griffiths in Weblog Form (RSS 2.0)

Blog Navigation

August (2014)

(1 item)

July (2014)

(5 items)

April (2014)

(1 item)

March (2014)

(1 item)

January (2014)

(2 items)

November (2013)

(2 items)

July (2013)

(4 items)

April (2013)

(1 item)

February (2013)

(6 items)

September (2011)

(2 items)

November (2010)

(4 items)

September (2010)

(1 item)

August (2010)

(4 items)

July (2010)

(2 items)

September (2009)

(1 item)

June (2009)

(1 item)

April (2009)

(1 item)

November (2008)

(1 item)

October (2008)

(1 item)

September (2008)

(1 item)

July (2008)

(1 item)

June (2008)

(1 item)

May (2008)

(2 items)

April (2008)

(2 items)

March (2008)

(5 items)

January (2008)

(3 items)

December (2007)

(1 item)

November (2007)

(1 item)

October (2007)

(1 item)

September (2007)

(3 items)

August (2007)

(1 item)

July (2007)

(1 item)

June (2007)

(2 items)

May (2007)

(8 items)

April (2007)

(2 items)

March (2007)

(7 items)

February (2007)

(2 items)

January (2007)

(2 items)

November (2006)

(1 item)

October (2006)

(2 items)

September (2006)

(1 item)

June (2006)

(2 items)

May (2006)

(4 items)

April (2006)

(1 item)

March (2006)

(5 items)

January (2006)

(1 item)

December (2005)

(3 items)

November (2005)

(2 items)

October (2005)

(2 items)

September (2005)

(8 items)

August (2005)

(7 items)

June (2005)

(3 items)

May (2005)

(7 items)

April (2005)

(6 items)

March (2005)

(1 item)

February (2005)

(2 items)

January (2005)

(5 items)

December (2004)

(5 items)

November (2004)

(7 items)

October (2004)

(3 items)

September (2004)

(7 items)

August (2004)

(16 items)

July (2004)

(10 items)

June (2004)

(27 items)

May (2004)

(15 items)

April (2004)

(15 items)

March (2004)

(13 items)

February (2004)

(16 items)

January (2004)

(15 items)

Blog Home

RSS 2.0

Writing

Programming C# 5.0

Programming WPF

Other Sites

Interact Software

Web, Desktop, Econoboxes, and Sublime Cars

Thursday 14 June, 2007, 03:39 PM

Jeff Atwood’s recent “Who Killed the Desktop Application?” blog reminded me of something I’ve been meaning to write for a while.

The death of the desktop computer as we know it has been predicted many times, particularly by people with bees in their bonnets over Microsoft. This has been going on for at least as long as the web has been popular. So far, the predictions aren’t looking too clever. However, when web applications start beating desktop applications in the very areas the desktop should have a natural advantage, it’s time to take notice.

It strikes me as reasonably obvious that neither the web nor the desktop will win. Instead, applications will tend towards a hybrid approach. Depending on where you’re starting from, that means either connected desktop applications or rich internet applications. Desktop applications that do not exploit the network will look increasingly like relics. Likewise, web applications that fail to exploit the local machine’s potential will start to feel as crummy as a DOS application would next to a typical Mac desktop application.

Several major players seem to be thinking along these lines. Adobe and Microsoft are two of the biggest established players on the desktop, and they’re both pushing Rich Internet Application technology hard. Google is presently the big thing on the web, and they are gradually broadening their desktop presence, most recently with Gears.

Google Gears

Google Gears is interesting. In case you’ve not seen it, it allows applications built for the web to exploit certain desktop features. It offers:

My experience so far with Gears has been immensely disappointing. (I had an unbelievably crappy install experience. Once I finally got it installed, it failed to work with Data Execution Prevention enabled, which makes me wonder just how seriously they’ve taken security in this project. So the last thing I want to do is disable DEP—downgrade my security in order to try out something that evidently hasn’t been tested to see if it works in a reasonably secure configuration? No thanks! It works fine in Firefox, of course, but that’s because Firefox doesn’t support DEP...) My experience to date of Google’s desktop software suggests they’re not very good at it. Maybe the next Google will be the first company that understands both worlds, and how best to blend them; Google isn’t looking like that company yet.

Implementation quality aside, I think Gears represents an important movement: the convergence of desktop and web platforms. The significance of Gears isn’t that it’s particularly good, it’s that even Google recognizes the importance of exploiting the desktop.

Google’s most obvious strength is on the server side, but they have been advancing the art of web UI for a few years now. And with the notable exception of Gears, their UI advances have been built on stuff that’s already in the browser, rather than the browser plug-in route embraced by Adobe and Microsoft. They’ve shown that web applications don’t have to suck as much as we thought.

Don’t get me wrong. I have high standards for user interface software. I’m especially interested in the detailed ergonomics that contribute to how it feels to use an application, and for all their efforts, I believe that Google have mostly only raised this aspect of web UI to the level of ‘mediocre’. But that’s a big step forward for the web—a few years ago ‘dire’ was the norm. Achieving mediocrity is significant for two reasons. First, many desktop applications are rubbish, so the best web applications beat the worst desktop applications at their own game. Second, mediocrity is often good enough. This is what makes something like Gears significant: there’s a whole class of applications for which web-based UI used to be fundamentally unworkable, but now, a web-based UI may be good enough. This raises the question: do we need desktop software any more?

‘Good Enough’ Considered Feeble

As long time readers of my blog will know, I drive a car that is better than necessary. From a utilitarian point of view, I could pay a tenth of the price for a car good enough to meet my practical needs. A crappy little econobox of a car would offer some substantial benefits over my present drive besides price: lower running costs, easier to park, less attractive to thieves, lower emissions. (Indeed, several European small cars offer lower fuel consumption and CO2 emissions per mile than a Toyota Prius, without the environmental problems peculiar to building hybrids...)

So why do I drive a car that absurdly exceeds my requirements? Because I like it!

I don’t need a car with excellent handling balance, but I love how it feels to play with the stance of a car by adjusting the throttle mid corner. I don’t need to drive round race tracks and airfields, but I cannot begin to explain how ludicrously brilliant it feels to drive my car at its limits, or to hoon around having pushed it beyond them. I don’t need a car with a luxurious interior, but I love the way it make me feel every time I get into the car.

(That last point is negotiable for me by the way—performance trumps luxury in my book. In my previous car, the chassis doubled as the interior... It was never going to win any awards for comfort, but it’s an implausibly brilliant car. It also made me feel great every time I got into it, but for completely different reasons.)

Commercially speaking, the important point is that I’m happy to pay for all these things I don’t strictly need, because I really like them.

Merely being able to get the job done doesn’t cut it. Ironically, ‘good enough’ isn’t good enough for me.

Ticking the basic boxes is good enough only for people who aren’t particularly into cars or driving. And judging by the kinds of cars that sell best, most people are in that category. If you buy a car to get from A to B, then the econobox is a much better choice. However, even though the econobox market is much bigger than the performance market, there’s still money to be made building cars designed to get you from A back to, well, A, as long as the journey is executed with sufficient vigour and panache.

Which brings me back to software. Web applications may very well be good enough, but I don’t want to drive one if I can help it.

Desktop Applications Should Exceed Expectations

I’d far rather use an exquisitely crafted desktop application than a web application. Unfortunately, most desktop applications suck... They have the potential to be so much better in many respects than web applications, but few ever exploit that potential. And in some cases, the econoboxes of the software world have raised their game to the point where their product is better in almost every respect.

The map software Jeff describes is a good example of this. The one and only benefit the desktop application offers is the ability to work without a network connection. (That’s pretty important if you’re planning to use the thing while you’re on the move. But you’d be probably better off buying a dedicated satnav system if that’s your aim—they’re easier to lug around than a laptop.) In all other respects, the application fails to capitalize on any of the potential offered by running on the desktop, and worse, ends up trailing the web application by a large margin in most respects.

It must surely be obvious that once you start building desktop applications that can reach out to the web, a desktop application can always be at least as good as the equivalent web application. After all, web browsers are desktop apps, so as a baseline for performance and quality, the desktop application can just host the web browser control... If you’ve built a desktop application that fails to exceed that baseline, you may as well not have bothered.

Failure to Innovate

The sad fact is that a lot of desktop applications probably are fading into irrelevance. As Jeff points out, there’s a lot of innovation going on with web UI at the moment, and some of it good. Many desktop applications just don’t seem to be keeping up.

I don’t think it’s a universal trend. The Ribbon in Office 2007 is a brilliant and radical step forward. It was remarkably courageous of Microsoft to introduce it in such an important and long-established product. I don’t think Google has introduced any UI innovation that comes close.

By contrast, I recently bought Adobe’s Creative Suite 3, and was appalled at how little progress seems to have been made on the basics—it might have a feature list as long as your arm, but I don’t think the fundamentals, such as how you draw stuff in Illustrator, are noticeably better than they were 5 years ago.

You might say that this is inevitable in a mature product. But I would disagree—I can see room for improvement. Take the simple act of changing a shape’s colour, for example. Expression Blend and Expression Design both update the shape continuously as you drag sliders or points around in the colour picker, but with Illustrator, it waits until you finish the drag before updating the display. (When the first version of Illustrator shipped, that would have made sense—machines were too slow to cope with that sort of live update. But that was a long time ago.) This may seem like a tiny thing, but it’s amazing how much you miss this feature once you’ve got used to it. And it’s the seemingly tiny things like this that add up to the difference between a lacklustre experience and a great one.

My impression so far with Creative Suite 3 is that Adobe has been less bold than Microsoft was with Office 2007. (Admittedly, I haven’t finished exploring all the tools yet—maybe the tools with less history than Illustrator and Photoshop are allowed to evolve faster.) It seems Adobe doesn’t want to mess with the basics, presumably relying on new features to motivate sales. And since Adobe is a juggernaut in the design and production world, they’ll doubtless get away with that for some time to come. But for how long? Maybe someone will work out how to build a web app that is good enough at the basics of what Illustrator (or some other CS3 tool) does. It won’t do as much as Adobe’s tool, but it might do the basics better if Adobe sits still for long enough. And that might cause Adobe a serious problem in the long run.

Since web applications are routinely good enough these days, it follows that desktop applications must be significantly better than good enough. And they must be better where it counts most: not in the mile-long feature list, but in the points of interaction where the user meets the software every time they use it. Games developers understand this, but most desktop applications fall short. Car reviews frequently bang on about the important ‘touch points’—things you touch every time you drive such as the steering wheel, gear lever, door handles, indicator stalks, etc. These key touch points contribute hugely to the feel of the car, so the premium manufacturers spend a lot of time trying to get their feel and operation just so. Desktop applications must likewise optimize their key ‘touch points’ if they are to justify their existence.

Why I Like WPF

This brings me, inevitably, to WPF. I like WPF because it helps improve the very qualities I’m discussing. I’ve worked on user interface features that web applications just can’t do today, and which would also have been too expensive to develop using older desktop UI technologies.

That’s why I think WPF is important. While web applications may be good enough for many purposes, some people will want high performance, luxury, or both. The future of relevant desktop applications has to be in exactly the areas where WPF helps you most—the critical touch points.

Copyright © 2002-2013, Interact Software Ltd. Content by Ian Griffiths. Please direct all Web site inquiries to webmaster@interact-sw.co.uk