No more ls
I don't want
ls anymore. For that matter, I don't want directories anymore; I'm not even sure I want files anymore, but let's leave that one alone for now. So, before you conclude I've taken leave of my senses: of course, I don't mean just deleting the /bin/ls binary, and ripping functionality out of all existing filesystems. All of that can still remain on a low level, and that may well prove useful in implementing a higher-level layer; what I mean is that I no longer wish to be concerned about all of that anymore. Why not? Well… story time!
Once upon a time, the web was brand new and unknown; indeed, the internet itself was relatively small and new and experimental. You could easily keep a list of every website around, and so people just did that. Over time, the number of websites grew to the point where keeping a flat list was no longer practical or useful. Enter Yahoo! Other directory projects existed, of course, but Yahoo! was the most successful and well-known; they built a directory of (just about) every website, broken down into an impressive array of categories. More time passed, and finally the directory system began to break down too; it was simply not possible to list and categorise every new website due to the rate at which new sites were popping up. And thus was born the age of search engines; the technology has improved today, and you'll probably be using Google instead of Yahoo! — but today, when you want to find something on the internet, the first step is generally visiting a search engine, not navigating some directory-like site.
So, that's what I want for my own filesystem too; I don't want to deal with categorising a file in my directory structure, and I don't want to deal with digging through that structure to find it again later. I just want to associate sufficient metadata in addition to the data itself, so that I can search for it later and find it without difficulty. What this really amounts to is decoupling the view of the data from the data itself; instead of hardcoding one particular view (ie. the filesystem directory structure) into my data, I can instead choose to view the data any way I want at a later stage.
How do I get there from here? I guess that will have to wait for my next post.