The article I'm about to link to, by Oliver Reichenstein, is pretty terrible, but it's a good way for me to bring up something I've been meaning to talk about. First, the article: "Apple has been working on its file system and with iOS it had almost killed the concept of folders - before reintroducing them with a peculiar restriction: only one level! With Mountain Lion it brings its one folder level logic to OSX. What could be the reason for such a restrictive measure?" So, where does this crusade against directory structures (not file systems, as the article aggravatingly keeps stating) come from?

Imagine you have two pneumatic tubes sitting next to each other. One leads to local (file system) storage, the other to remote (network) storage. Data is stored by inserting it into one or other of these tubes.

Today's systems require that a client decide which of the two tubes they should drop their data down. Furthermore, these tubes are slightly different shapes, so the client has to do some extra wrangling to fit their data into a particular tube.

This arrangement is acceptable enough when the computer is the client. Machines are great at performing tedious, fiddly, repetitive tasks according to a predefined set of rules over and over again without error or omission - it's what they were designed to do.

However, the same approach really sucks for human clients. People already have far better things to do with their time than micromanage thousands of resources across multiple locations with perfect diligence and accuracy, never mind doing it all via such a primitive, labor-intensive interface.

Yet the only reason humans are having to work with the same set of tubes as the computer is that back when all this technology was being invented, this was the absolute best that could be achieved with the seriously limited resources of the time. Nowadays, we have a wealth of resources spilling out of our ears, but we're still doing things the same old way because nobody's yet bothered to build something better.

What users should instead be presented with is a single, standard tube into which they throw all of their data without any additional fiddling or fuss. That tube then leads into a 'user data management' subsystem, and it's up to that automated system to determine which of the two original tubes is appropriate, and perform any additional fiddling required to store and retrieve the data using that. (And change-track, replicate, synchronize, secure, categorise, translate, share, etc, too.)

For this to work though, you must totally decouple the user from the physical means and methods of data storage. Because the very concept of 'physical' containment - which is what the hierarchical file system is built on - becomes absolutely meaningless in an environment where data may exist in any location [1] at any time, and frequently in several places at once!

--

[1] Some kinds of data might not even end up in a file system, but in [e.g.] a relational/non-relational database instead. All sorts of fascinating new possibilities could arise once the 'single user data pipe' abstraction is in place; computer scientists should be falling over themselves to explore it.