3
recfab
4y

I think that the metaphors we use to design software can hold us back sometimes.

Specifically, I’ve been thinking about file systems.

“File” is a fine metaphor for “chunk of data” I guess but we use two conflicting metaphors on top of that to describe the same thing: “folder” and “directory”.

Why do we limit ourselves to this rigid, hierarchical system for managing our data?

Maybe something based on tags, or attributes or some other metadata.

Hierarchy can be useful so I don’t want to completely get rid of it, or anything drastic like that, but we (or at least *I*) don’t think in those terms.

Comments
  • 7
    "Maybe something based on tags, or attributes or some other metadata."

    Maybe somone will invent relational databases some day. Oh, wait...
  • 3
    You should start reading documentation and “think this way”.
    There are more than 60 years invested in file systems. You think you can do better ? Do it, PR to linux kernel.

    BTW, windows already uses tags for files and search by tags. Don't know about linux
  • 2
    Sure, but I’m not talking about databases, I’m taking about file systems.

    Unless you think of the file system itself as a database in which case, they mostly suck at it.
  • 3
    @recfab How high are you ? Is it a bad acid trip ? May I join ;p
  • 0
    @recfab Just put everything you want in a database. Then you have what you want and can think in any metaphor.

    Why not? Because it doesn't actually solve any problems, and change just for the sake of simulating progress hasn't proven successful.
  • 1
    what the fuck.

    I'm talking about questioning one of the fundamental assumptions about how file systems ought to work and y'all's answer is "just use a database"?

    Why even comment if you are unwilling to engage in that actual idea presented?

    Why assume I'm an idiot who has just found the command line and has never heard of databases?
  • 0
    @Fast-Nop But how the database will acess the file of the database ? Which is stored in the database which will need to acess to a file stored... well you get it
  • 0
    @recfab It seems you don't get that you can have any abstraction you want - just use the right tool.

    Hint: you aren't doing that because you don't need it.
  • 1
    @NoToJavaScript That's irrelevant once you are at the abstraction level of the database. It doesn't impact your use cases or possibilities. That's the point of abstractions.
  • 0
    Ok, I will bait. Seriously. Do you know how one of the simplest filesystems (FAT16) works ? Like at the machine/hard drive level?
    Did you try to at least write a code which will read it ? (FAT32 is way more complicated, they added ‘tags’).
    Can you, if I give you an ISO parse it with your own code and just display files ?

    Now, you want to be a revolution. I’m game!!! But, how can we store files better ? What can we do faster than NTFS or ext3 ? Fuck, I’m not even sure I know exactly how they work at this point.

    Did you know you can hide files in files with NTFS data streams ?
    https://stealthbits.com/blog/...
    Read that and then come back with a super idea to do better!! (Cheap taunts ext4 is better, not the point)
  • 1
    @Fast-Nop

    I would like a level of abstraction on your abstraction. And if you can’t provide it I will complain to PM !
  • 0
    Oh boy! Images of the WinFS tech demo just flashed in my mind. A whole lotta nothin' that turned out to be...
  • 3
    I don't know why you get all the hate. You never said you could do better, you just posed an interesting question.

    Can we somehow improve on FSs or find an alternative?

    I don't know myself. Slowly there's a shift towards metadata being used more for "files" but the shift has been slow for the most part. For example Im still not able to tag my image files without using 3rd party software and even then It's not transmissable between systems...

    Hierarchy works because people understand it easily I guess. Im not sure if we can find an alternative to hierarchical structures for files and folders or even replace the concept of a folder. At least not easily. I'd be open for a discussion over ideas but to be honest Im shooting blanks here. The current system just works and there's not much reason to change it yet, just improve it.
  • 2
    The hierarchy is a system created naturally. (at least I cannot think of any other way)

    The file need to be associated with a tag if you use a tags system.

    The tag may contain the pointer to the location of the file for faster search retrieval (otherwise when you search by tag, you will have to search your whole drive)

    By assigning the file pointer location to tag, you have essentially create a hierarchy.

    I would like to hear more about your opinions about what you mean by file system being "rigid".

    I say if you could think of new file "abstraction" system, goes for it. We would like to see what you come up with (even if the performance doesn't match up to previous file system,I am personally interested in it,conceptually).

    Well you could build an new "abstract" file system by creating your own "file explorer". Internally it will use the rigid file system,but you could build on top of it.
  • 0
    The purpose of the hierarchy is that it's such a simple system that it leaves a lot of freedom to the implementation. A good abstraction is one that covers a lot of implementations _and_ use cases. You can't neglect either.
    Unlike tags, file systems enforce proper nesting which is a very useful constraint. How would you even begin to apply the concept of chroot to tags?
Add Comment