"Whenever there is a conversation about the future of computing, is discussion inevitably turns to the notion of a 'File'. After all, most tablets and phones don't show the user anything that resembles a file, only Apps that contain their own content, tucked away inside their own opaque storage structure. This is wrong. Files are abstraction layers around content that are necessary for interoperability. Without the notion of a File or other similar shared content abstraction, the ability to use different applications with the same information grinds to a halt, which hampers innovation and user experience." Aside from the fact that a file manager for Android is just a click away, and aside from the fact that Android's share menu addresses many of these concerns, his point still stands: files are not an outdated, archaic concept. One of my biggest gripes with iOS is just how user-hostile the operating system it when it comes to getting stuff - whatever stuff - to and from the device.

"Locking yourself into an overly simplistic hierarchical system is a problem too."

But I don't see how supporting a hierarchy necessarily comes at the exclusion of alternate metadata/searching mechanisms? They seem to be complementary.

Of course in existing operating systems, metatags will always be second class citizens, which is unfortunate. But when designing a platform from scratch I think the problem is solvable.

"Part of the problem in this whole discussion is that some people on both sides of the debate think that it's about 'dumbing down' as if people who don't use computers for a living are less smart. They aren't."

Well, I wouldn't have suggested they were, but it was kind of implied when somebody claimed folders were too difficult. I feel that's exaggerated, but even if it is too steep a learning curve, there's no reason new users would *have* to learn about them before they had a need for them anyway. So it seems silly to me to argue "steep learning curves" as a justification for eliminating file folders, as some people have.

"Editing source code for instance is a royal pain on a standard hierarchical file system. I need to use a separate system to keep track of the changes I've made such as CVS or GIT...While i certainly can see the use of organizing my project into hierarchies i may end up with complicated hierarchy structures just to compensate for the shortcomings of the file system."

Who hasn't been there?

However this same problem would happen under a tagging system which lacked versioning as well. The solution is obviously to incorporate versioning.

Q: How do you work with large multi-source projects on a platform that doesn't expose any kind of a file hierarchy?

The trouble with transparent/automatic versioning is garbage collection - when to delete old copies. For source code it's not a big deal, but with photos & video...it can quickly escalate resources. It could be configured differently in each application, but that's inconsistent. What are your thoughts?

However this same problem would happen under a tagging system which lacked versioning as well. The solution is obviously to incorporate versioning.

Absolutely, but part of of the problem is also that we won't know in advance what kind of user scenarios might appear in the future. What we need is something that is completely extensible in every possible way.

Q: How do you work with large multi-source projects on a platform that doesn't expose any kind of a file hierarchy?

You could complement or replace the file hierarchy by a basic project hierarchy. That may seem like splitting hairs but it might make things more easily managed. I won't deny that software is developed in hierarchies to some extent and that there may be a benefit in that.

The trouble with transparent/automatic versioning is garbage collection - when to delete old copies. For source code it's not a big deal, but with photos & video...it can quickly escalate resources. It could be configured differently in each application, but that's inconsistent. What are your thoughts?

People keep saying that this is a problem but in reality on systems like OpenVMS it very seldom is. OpenVMS doesn't have an automatic mechanism for doing a "purge" of old versions (at least that i know of) but a couple of solutions could be used. (I usually just ran a scheduled job to back up old versions of important stuff and just purged the rest.) With a more flexible tagging system however you could specify purges of old versions depending on the type of file you were dealing with.

"What we need is something that is completely extensible in every possible way."

We'll, just as a hierarchical tree is a superset of a flat pile of stuff, the next superset of a tree is a fully connected graph. We could certainly build it, but it's going to be that much more complicated than the tree.

None of this is an impediment to metadata tagging, so I don't think the extensibility argument is a reason to not support trees.

"You could complement or replace the file hierarchy by a basic project hierarchy. That may seem like splitting hairs but it might make things more easily managed."

More easily managed than what? The point is we have a reason to keep these files separate from every other file on the system. In other words it seems to be reinventing the folder.

"People keep saying that this is a problem but in reality on systems like OpenVMS it very seldom is. OpenVMS doesn't have an automatic mechanism for doing a 'purge' of old versions"

Well, the only reason I brought up "automatic" versioning & garbage collection is that otherwise normal users may find it difficult to do manually. Of course knowledgeable people could configure things how they want to, but that just raises the barrier for use and we'll end up with many users not benefiting from the feature.

Even if it wasn't automatic, at least the versioning feature would be there, so I agree that is better than what we have now.