GMail's Conversation View and UI Scalability

On April 4 I wrote:

What’d really kick ass: a desktop app communicating over HTTP to my Gmail account (like Outlook Express communicates with Hotmail). Dredging through long conversations over a browser will not be fun, I assure you (anyone tried really long threads on Google Groups?).

…to which a couple of people have written over to say that they’ve been trying out Gmail’s conversation view, which in their opinion is the greatest thing since sliced bread and is tons better than Google Groups’ threads.

The problem here is one of UI scalability: newsgroups often have very large threads (100+ messages at 7+ levels of nesting are not uncommon) unlike personal email, where 25+ messages at 3 levels would be a big deal. Gmail’s “flat” conversation view is ideal for personal messages, but it won’t induce folk who subscribe to high volume mailing lists like india-gii or debian-user.

One other thing: Gmail should really consider a SOAP API to their compose interface. It is still far easier to send a message using Hotmail (using Hotmail’s Outlook Express integration), complete with a decent editor for HTML email – something that the current Gmail beta just can’t do yet. Of course, what’d be really good would be an IMAP/HTTPMail interface to non-archived email in one’s Gmail account.

Writing Interfaces 2

Incidentally, one of the reasons Dave’s pages have the visual “mix” that he talks about is that his editing environment is a very capable one. Radio/Frontier IMO has probably the best outliner in the world, and Dave is really able to reap the benefits of its rich UI to show off Scripting News to a level of polish mere Radio/Blogger/MT-wielding mortals can never achieve. Even rich clients like w.bloggar IMO constrain you to a per-post view of your data, while Dave’s outliner gives him a page-level view of what he’s writing, giving him a unique ability to create flow as nobody else quite can.

Writing Interfaces

Dave:

What if you just want to link to something, should that require a whole post with all its attributes? It’s a matter of user interface in the end. If MT made it easy to post and update a news item that was link-blog-like, people wouldn’t need to invent a way around it. But that would break the relationship between the feed and posts. Oy what a mess. … they’re working around the model of longish posts with lots of visual overhead (a model also implemented by Blogger, Manila and Radio, so this isn’t a dig on MT).

As Dave says, it is a matter of interface in the end. Smart templates (hide the title when the post has none, tweak spacing for untitled posts, etc) and a bit of CSS can work magic on sites like the Scobleizer, which contain occasional lengthy posts and masses of links.

In Movable Type, for example, I’d love to see:

<$IfNotBlank$><$MTEntryTitle$><$EndIf$>
<$MTEntryBody convert_breaks="0"$>

…but MT can probably not grok IfNotBlank yet.

Accomodating Unreasonable Requests: Ray Ozzie's Take

Ray Ozzie on nondiscretionary controls:

For years at Lotus, when working on Lotus Notes, customers kept asking for a feature that would enable the sender of an eMail message to “Prevent Copying or Forwarding” of a message. We kept explaining that there was no practical way to implement it. We could block the Print Screen key. We could disable the Forward and Reply and Export and Save As menu items. But because we couldn’t block any programmer from writing a trivial add-in (using the API) to display or extract the email, we resisted implementing the feature for years. Ultimately, we relented due to the combination of competition and customer demand, and the feature exists in the product today.

Setx Sucks

If something as simple as setx CLASSPATH %CLASSPATH%;d:\jars\foo.jar doesn’t work, I won’t use it (All I want to do is globally set environment variables from the command line). I’ll probably cook up a quick Perl script for this, using Win32::Registry.

Update: My blushes. The reason setx seems to not work is because NT’s console will not reload the environment after a program changes it — opening a new console shows the changes just fine. Bad usability, but setx isn’t to blame — cmd.exe really needs a Unix-style export internal.