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.