2007 seems like it might be the year that webapp UX tries hard to get that much better.
Ruby, and Rails along with it, made it bigger last year, and JavaScript libraries, from the developer-friendly JQuery to the well-documented YUI, grew up.
This year, after wondering why people flocked to the web, the desktop took a hint from HTML -- the last two-letters at least -- as MSFT finally got XAML, version one, out the door, and Adobe brought us MXML, with Flex and then Apollo.
jin'sync, so far, has been a short experiment in helping you keep in sync, Google Calendar to OS X iCal (a JRuby / GData hack), 30boxes and Gmail on the dock (a XULRunner and now Apollo hack), and just a few days ago, a script I wrote which lets you backup your Facebook photos.
And as I write this, JRuby will hit version one soon enough, and news of SlingShot -- a way to bring Rails-based apps to the desktop -- is spreading here and there.
Most of what you see here are hacks, I admit, but there seems to be a greater thread. In the last few months, I've come up to speed on JRuby and Camping, Hpricot and Apollo, Flex and XULRunner, WPF/E and GData and REST and JavaScript and AJAX and OpenID and... yes, the world wide web of apps is changing once again.
Yesterday, I couldn't access gmail for most of the day, and it sucked. I'm not aware of any offline gmail applications right now (although I bet they are coming soon), but I'd like to give it a try some time.
How shall it be done?
The last "war" fought on the web was a browser war, Netscape versus Internet Explorer, but this time, the battles will be fought /within/ and /outside/ of the browser proper. How will we interact with webapps within the browser and outside of it?
Will it be:
1) (MSFT) Vista / WPF; IE7 / WPFe
2) (Adobe) OS X / Apollo; Safari / Flex n' Flash
3) (Moz+) Ubuntu / XULRunner; Firefox / AJAX
There's plenty of people writing about WPF(e) and Apollo (Flex), so here I'll write mostly about XUL.
I stopped by the Mozilla foundation headquarters last weekend and listened to the Moz guys talk for a while.
They cited XUL dark matter and yet said they're not sure if they're going to make XULRunner a first-class platform, "if [XULRunner] is something [Mozilla is] going to try to support."
This is not a good sign.
Comments on the "XUL dark matter" blog post bring up some of the big issues in XUL-based application development:
- Error reporting / debugging sucks
- Tools suck (hard to set up Venkman, Firebug)
- App deployment is hard (making installers is not documented. you can do XPI for extensions, but not easy for applications.)
To which I'll add:
- Not a lot of desktop integration with the system (a la IBM Sash)
- XULRunner is not a stable platform, APIs not frozen
- XUL mainly designed for Firefox
- Not much of a security model (be careful about your chrome)
- Look-and-feel is not native
- Less than one developer supporting XULRunner (!)
- Tabbed browsing not easy to move to XULRunner
- XUL IDEs? "this is a touchy subject"
- Did I mention security is hard? Sandboxing, apparently, doesn't really work.
And finally the Moz guys will find it pretty tough to compete with great UX opportunities found in the Flash/AS and WPF/CLR platforms, as Tamarin won't hit until 2008 and Moz Canvas3D is the alphaest of alphas.
The FF3 offline-support carrot seems nice to dangle, but these aforementioned issues would leave me to believe that XUL(Runner)/Mozilla *won't* be a viable first-class dev platform in 2007 (for anything but Camino and Uglyfox).
Sorry.
Now, there are five-ish companies building on XUL, but five projects does not a viable-platform-ecology make.
Ben Bucksch has said that XUL only gets away with it because it has no vendor lock-in, and I'm afraid he's right.
I've been talking to _why and others about the idea of building an uberconsole for Ruby, and I suppose when I think about it, avoiding vendor lock-in does have some appeal, but pragmatically, will it be enough?
Mozilla's embedding story doesn't seem to have gotten much better -- contrast with WebKit -- even though I recently got JRuby to half-embed Mozilla by way of JavaXPCom and mozdom4java.
Some part of me wants to say, yes, Mozilla/XUL will make it, but the richness (graphics / video / animation, usable interface markup / widgets, developer community) of WPFe/Flex, the WPF/Apollo deployment stories, and their security models, debuggability, desktop integration tales, and at-least-one-developer statistic make it hard to say, with puppy-fox-eyes "please don't hurt the web: use open standards"...
x-posted to Ryan's ZDNet:
"Inside, Outside, Browser wars"
As I mentioned on jinsync.com, the way I think about it is that the new turf for (web)apps isn't the browser space, it's the space inside the browser and outside of it.
With the introduction of Flex, Adobe is making it easier for the Elvis and Einsteins (MSFT personas) to adopt the richness of the SWF/ActionScript runtime.
This richness is available inside the browser, like WPF/e on modern browsers (FF+IE) and modern platforms (XP/OS X), with mobile support to follow.
But, it's also available outside the browser. Let's face it, the browser -- HTML / CSS / DOM / JS -- is here to stay. What's up for grabs is not the browser space -- those technologies are workable enough -- but that "middlespace" between desktop+offline and web+online.
This outer space includes but is not limited to a non-trivial security model (not just the same-origin policy), file system access, 3-D and hardware accelerated 2-D / audio, dock / systray integration (cf. IBM Sash), an offline story, deployment and auto-update hooks, application signing, (un)installation, versioning, and attention management.
I should point out that Adobe does sell Flex Builder, an Eclipse-based IDE, which can be a great help, I would guess, in writing Apollo apps.
On the MSFT side, Redmond has Blend and Expression Web to counter Macromedia's Flash and HTML toolset, and of course the venerable Visual Studio to match wits with Flex Builder and Eclipse.
~L
inlinks
Thanks for the link love, Ryan.
Blogs you should read if you're interested in the future of our collective HCI UX:
Ryan Stewart - RIA
http://galbraiths.org/blog
http://www.starkravingfinkle.org/blog/
http://www.quietlyscheming.com/blog/
http://ajaxian.com/
~L