A few days ago, I came across an article called The Second Coming — A Manifesto by David Gelernter. Gelernter is famous for being a co-inventor of LifeStreams, which was a really cool PIM system based on time-order streams of documents.
In The Second Coming, written in 2000, Gelernter writes about a coming revolution in computing:
Computing will be transformed. It’s not just that our problems are big, they are big and obvious. It’s not just that the solutions are simple, they are simple and right under our noses. It’s not just that hardware is more advanced than software; the last big operating-systems breakthrough was the Macintosh, sixteen years ago, and today’s hottest item is Linux, which is a version of Unix, which was new in 1976. Users react to the hard truth that commerical software applications tend to be badly-designed, badly-made, incomprehensible and obsolete by blaming themselves.
He dedicates an entire section of the essay to the problems he sees with the current file-and-folder organizational model:
27. Modern computing is based on an analogy between computers and file cabinets that is fundamentally wrong and affects nearly every move we make. (We store “files” on disks, write “records,” organize files into “folders” — file-cabinet language.) Computers are fundamentally unlike file cabinets because they can take action.
30. If you have three pet dogs, give them names. If you have 10,000 head of cattle, don’t bother. Nowadays the idea of giving a name to every file on your computer is ridiculous.
31. Our standard policy on file names has far-reaching consequences: doesn’t merely force us to make up names where no name is called for; also imposes strong limits on our handling of an important class of documents — ones that arrive from the outside world. A newly-arrived email message (for example) can’t stand on its own as a separate document — can’t show up alongside other files in searches, sit by itself on the desktop, be opened or printed independently; it has no name, so it must be buried on arrival inside some existing file (the mail file) that does have a name.
I totally agree with the points he makes. These are things I’ve been complaining about for years, too.
Gelernter then goes on to describe (at a very high level) the organizational model that we should be using on computers:
36. File cabinets and human minds are information-storage systems. We could model computerized information-storage on the mind instead of the file cabinet if we wanted to.
37. Elements stored in a mind do not have names and are not organized into folders; are retrieved not by name or folder but by contents. (Hear a voice, think of a face: you’ve retrieved a memory that contains the voice as one component.) You can see everything in your memory from the standpoint of past, present and future. Using a file cabinet, you classify information when you put it in; minds classify information when it is taken out. (Yesterday afternoon at four you stood with Natasha on Fifth Avenue in the rain — as you might recall when you are thinking about “Fifth Avenue,” “rain,” “Natasha” or many other things. But you attached no such labels to the memory when you acquired it. The classification happened retrospectively.)
Our minds are extraordinarily complicated things. Should we really be building software that is modeled on that kind of complexity?
Modeling machines after nature is rarely the best approach. Our airplanes don’t have flapping wings, and cars and bicycles are not “running machines.” You can also think of spoken and written languages as “tools”, ones that have an intimate connection with our thought processes. If languages were modeled on the way the mind works, we would be speaking in sentence fragments, and constantly making up new words to easily refer to concepts and past events. Would anyone argue that languages could be made better by making them more flexible, more malleable, and a better match for our internal thought processes?
To me, modeling computers on our minds is just as much of a red herring as modeling them on file cabinets. Let’s build software for how our brains work, not like how our brains work. The best tools are the ones that support and compliment our natural abilities. My brain doesn’t have an internal calendar or to-do list, but those turn out to be remarkably simple and effective constructs that support my goals of accomplishing certain tasks. They are effective because of how simple and straightforward they are, and because they allow my brain to focus on what it does best (which is not remembering absolute times or lists of items).