Designing the Future

Sunday, September 25, 2005

Antiquated metaphors

In the beginning, there was the punch card. Actually, I think it was more like a switchboard if you go back to WWII. And I'm not sure what Ada Lovelace used to program the machines made by Charles Babbage (circa 1822). After the punch card came the terminal, or command line interface (CLI). And then, out of Xerox's Palo Alto Research Center (and other places) came the Graphical User Interface (GUI). And it was good. The GUI was popularized first by Apple, and then by Microsoft. Xerox always had trouble making any money off the research done at PARC, and if they'd gotten a patent on the GUI, it would be the Xerox monopoly all the tech people bitch about today.

So lets look at the timeline (limiting ourselves to the past 75 years or so). In the 1940s, we had switchboards and "programming" a computer meant connecting wires to particular combinations of switches. In the 1950s we had punch cards, followed by the CLI in the 1960s. But after the development of the GUI in the 1970s, we stop. Its hard to imagine what could come after the GUI; most of us grew up with it. Perhaps a holographic display like "Star Wars"? Or a more tactile interface like "Minority Report"?

So the 2D GUI, perhaps with slight 3D-ish effects to make buttons and other interface features easier to see, is still the state of the art. But the desktop metaphor that was created around the 2D GUI is beginning to show its age. In the 1980s, hard disks were expensive and held a tenth of what will fit on a cheap memory stick today (there are Swiss Army knives with more storage than a mid-1980s hard disk). When the desktop metaphor was conceived, the average office computer user had floppy disks with a few hundred kilobytes of storage capacity. There are only so many files you can fit in that space. Computers today come with hard drives capable of storing a few hundred gigabytes - a million times more space. Suddenly, there are hundreds of thousands of files on an individual's home computer. How are we to keep track of that many files? Imagine trying to organize and maintain that many pieces of paper.

One idea comes from Sun Microsystems, where they are developing a 3D Desktop called "Looking Glass". But I don't know of many people who believe a 3D desktop metaphor on a 2D computer monitor will be more efficient for a user to navigate than the existing 2D desktops we're already used to. If we had true 3D displays (back to Star Wars), maybe they'd have something more interesting. Until then, I think "Looking Glass" is little more than "Eye Candy".

I don't think the answer is going to be a new kind of interface (though that "Minority Report" thing was pretty cool!). I think we're going to need to re-imagine the metaphor we use to interact with the computer. The files and folders of the desktop metaphor were useful at the time because they were familiar to office workers and they had physical equivalents. Most of today's users have outgrown the limitations of the desktop metaphor; they are ready for metaphors that don't have a physical equivalent, but rather, are based upon concepts.

I present to you, the Project metaphor.

If you think about it, nearly every task you might do in a computer (aside from playing games) can be categorized as a project: this year's taxes, last year's taxes, a report, research for a class or meeting. For the most part, projects are created, worked upon, and then either end or are transitioned into a new project. For example, developing a report on the safety of a new car model. Even tracking your finances can be broken up into monthly (or perhaps annual) projects. In this new metaphor, the computer doesn't show you files and folders (though perhaps they are still available), it shows you the items you have in the current project. These items can be categorized by dynamic keywords which can be browsed in a hierarchy. For example, lets say you're looking at the 2005 Finances project for your family. Keywords might include: Dates, the names of each month, Accounts, each of your credit cards, each of your loans, each of your bank accounts, and the income and expenditure categories you've created in your budget. If you want to see the CitiBank Visa statement for June, you could access it via "Dates >June > CitiBank Visa Statement" or "Accounts > CitiBank Visa > June". And once the year is over, and your taxes are done, you can flag the 2005 Finances project as "Finished", and it will be archived by the computer (compressed, perhaps), and the data in it will not be included in any information searches you perform, unless you specify that "Finished" projects should be searched as well.

Applications could be designed to deal with data alone (an image editor), or projects (a word processor). If you are working on a report, paper, or newsletter project, the application you are using can provide basic image editing capabilities (as Microsoft Word does today) and give you the option to use a more powerful image editor (such as Adobe's Photoshop or Illustrator). As the user, you would not "Launch an application"; instead you would "Display an interface" or "Display a toolset", allowing you to use image manipulation tools developed by Adobe, without ever leaving the paper project environment provided by Microsoft Word.

In terms of the technical implementation, each project would be essentially a database, with some standard tables, and some project-type dependent tables. Each project would be categorized according to metadata associated with it, and instead of browsing folders, the user browses the metadata hierarchy. This allows the same project to appear in multiple browsing paths (as in the credit card statement before). In addition to metadata keywords, the user could browse projects based on type, exact date (created or modified), age, and other intrinsic attributes. Local search technologies (like Google Desktop Search and Apple's Spotlight) have reached the point where it is feasible for the user to search for a project if they are unable to remember how it was categorized (the search would include all data within the projects).

The user should also be able to turn on a version control attribute for each project, allowing the entire history of the project, including the addition, deletion, and modification of data files, to be examined. This would not mean the user could watch each keystroke as it was entered, but rather that the differences between successive "Save" operations are tracked. This type of technology has been used for decades in software development, and its about time it found its way to the mainstream user. While versioning some files (like a home movie) might be expensive (in terms of disk space) even by today's storage availability, most files would incur a relatively small overhead over the lifetime of a project.

There is one type of data that doesn't seem to fit well into the Project metaphor — multimedia. Organizing your photos and home movies, or listening to your music isn't really a "project". Certainly editing a home movie, or creating new music fits well in the project metaphor, but it doesn't make sense to organize all of your photos, movies, or music in a "project". Instead, I see the computer providing a library service, where these types of files would be organized and made available to every project. Email probably fits into this category, as would a user's schedule. When a project should include or make use of one of these library files, it would use a reference to the original (saving disk space) unless the user specifically asks for a copy to be placed in the project. If the library file is edited, the original is saved to ensure other projects that might reference it aren't inadvertently altered by the changes. Projects that are to be copied from one computer to another, or burned to CD/DVD can be automatically made all-inclusive as part of that operation; referenced library files would be automatically copied into the project copy.

But most of that is for sometime in the coming decades (unless someone else comes up with a better idea before I get around to implementing this). Some of it, however, will be incorporated in Whisper. Specifically, Whisper's communities will be able to categorize themselves in a hierarchy that can be browsed by users. Also, users will be able to define keywords and a hierarchy for those keywords; the keywords can then be associated with papers and other files in their digital libraries, providing more flexible organization than can be achieved with traditional folder hierarchies.