pmuellr is Patrick Mueller, Senior Node Engineer at NodeSource.

other pmuellr thangs: home page, twitter, flickr, github

Wednesday, February 25, 2009

web ui progress

The hotness of the day (well, yesterday) appears to be video at (permalink at Viddler here). It's technically very impressive. But I'm also a bit saddened. I worked on similar technology 15 years ago, for desktop applications. You know what I'm talkin' 'bout. I won't say the word.

Sad because, even 15 years ago, web browsers were around, in some state. Why has it taken this long for things to progress this far? It's nuts. Seems like a lost decade, to me. Of course, it's not like we were even really innovating in this space, back then, either. Interface Builder goes back even further.

Feh, always with the rock throwing. So let me shine a little brightness, as well.

First and foremost, hats off to the folks at Getting all this to work on the clumsy web browsers we use today is surely no small feat. It looks gorgeous. The layering is interesting, built on Cappuccino and Objective-J. Stuff to look into.

Two things I saw in the demo that I liked, in terms of UI constructs: "Layout Support" and "Split Views".

The "Layout Support" appears to be similar to what we used to call "Form attachments", back in the day, that allowed you to specify how widgets were attached to things - other widgets, parents, etc - and how they would resize. Ours were based on Motif's XmForm constraint resources. (Aside: isn't it hilarious that the first reference I found to XmForm was in the lesstif online doc?) Although kind of crazy complicated, and really easy to screw up when you were coding by hand, and requiring you implement a constraint solver IIRC, you could do some incredible stuff in terms of making windows full of widgets which responded in a nice way to resize requests. And even just doing (non-absolute) layout by specifying which things were next to other things, and letting the system figure everything out based on default sizes.

"Split Views" are similar to what we called "Split Panes" (think that's what we called them), that were a late edition to our product, but to me added the last little bit of UI goodness for users. Instead of providing either fixed width, or perhaps proportional width child windows inside a parent, Split Panes gave users the ability to resize those child windows as they saw fit. After they got added to the product, there was really not much else that I found I needed, to be able to whip up a nice little UI with intelligently resizable innards. Separate the top level bits of a window into Split Panes, and then layout those children using Form attachments, or perhaps recurse with another Split Pane.

Sure would be nice if these were native capabilities provided by our browsers. CSS (and Tables!!) and Framesets just don't cut the mustard. Ah, not to worry, we'll have a <video> element we can use in our applications soon, and that will more than make up for the lack of these other, much less interesting capabilities.


patrickdlogan said...

yeah, I have trouble getting excited about this. great work, good on them. but sheesh. really??? where does it end? we need something new... not the browser (or not _just_ the browser)... but not Interface Builder ca. 1988 either.

Patrick Mueller said...

My gut tells me that rather than re-inventing windowing level controls in HTML, it would be better to just use familiar HTML bits; maybe some kind of hybrid story where we have a better "pane" story, where each pane is an independent blob of HTML, or something. I am, for instance, quite happy with UIs like Google Reader, which aren't modelled after the desktop UI experience.

But ... dunno. I really just want an easier way to build non-trivial GUIs, in a browser. If it means abandoning a more purist HTML outlook, and going with more of a windowing control story, because that's easier, I may well be willing to move to the dark side.

Lots of other issues to deal with, beyond just the simple "desktop-y" vs. "HTML-y" aspects. Accessibility, for instance. Nothing is simple.

Open-Xchange said...

Couldn't agree more. Where has all the time gone. Remember Digitalk Parts? That was even before VAST.

Progress is not a straight line...

Rafael Laguna (former micado, now Open-Xchange)