Здесь есть доля правды в каждом ответе, но я не думаю, что это вся правда.
То, что вы перечисляете, это в основном функции, которые каждый день упускают пользователи и разработчики.
Люди не понимают древовидную файловую систему больше, чем понимают основанную на DAG.
И нет абсолютно никаких оправданий для жалких дополнений имен файлов, называемых расширениями. Они не только совершенно не подходят для своих целей (с указанием типа файла), но и являются бесконечным источником неудобств для пользователей.
Причина, по которой мы до сих пор их используем, - это смесь подхода «это подойдет» и реальной необходимости поддерживать совместимость со старым кодом. Новый подход к хранению файлов будет означать радикальные изменения в базовом API файлового ввода-вывода, делая большую часть существующего кода бесполезной. Либо это, либо вы должны ходить на цыпочках вокруг них, поддерживая устаревший API. Помните PROGRA ~ 1.
Я думаю, что по указанным выше причинам, хотя в будущем могут появиться более специализированные файловые системы для специальных приложений, но хотя нынешние архитектуры настольных компьютеров и ноутбуков выживают, мы застряли в значительной степени на основе файловой системы на основе дерева с ее отсутствием метаданных и его ужасные маленькие расширения.
Теперь я собираюсь перейти на другую сторону.
Поскольку все вокруг нас, мы никогда не понимаем, насколько мощна метафора дерева. На моем жестком диске у меня есть несколько сотен тысяч файлов. Если мне нужно его найти, это редко занимает больше минуты, даже если я очень мало знаю о файле. Теперь представьте себе ту же задачу без какой-либо структуры, просто список имен, бесконечно прокручиваемый.
Все же все операции просты, нет жутких действий на расстоянии, ничего такого, что заставило бы меня взбеситься.
На самом деле, я однажды реализовал хранилище документов с богатыми метаданными и иерархией на основе DAG. (Это был даже не DAG произвольной формы, это была строго двухуровневая метаструктура и документы, которые могли быть дочерними для коллекции уровня 1 или уровня 2. Так что это действительно просто.)
Очевидно, что требование о том, что имена документов должны быть уникальными в пределах коллекции, должно было остаться.
И тогда проблемы начали течь. Что если вы откроете коллекцию и измените имя документа на то, что конфликтует с другой коллекцией, к которой также принадлежит документ? Мы отобразили сообщение об ошибке, но пользователи были совершенно сбиты с толку. (Это те самые пользователи, которые просили об этом требовании.)
Они пытались удалить документ, но все, что было сделано, это удалить его из коллекции. Таким образом, это все еще обнаружилось в результатах поиска. Мы попробовали это и наоборот, но потом они жаловались, что они удалили документ из коллекции A, и он волшебным образом исчез из коллекции B. Поэтому нам потребовалась и операция «unlink» и операция полного удаления.
В конце концов мы уступили поражение, к счастью, еще вовремя.
Тем не менее, дополнительные аспекты поиска, которые сделали возможными метаданные, сработали абсолютно.