У кожній відповіді є трохи правди, але я не думаю, що це вся правда.
Перелічені в основному функції, які щодня дуже не вистачають користувачам та розробникам.
Люди не розуміють файлову систему на основі дерева, ніж розуміють DAG-систему.
І зовсім немає виправдання для жалюгідних додатків імен файлів, що називаються розширеннями. Вони не тільки повністю непридатні за своїм призначенням (визначення типу файлу), але і нескінченне джерело неприємностей для користувачів.
Причина, по якій ми все ще їх використовуємо, - це суміш ставлення «що робити» та реальної потреби підтримувати сумісність із старішим кодом. Новий підхід до зберігання файлів означатиме докорінну зміну базового API вводу / виводу файлів, що робить більшість існуючих кодів марними. Або це, або вам доведеться накидати пальці навколо них, зберігаючи застарілий API. Запам'ятайте PROGRA ~ 1.
Я думаю, що з вищезгаданих причин, хоча майбутнє може мати більш спеціалізовані файлові системи для спеціальних додатків, але, поки архітектури настільних та портативних ПК теперішнього часу виживають, ми стикаємося з файловою системою на основі дерев, в основному з її відсутністю метаданих та її жахливі невеликі розширення.
Тепер я перейду на боки.
Оскільки це все навколо нас, ми ніколи не дуже цінуємо, наскільки розумно потужною є метафора дерева. На моєму жорсткому диску у мене є кілька сотень тисяч файлів. Якщо мені доведеться знайти його, це рідко займає більше хвилини, навіть якщо я знаю дуже мало про файл. Тепер уявіть те саме завдання без будь-якої структури, просто плоский список імен, нескінченно прокручуючи.
І все-таки всі операції прості, на відстані немає ніяких моторошних дій, нічого, що змусило б мене піти на wtf.
Насправді я один раз реалізував сховище документів з багатими метаданими та ієрархією на основі DAG. (Це навіть не була вільна форма DAG, це була строго дворівнева метаструктура та документи, які могли бути дітьми або рівня 1, або колекції 2 рівня. Отже, це дійсно просто.)
Очевидно, вимога про те, що назви документів мають бути унікальними в колекції, повинна залишатися.
І тоді проблеми почали текти. Що робити, якщо відкрити колекцію та змінити назву документа на те, що стикається з іншою колекцією, до якої також належить документ? Ми відобразили повідомлення про помилку, але користувачі були повністю озадачені. (Це ті самі користувачі, які просили цю вимогу.)
Вони намагалися видалити документ, але все, що було, було видалити з колекції. Тож воно все-таки виявилося в результатах пошуку. Ми також спробували це навпаки, але потім вони скаржилися, що вони видалили документ із колекції A, і він магічно зник із колекції B. Тож нам знадобилася як операція "від’єднання", так і жорстке видалення.
Врешті-решт ми поступилися поразкою, на щастя, ще вчасно.
Додаткові аспекти пошуку метаданих, можливо, працювали абсолютним лікуванням.