“The so-called ‘desktop metaphor’ of today's workstations is instead an ‘airplane-seat’ metaphor. Anyone who has shuffled a lap full of papers while seated between two portly passengers will recognize the difference—one can see only a very few things at once.” —Frederick P. Brooks, Jr.
In 1984, the desktop, with its hierarchical file system, was the center of digital work. Today, new limitations of that model have emerged. The file system struggles to contain decades of work. The file/application distinction forces consolidation of tools, which inevitably entails bloat. As developers are forced to reinvent the wheel, version control and real time collaboration remain unusual, almost 50 years after Engelbart first demoed them.
The library pattern, where content browsing is integrated into the application, tries to remedy some issues, but adds developer overhead and destroys the ability to group content of different types by topic, except as the volatile state of what windows are open.
By merging the spatialization of documents in the filesystem with the spatialization of windows in workspaces, we create a single coherent physical metaphor for how we deal with data.
Further, by adding an archive in which to store projects from which users have moved on, we can re-establish a separation between the workspace and the last 20 years of a user’s work, ending the feeling of working out of a file cabinet that exists today.
By allowing users to switch tools for manipulating data without closing the content, the cost of context switches is vastly decreased, which counteracts the tendency towards consolidation.
To achieve the maximum benefits of this scheme, there’s a rebundling process that must take place. For example, instead of having editing programs solely responsible for displaying files, there is a need for an API that allows handing off the state of an extensible generic viewer between tools. Further, in order to add an archive system, collaboration and revision control, changes to how the operating system relates to files are necessary.
As shown above, real-time distributed collaboration could be folded into the operating system, with minimal application developer effort—both for workspaces and files. Other applications also merit further exploration, including making tools composable, and creating a scrubable history of the system state.