Filesystem Skeumorphisms

A rant about the inadequacies of mixing UI and logic

Your filesystem is a skeumorphism.

It is an outdated metaphor for the days of paper files and folders, which were physical objects that could not be in two places at once, so they had to be copied.

Digital data is not the same, and yet we persist with the metaphor to our extreme detriment. The idea of copying a file is laughable when it can be in two places at once, and yet due to this illusion people still do it - copying a file to another folder just because they want to access it from another place. It is laughable because the data needn't move, but the metaphor did.

You might think that okay, “copying” a file can sometimes be replaced with a symlink or a hardlink, so what? Sometimes you need to copy a file, such as over to a different drive or computer entirely - can't symlink or hardlink that! If only we could!

You see, copying is an essential part of computation, but not in the way that is obvious. Copying a file for the purpose of editing it while retaining the original - this is not skeumorphism. This is necessary for generalized computation because it is part of the construct-and-copy of quines!

What is not necessary is the rest of the limitations of the filesystem. Why should I need to manually copy a file to send to someone else? What about hyperlinks on the internet? Well, that works because the internet is a different metaphor, but then again the internet is just a bunch of files on people's hard drives! This is where the skeumorphism of the filesystem has gotten us.

Things may have ended up differently. You can imagine a file cabinet - a physical one for paper and files you can hold in your hands. Only, the way this file system works is slightly different - it is both retro and techno. Instead of inserting and retrieving files, we only insert and duplicate them. Once entered into the file cabinet, the file is scanned and the original is kept forever, and given a unique label. Then, anyone with a blank piece of paper can come up to the file cabinet, and get a copy of the original printed on your paper. To send a file to a friend, you do not have to copy the file manually, as you may simply tell the the label, and they may fetch it at their leisure. Now imagine many such file cabinets linked, so that copies of their originals are accessible from anywhere. This is both obviously the internet, and obviously not.

But it runs into the same problem as the internet - what about redundant originals stored under different names? What if different cabinets label the same file differently? We are reduced back to our original issue where we must copy and send the full data because /the data itself/ is the smallest unambiguous label for itself and thats the only way to be sure it gets there. This tells us what is wrong, and guides us in how to fix it. The metaphor has gotten in the way again. The labels are an abstraction, and abstractions should help, not hinder. We should understand that a filesystem is an interface, and we should all know better than to blend UI and logic.

The skeumorphism of filesystems and file cabinets hinders us. Time to move on to something better.

- Leo D., September, 2022