InfoQ

News

Is Stream-oriented a better UI paradigm than Document-oriented for today's knowledge workers?

Posted by Sadek Drobi on Jul 11, 2008 04:27 AM

Community
Architecture
Topics

The mainstream approach to user interface has recently been questioned by Bryce Harrington who believes that “the prevailing UI paradigm today […] built around the notion of document authoring” is not appropriate for what most people use computers for. He argues in effect that knowledge workers more often deal with streams of information rather than traditional documents:

Really, what I mostly do today is stream management. And I suspect this is true for the vast majority of people. I don’t deal with writing documents, but with changes to documents. I put comments onto things. I slap patches onto things. I tweak the states of things. Once in a rare while I may author a completely new thingee, but even there I usually end up working with it as a stream of changes that I build up over time (and usually in collaboration with a few other people who stream changes to me).

Harrington believes that, with regard to this, many tools offered by today’s interfaces are irrelevant whereas they are not at all instrumental in helping users staying atop all the streams. What actually handles streams are cron jobs, “a stodgy old *server* tool” that non-technical people are not acknowledgeable about. To remedy to this, Harrington advocates for changing the underlying paradigm of UI:

Since the purpose of our desktop UI is to make our work easier and more efficient, then if today's knowledge workers are, like me, more stream-oriented than document-oriented, then doesn't it stand to reason that we ought to re-think our UI design to optimize it for making stream management easier and more efficient? How would such optimization be done? How would such a UI look and feel? What kinds of toolkits would be needed?

This post triggered a lot of reactions on the author’s blog and on reddit even though it was pointed out by many commentators that this idea is not really new. Many mentioned Lifestream project led in the mid-nineties at Yale University. Based on the conviction that today desktop paradigm is not the optimal way to organize information, Eric Freeman under the direction of David Gelernter developed novel software architecture:

Lifestreams is built on a simple storage metaphor --- a time-ordered stream of documents combined with several powerful operators --- that replaces many conventional computer constructs (such as named files, directories, and explicit storage) and in the process provides a unified framework that subsumes many separate desktop applications to accomplish and handle personal communication, scheduling, and search and retrieval tasks.

In the aftermath of this project, Steve G. Steinberg has analyzed the advantages of the approach based on temporal dimension that is ignored by most UI and absent from many alternative methods of organizing information rather focused on spatial, semantic or network aspects. First of all, Steinberg stresses that “unlike spatial and networked schemes, which require users to come up with their own, highly arbitrary classifications, and unlike semantic schemes that place the burden on the computer, chronological ordering is clearly defined and unarguable.” Moreover, this kind of UI facilitates information search because “instead of following links or guessing keywords, we can simply scroll back in time, using our memory for hints”, which in turn allows to rebuilt the context of the researched information. Finally, as highlighted by Steinberg, “chronological ordering underlies many types of information”, e.g. files, emails, URL of visited web pages, and this makes Lifestreams “incredibly general and flexible”.

Even though commercialization of the project’s results was not successful, many recent products mentioned by commentators are based on similar concepts: Mac OS X, services like LifeInLine and LifeBlob, Sugar interface by the One Laptop Per Child Foundation, Miro interface or upcoming Microsoft's Live Mesh. It looks like the momentum is growing for a shift towards stream-oriented approach to UI. Other technologies and tools that may be instrumental, i.e. dataflow languages or functional reactive programming, are summed up in Bryce Harrington’s follow up to his own post and on a wiki set up by Rudd-O.

Google's in this game too by Ryan Platte Posted Jul 15, 2008 8:06 AM
  1. Back to top

    Google's in this game too

    Jul 15, 2008 8:06 AM by Ryan Platte

    Gmail is a very vividly realized implementation of this concept. When they added chats, the chats merged right in with the rest of the timeline. It's enormously powerful.

    Google's Web History is another.

Educational Content

Bindings, Platforms, and Innovation

This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.

Orchestrating Long Running Activities with JBoss / JBPM

This article explores the use of JBoss and jBPM to implement design solutions that effectively address the issue of orchestrating long running activities.

Neo4j - The Benefits of Graph Databases

This presentation covers the use of graph databases as an optimal solution for data that is difficult to fit in static tables, rapidly evolving data or data that has a lot of optional attributes.

Realistic about Risk: Software development with Real Options

This session introduces Real Options and shows how it can help in running your project. Real Options is a decision-making process that can be used to manage risk.

Communication Flexibility Using Bindings

This article discusses the use of bindings on services and references (including the instance of non-configured bindings) as the means to implement SCA communications in a Web and SOA environment.

Writing DSLs in Groovy

After a short introduction to DSLs, Scott Davis plays with the keyboard showing how to approach the creation of a DSL by typing working snippets of Groovy code that get executed.

Scaling Agile with C/ALM (Collaborative Application Lifecycle Management)

IBM Rational and InfoQ present, Scaling Agile with C/ALM, an eBook showing organizations how to become “finely tuned software delivery machines” by enabling team integration and scaling.

Concurrent Programming with Microsoft F#

Amanda Laucher presents a real life enterprise application written in F#. She shows actual code snippets, explaining design decisions and suggesting how to use some of the F# constructs.