[ge-talk] Search, Don't Browse
Ville Koskinen
vrkosk at utu.fi
Fri May 26 08:25:53 BRT 2006
I'm a bit torn on this one. The explanation may be a bit lengthy, and
I'm sure I'm paraphrasing lots of different people unknowingly, with
similar concerns. So, apologies to all of you.
My first computer was Commodore 128. It didn't have a harddisk, but it
had floppy disks. The floppy disks contained sequences of bits called
files. I don't quite remember if you could create directories. However,
when you had a file on disk and knew its name, you could be absolutely
certain that you *knew* where the data was physically.
Of course, few users really knew how it was laid on the physical media,
how the read/write head had to move between sectors to get to the bits,
but it was the concept that was important. You had a disk, which you
could hold in your hand, and you had files on the disk. You had a way
to point exactly to the location where the data lied.
In the following years, I had a variety of PC's, Amigas, Sun
Sparcstations, and whatnot. Each and every one of them used the
metaphor of files and directories; that you had files which were
collected in a directory hierarcy; that each file had a place of its
own on the disk, and that this place was unambigious. Of course, UNIX
has links, both hard and soft, which violates this metaphor a bit, but
that's a side issue. They are more an exception than a rule. (I bet
many people think of them as references in the traditional filing
system.)
The metaphor of files dates back to the very first commercial
computers, I think: 1960s, or so. It was directly adapted from the way
physical papers were organized in physical containers, called files.
Files themselves were in a file cabinet. You had some sort of a filing
system to create indexes and directories, so that you didn't have to go
through each file when searching for relevant information, but could
take a shorter path through the directory.
Of course, since computing was something entirely new, there were no
ready concepts to employ. How should we organize data inside a
computer? How do we implement a system where it's easy to get to the
data? Hey, let's use the filing system metaphor! Everyone knows how
that works.
As an aside, there were an awful lot of systems which didn't even have
directories at first. For example, an early supercomputer CDC 6600 had
only a root directory, even if it was a multiuser system. There were
also systems where the maximum directory depth was two. However,
MULTICS, for instance, the predecessor of UNIX, already had a
hierarchical directory system. (Early PC operating systems like CP/M
had only one directory, too, but that was due to technical limitations.)
I'm getting sidetracked, but the point is that the metaphor of files
and rigid directories is persistant and widely used. (Experienced)
users know their filesystem by heart and know exactly where to search
for a file. When they find it, they know its absolute location in the
hierarchy. Although fewer still know how the blocks are laid out on the
disk, there is still the belief and feeling that the user can *know*,
without doubt, where the file is located. It brings a feeling of
safety.
If I have a book, put it down on the desk, and turn my back to it, I
can be sure that when I turn back again, the book is still there,
provided that there aren't other people around me. The same kind of
feel of concreteness is eminent with a "hard" directory hierarchy.
Users can be sure that when they put down the data somewhere in the
hierarchy, it will still be there afterwards.
Now, don't get me wrong. I'm not preaching for the old system. Haiku
strives to be an alternative operating system, where alternative means
doing things better than they are done now. It would be foolish not to
at least try out something new with how files are organized! But herein
lies the dilemma.
I classify myself as an expert user. I've used files and directories.
I've used databases. I've created databases. A couple of friends call
me an SQL wizard, although they are exaggerating. So, I know that
(relational) databases are a very good way to organize data, because of
the diverse ways you can search for data. I endorse change if it is for
the better.
However, I'm hesitant when it comes to the idea of not having
directories. I have an irrational idea that directories are something
solid and attributes are something fluid. If there were no directories
and I saved a file, where does it go? To the big blob called file
system. How do I get it out? Which attributes should I use? Can't I
just list all the files in a directory?
Using the book example, it is as if the book disappeared when I put it
down and I had to look for it elsewhere to find it. The bookshelf,
maybe, or the floor.
These are irrational fears, but the same questions arise when a novice
user encounters the traditional directory hierarchy! If you don't
believe me, have a look at the following essay (the relevant part is
some way down, but the rest of it is an interesting read, too):
http://www.teacherblue.homestead.com/beginnermind.html
It's by a 50-year-old woman, a college teacher, who is otherwise very
intelligent and literate. I'm drawing the essay into this discussion
not because I want to demean new users, but because the issue is real.
My father, for instance, has difficulties in figuring out how data is
saved and loaded. He's been using computers for years.
Yes, Haiku is not necessarily meant for complete novices, but the
"filesystem = database" metaphor creates similar fears and doubts in
the mind of an experienced user! At least it does that for me, and from
what I've read, I'm not the only one. This doesn't make the metaphor
bad as such, but it raises important questions:
1. If Haiku discarded traditional directory hierarchies, should we have
a compatibility mode where the user is presented with something
resembling directories? If we don't, there is a very high chance that
new users who aren't ready for the change will back off in disgust.
2. Which attributes should a file have when it's created? How do we
locate the file again? "Where" is it saved by default?
3. How does browsing work? Are we given a list of all attributes with
which we can sort the files? Does the user need to type something?
4. How do command line utilities work? What would mkdir do? How about
ls? Should they be removed or extended to support the metaphor?
This is by no means an exhaustive list.
I find the idea of a pure database as the filesystem thrilling, but
also a bit scary. I'll be eager to try it out some day.
--
Ville Koskinen
More information about the glasselevator-talk
mailing list