Matt Legend Gemmell Modesty is Lying

Mac OS X Cocoa and iPhone Development Services available at Instinctive Code.
Mac OS X Cocoa and iPhone Developer for hire

Other Pages

Categories

Posted
25 October 2006 @ 9pm

Categories
Development, Interface

Tags
, ,

Applications 2.0

I’m a web developer during the daylight hours (and at this time of year, during some of the hours of darkness too). Yet I wonder if I’m not coming towards the end of the part of my career when I can just work on web apps the whole time. Then I read the recent thread about the HIG being “dead”, and thought I’d jot down a few thoughts.

So, web applications: a brief rant. I’m fast losing interest in web applications in general. I had a minor renaissance recently with the Django framework and Python, but it’s still web development. HTML and CSS and fixing rendering issues in IE. Yawn.

But what of Web 2.0? Yes, you can do more and more application-like things on the web, but more often than not you’re doing them the wrong way. People wield the acronym AJAX like it’s some glorious new development paradigm, and not a collection of fairly hackish techniques which tie together heterogeneous technologies.

Sure, we can do <insert fairly primitive web eye-candy effect here> using the wonders of AJAX, but then desktop applications could do that 20 years ago. We shouldn’t have to code and debug in 4 different scripting or markup languages in order to have a button add a row to a table without reloading the entire view. Everything-in-the-browser is most-stuff-done-wrongly.

When did we start hating desktop software so much? Editing my spreadsheets in Firefox must be what insanity feels like. The technology of the web is full of such untidy crapness. I can just about live with the idea of the uber-client, but web browsers aren’t it - at least not when everything happens in HTML. By all means make pretty much everything centralised and client-server, but for gods sakes allow for the fact that you need a richer client experience than web pages.

Which brings me to my point: the experience is the thing. It’s a sore day indeed when I have to concede that stuff like OpenLaszlo (apps in Flash, yuck!) makes more sense than web pages for a lot of purposes. But that’s because it provides a richer experience for the user, and it’s for the same reason that there’s a perception that the sacred HIG has been abandoned recently. What we’re seeing is the emergence of Applications 2.0.

Everyone and their sister, and their sister’s dog, has chimed in on the HIG thread (Gruber, Tsai, Jalkut, Stevenson), and it’s not lost on me that I used to be one of the HIG die-hards. Witness the nostril-flaring indignation of my NSSchizophrenicControls post way back in February 2003! I just don’t feel that way anymore.

As someone noted amidst this recent thread, the single guideline at the moment would seem to be: does this look good? That’s of course a huge oversimplification. The thing to realise is that, whilst we’ve all been distracted by the web and the idea of putting everything online, something has happened in the applications space - on your very desktop. The desktop isn’t going away anytime soon, but I think that perhaps it had a serious case of envy of the web for a while there. No more.

Doing things on the desktop is still usually the right way. We can gain a lot from the abilities that networks give us (centralisation, roaming, sharing and collaboration, redundancy, backup and so on, to name but a few) but those things aren’t the be-all and end-all of software. Apps are about the user experience, and that’s one of the big areas in which the web is truly terrible.

Web apps are backwards in so many ways. You check for the form being submitted before you display it. You recreate the entire page to report errors. You go to extraordinary and flawed lengths to maintain state of any kind. You reinvent basic things constantly. Interoperability must be explicitly and painstakingly developed. Debugging is generally awkward. And so on.

Yet the web, and Web 2.0, has been the focus for quite a while now, and now we supposedly have an abandoning of the HIG on that bastion of quality user experience, the Mac desktop. Are we user-experience afficionados doomed? Not really. I think that the perceived abandoning of the HIG actually reflects the changing software eco-system out there.

We’re all demanding a much richer user experience than we ever have in the past; the baseline has gone way up. The problem is that a “rich” user experience, whilst not quite subjective, doesn’t generalise as easily or as well as we might wish. It’s just not possible to give all the standard controls all the capabilities they now need in order to be truly ultra-usable in all situations.

Hence, there are more and more custom controls, because a rich user experience is specific to each app, and there’s more and more enhancement work to be done in order to meet the user-experience demands of your users. The standard stuff often isn’t even enough anymore. This is just survival of the fittest. You’d better be willing and able to customise and enhance your buttons and controls and windows to provide the experience your users think your app should have, or you run the risk of perceived mediocrity - regardless of your actual functionality.

This is Applications 2.0, and it’s light-years ahead of Web 2.0. Web 2.0 is mostly an exercise in how much of the traditional client software experience we can coax out of the web. This is of course a fundamentally flawed approach, but it’s necessary for now and the foreseeable future, because there’s no time to stop building things and think about how we should be building things on the web.

That’s not true on the desktop, and whilst the ante has definitely been upped for the desktop as well as the web, it’s on the desktop that it’s happening in a more controlled and controllable manner. We at least had the HIG, and we still have it as a foundation. You just can’t expect to compete effectively anymore if the HIG is all you have.

Developers, I think it’s time to stop lamenting some imaginary lost age of innocence where putting the default button at the bottom-right of the dialog was enough to guarantee a place in Heaven. Step up and meet the Applications 2.0 challenge. Your unadorned NSTableViews and aqua pinstripes are no longer welcome here.

This isn’t about going back to the painful days of old where the coolest apps were “skinned”, or had a “real appliances look”, or such hackery-pokery. This is about enhancement; it’s about powering-up the standard stuff and giving the user more than the default instead of just pale imitations for the sake of visual novelty. So what if your metallic pushbutton looks a bit different from mine? I know it’s a pushbutton, and I will know immediately if it violates my expectations or fails to deliver functionality that I intuitively expect to be available.

Apps 2.0 development means that your project is a collection of sub-projects even moreso than before: your enhanced NSTableView for round-ended selection highlighting and badged drags. Your custom NSTabView to reflect the fact that your writing app uses a pencil-and-paper visual style, and you want your documents to really look like documents in a filing folder. Your NSTextView subclass for lined notepaper. Your low-contrast alternate controls for the full-screen, don’t-disturb-me-I’m-writing-here interface mode. Or whatever.

The kid gloves are off on the Mac desktop now. Enhanced controls (a term I prefer to “custom” or “non-standard” or “inconsistent” controls) are everywhere. A glance through my apps folder reveals loads of examples (Awaken, Cha-Ching, Comic Life, Delicious Library, Inbox, Journler, Mindburn, Mugshot, Newsfire, Notebook, Omni*, Rapidweaver, Sandvox… etc). And a whole hell of a lot beginning with “i”.

I’ve written some Cocoa source code from time to time and made it available as open source, as you may know, and far and away the most successful stuff (in terms of use in apps) are the UI elements, TunesWindow being the clear leader. People want such controls, for visual distinction and a competitive edge, but they also want enhanced functionality because the vanilla NS* controls are seen as mediocre at this point.

So, roll your own enhanced versions of NSPanel for all I care. Implement yet another Burn button. But do it for the sake of enhancement and improvement, for distinction and refinement, and do it properly. The new generation of Mac OS X desktop applications have vastly raised the bar in terms of user experience, and it’s time to get into a new mindset in order to keep delivering an improved experience for the user, rather than stubbornly sticking to the letter of guidelines which are just that: guidelines. Great usability is a synthesis and an artform; it’s not the result of running through a set of rules and equations. That’s never what the HIG has been about.

So, the HIG isn’t dead at all; it’s just been realised as only providing basic competence. The divergence from the HIG, for the right reasons, is where the ever-moving cutting edge of usability lives. That’s exciting and invigorating, and it renews my passion for the Mac desktop as an example of what software can be.

That’s Applications 2.0, and it’s all good.


3 Comments

JG
25 October 2006 @ 10pm

Matt,

as I was reading this and nodding my head in agreement, I also couldn’t help to wonder about Win, KDE, GNOME, et al users.

While the Mac desktop certainly appears to be undergoing some kind of renaisance where form is rising dramatically in its importance vis a vis function, potentially resulting in a much richer user experience, is the same happening anywhere else?

Not that I expect that you should have the answer for the evolution on other platforms but I thought I’d just put this out there to see what other viewers might add..

It’s kinda interesting, the NeXTSTEP look was some pure Bauhausian concepts incarnate: functional, clean, inexpensive - Gropius would have approved. And now, upon that essentially self-same platform there appears to be an emergence of software as art, at a level above the code itself. UIs are looking pretty swanky: brushed metal, polished metal, glassy buttons, glossy buttons, burnished high contrast woodgrains - appointments I’d like in my next touring car.

Or maybe.. just maybe.. everyone that is producing these ‘pretty’ apps are doing it because of the void in the HIGs and that thru some amazing amount of effort John Geleynse and company will release “something wonderful” as part of the “secret stuff” yet to be disclosed in Leopard. Or maybe not.

-jeff


Jimbo
29 October 2006 @ 12pm

Interesting points Mr G… and it’s probably at a good juncture when a ot of larger websites in larger organisations are looking to jump over to all this new fangled 2.0 technology.

We’ve been looking at it our end too… and it’s principally met with shaking of heads of dismay from the tech-heads. What’s even more alarming is that the people who are the triggers for change within the organisations wanting to bring about the change (ie. client tech-heads) think that Web2.0 is purely about AJAX and nice graphics. Sure it’s part of it but it’s not what it’s all about.

I recently conducted an evaluation into the dev of a portal (one of my parting biggie projects) which was to be Web 2.0. Sure I kept all the collaboration and democratic content contribution stuff in there but most of the AJAX popuppy window nice wee jumpy stuff was all papped… you know why? Because given a bit of consideration there was a simpler, less code intensive and more elegant way to do it.

That said… some of it was kept in… I think there’s value in a wee popup login tab (keeps you on the same page) without the worry of backtracking and for adding comments to the ends of content articles. Nothing drastically wonderfully interactive but nice ‘wee’ touches nontheless. You’ll see that wee is highlighted as I think it’s the wee things that are best done this way - not the whole UI.

Another interesting point too… Google advocates of that whole pageless application setup still run their analytics platform in yep - Flash. So your argument with Flash may well be valid… it definitely does seem to be a good platform for these webapp types of things - up to a point. I recently dusted off a few data driven Flash apps I had done back in the days of long ago… and they still felt as clean and easy to use as they ever did.

Anyways, as for the webdev stuff - aye I understand you completely. That’s why I am fcuking off to live in the world of - oh look there’s a (person/riot/mountain/car/plane), I think I’ll point my (Nikon/35mm Minolta/Russian Camera) at it and take a picture.

The money might be awful - I might even go bankrupt - but at least it doesn’t involve the numbers 9 and 5 and the Monday morning phrase - ‘Good weekend? Shit I’m 50!’

Sounds like a no-brainer to me.


iloogery {Web, App} 2.0 «
21 March 2007 @ 12am

[...] {Web, App} 2.0 March 21st, 2007 — cal Have been thinking more about the future of web 2.0 recently. [...]


Leave a Comment

More RoundedBox updates Software Birthdays