this?
or this?
I ask because we’re about to repeat the whole “everything runs in the browser” war that we had 10-15 years ago, which makes me tired just thinking about it, and irritated because it will spawn another generation of documents masquerading as applications and un-maintainable code.
It is obvious to me that the rich experience is the better one. Whether you get it via Adobe Air, Silverlight or whatever, the experience in a rich client is superior to the experience in a browser: More tactile, more tailored and better use of the underlying OS and hardware than the “least common denominator” approach of browser-based apps. Yes, the Ajaxian apps are better than the L.C.D. vanilla web apps, but even the best of them (Basecamp, Mint, Gmail) pale in comparision to truly rich desktop apps – the ones you live in as a tech worker or a digital artist or engineer, your editor or designer tools; the best ones are like the cockpit of a high-end car or an airplane, with every affordance designed to minimize gestures or cognitive load. The iPhone apps are also testament to this: the best ones are tactile and use the built-in sensors such as the accelerometer to great effect.
Meanwhile, the HTML5 hype machine is gaining strength, with promises of video playback and “drag & drop support”, which just makes me laugh. We already have those things. So now your browser can do that? That’s nice… basically it’s a stupid pet trick, and 10 years too late.
To be clear: Moving the browser forward is great. It’s the best low-friction way to deliver software ever invented. But we confuse the convenience of navigating to a site with the actual app. Everyone wants the convenience of a single click (or navigation) to access or update an application. But almost nobody wants to spend their day toiling in front of, say, Facebook.
On the other hand, with the really great apps (say AutoCAD, Cubase or Photoshop, really good IDEs/Editors such as VS or Emacs) you can spend hours in front of them with a real sense of productivity and craft, where the tool (like any good tool) feels like an extension of your body and mind, and where you don’t feel like you’re constantly fighting the limitations of the damn thing in order to get your work done. I’ve yet to see a web app that gives you that sense of capability and power.
HTML documents are great and have a place in this world. But they are not programs, and they encourage bad programming habits and provide a diminished experience for users. Let’s not conflate our connectivity fascination with the quality of the end results.
A problem with rich -- and we saw (and see) a lot of this in Ajax apps -- is richness for its own sake. There are plenty of apps on the Web where every gesture -- click, hover, anything -- results in _some_ sort of behavior, often unexpected or unwanted behavior. How many times have you cursed some stupid popup window or menu because it jumped out of nowhere to obscure what you were trying to read?
Certain applications don't necessarily benefit from rich. Google of course proved this, in spades, with its deliberately spare search page, which (lest we forget) replaced a host of predecessors that featured a lot of junked-up UI. How rich does a function like Web search need to be exactly? (IntelliSense is a welcome addition. I guess.) How rich does Windows Explorer need to be, or your basic text editor? How rich does Microsoft Word need to be, UI wise?
I'm not disagreeing that client-based functionality can run circles around the kludged-together functionality represented by HTML + CSS + Ajax + add-ons. Or that you'd want to create Microsoft Expression or Microsoft Word, for that matter, using a Web-based interface. But I don't think richness, client-based or otherwise, is always an inherent good. And by extension, I don't think that the simple dichotomy of rich-v-reach addresses every dimension of the decision-making for app building.
Thots?
Posted by: mike | January 27, 2010 at 09:19 AM
hey Mike -- was hoping you'd comment on this actually :).
First I'd agree there are a continuum of apps, and some (lower-fidelity) apps are probably suitable for the browser. Just as there are 'casual games' and hardcore games, with different expectations and (typically) different delivery mediums (think Java or Flash games vs XBox), so there are 'casual' apps that are a hand-in-glove fit for the browser. They definitely exist.
I'd also agree that 'rich' by itself of course does not make a good app... it's just a tool/toolset, not the finished product.
I do think though that good UX (a simple UX for search/Google, as you mentioned) is a separate issue from rich/reach. I can create a simple and to-the-point UI in rich, too.
I'd put it this way: I can create virtually anything I want/any kind of app with a platform-appropriate rich client platform. The same certainly cannot be said for reach/web apps.
so I could live with just rich apps, even if it seems like overkill in a few cases. I don't think I could live productively with just web apps.
Posted by: misha | January 27, 2010 at 09:51 PM
>I can create virtually anything I want/any kind of app with a platform-appropriate rich client platform.
True enough. (Browsers are, after all, rich apps that host reach apps.) But until rich is standard -- like HTML, for better or worse -- you're not necessarily guaranteed a platform in every place you want to reach. That's precisely the appeal of reach -- you don't need to worry what platform your client is running on. It doesn't seem likely to me (might be wrong) that there will anytime soon be a client platform that's as ubiquitous as HTML + CSS.
I'm also curious to what extent richness is actually that interesting in LOB apps. Obviously, apps where the graphics are paramount (games) or have real utility (graphical design software) must have richness. But insurance claim entry forms, task lists, etc. -- ? (And what percentage of apps out in the day-to-day world are of that ilk? Significant, if not a majority, I would wager.)
Posted by: mike | January 27, 2010 at 10:15 PM
Having worked on a rich (and reach) client for Dynanmics for 3 years (which shipped in several versions of Dynamics 2009), I'd say there is definitely real utility in having richness in LOB apps. Even having good control over things like tab order with lots of embedded controls is a big deal.
My point about feeling like you're in control and not fighting the tool also applies to users sitting in front of LOB apps I think.
The appeal of reach you described is real, but that's a benefit for the developer, not really for individual users. iPhone apps are great because they're native on the device and use the affordances.
Posted by: misha | January 28, 2010 at 09:09 AM