4 ms·
Programs should just store all their files together. The traditional directory structure of Linux et al is wrong. I do not need a /bin folder full of unrelated
by zzbzq 3y ago
Programs should just store all their files together. The traditional directory structure of Linux et al is wrong. I do not need a /bin folder full of unrelated programs. I need a /program_xyz folder for each program, with all the stuff in there.
Granted when disk space was scarce, this reduces the ability to share dynamically linked dependencies. There are other ways around that. And in the modern world, there are some retrofitted solutions where package managers indeed do it this way. And a lot of other tools out there like Docker overlap this idea that part of what they do is disentangle the file system of unrelated programs.
But the real giga-brained answer, which most programmer-type people probably aren't emotionally ready to accept, is that not only are the ways we organize our directories wrong, but tree-based directories are just dumb in general. Everything should just go in one big directory and you can use names and tags to sort them out. Programmers are culturally obsessed with trees.
- amphitheatre 3y agoI would posit most things in a file system are better represented by graphs. A file type would have a program to run with, a program to edit with, maybe also referencing files in relatively placed directories/locations, and potentially pointed to by a crown job or other automation routines… Trees and hierarchical layouts do make sense for some things, but as soon as you start symlinking, a proper graph works better - though I imagine computationally harder (a sacrifice I’m willing to make on most desktop machines tbh). Your notion of sticking everything in a single space and using tags, searches, and filters is something I’ve wanted to explore for a while. Afaik it’s unexplored space, unless others could point me to some awesome tools or processes?
- zvr 3y agoThe UNIX filesystem has traditionally been a graph for ever. I haven't looked at details for a couple of decades, but definitely all UNIX/POSIX/Linux filesystems operate on a graph model. A distinction I used to make when I was teaching this stuff: on your filesystem tree, on Unix names (labels) are on the links (arrows), while on DOS/Windows names are on nodes (boxes). If you want to explore a tag-based system, take a look at https://www.tagspaces.org/ https://www.tagspaces.org/
- imbnwa 3y ago>But the real giga-brained answer, which most programmer-type people probably aren't emotionally ready to accept, is that not only are the ways we organize our directories wrong, but tree-based directories are just dumb in general. Everything should just go in one big directory and you can use names and tags to sort them out. Programmers are culturally obsessed with trees. Java will die before it gives up its practice of "let's organized code in a series of nested directories where each directory is the next qualifier in the package name"