My mother is an average computer user. Not a power user, not an IT pro, just an average user. She teaches at college and does research. Her computer needs are mostly limited to email, reading scientific papers off the internet or in PDF form and using a word processor to write her own papers and question papers. Occasionally she does some light graphics work, mostly just labeling photographs. She has a large number of files on her folders, once again mostly scientific papers or notes related to her work. Every once in a while she forgets where she put a certain PDF document, as well as what she named it. She remembers what it was about and has a vague idea about when she saved it. Then she comes to me and I have to go look through her dozens of folders, with Google Desktop search as my pal, and after a good deal of pain, I finally stumble upon the culprit.
What does all this have to do with file systems? Well, everything. Today’s file systems work in a strictly hierarchical manner, one file goes inside another. While that may be very good for some sorts of things, it certainly isn’t the best for everything. On top of that, there is currently only one way to find a file: it’s name. Which means that if you’re someone like my mother whose typical PDF has a name like “RNA acceptor protein reaction mechanism in Axolotl Mexicanum” and if you forget the filename, you’re pretty much stuck. Sure tools like Google Desktop can help you even if you remember a fragment of the filename, but that is still a stop-gap measure to the filesystem’s underlying fault: a total lack of flexibility. Does a picture of my mother’s regenerating newt go in her “Regeneration” folder, or in her “Current Project” folder or in her “Animal studies” folder? Or should she make copies and place one in each folder? If she makes a change to one, she’ll have to remember to copy it again. Sure she could make one copy and use a link or shortcut, but I think that might be too complex for her to handle.
Then there is the question of versioning. Anybody who has had to write a long detailed document, will know about what I am about to describe. You start on day 1 with an innocently named Doc1.doc, then on Day 2 you add another paragraph and it becomes Doc2.doc, then the next day you go to Doc3.doc and Doc4.doc, so on and so forth. Keep track of the versions of your file is boring and repetitive, it’s something a computer should do. Sure there are a number of excellent version control systems out there, but why they are all fairly complex to use. Why isn’t versioning handled by the place where all the versions are kept, namely the filesystem?
The typical file/folder view of data doesn’t easily fit everyone’s needs. If you’re a novelist, how do you write your next book? Is the whole book one big file? Does each chapter get it’s own file? What about the various notes and random ideas that you deal with? How many files do they go into?
Today’s filesystems are inadequate because they force us into a strict relationship with our data, a relationship that most people are not very used to. While they do get the job done (for the most part) there’s lots of room for improvement. Tomorrow we take a look at some of the changes to filesystems that can make them a whole lot easier to use as well as how close we are to implementing those changes.