W każdej odpowiedzi jest trochę prawdy, ale nie sądzę, że to cała prawda.
To, co wymieniasz, to przede wszystkim funkcje, których tak bardzo brakuje każdego dnia zarówno użytkownikom, jak i programistom.
Ludzie nie rozumieją systemu plików opartego na drzewach tak samo, jak nie zrozumieliby systemu opartego na DAG.
I absolutnie nie ma usprawiedliwienia dla żałosnych dodatków nazw plików zwanych rozszerzeniami. Są one nie tylko całkowicie nieodpowiednie do ich celu (identyfikacja typu pliku), ale także niekończące się źródło uciążliwości dla użytkowników.
Powodem, dla którego nadal ich używamy, jest mieszanka nastawienia „zrób to” i realnej potrzeby zachowania zgodności ze starszym kodem. Nowe podejście do przechowywania plików oznaczałoby radykalną zmianę w podstawowym interfejsie API we / wy plików, co spowodowałoby, że większość istniejącego kodu nie byłaby użyteczna. Albo to, albo musisz przechodzić między nimi na palcach, zachowując starsze API. Pamiętaj PROGRA ~ 1.
Sądzę, że z powyższych powodów, chociaż przyszłość może zawierać bardziej wyspecjalizowane systemy plików do specjalnych zastosowań, ale mimo że obecne architektury komputerów stacjonarnych i laptopów przetrwały, utknęliśmy w systemie plików opartym w dużej mierze na drzewie z brakiem metadanych i jego okropne małe rozszerzenia.
Teraz zamierzam zmienić stronę.
Ponieważ jest wokół nas, nigdy tak naprawdę nie doceniamy, jak zadziwiająco potężna jest metafora drzewa. Na dysku twardym mam kilkaset tysięcy plików. Jeśli muszę go znaleźć, rzadko zajmuje to więcej niż minutę, nawet jeśli niewiele wiem o pliku. Teraz wyobraź sobie to samo zadanie bez jakiejkolwiek struktury, tylko płaska lista nazwisk, przewijająca się bez końca.
Jednak wszystkie operacje są proste, nie ma strasznej akcji na odległość, nic, co zmusiłoby mnie do wtf.
Właściwie raz wdrożyłem magazyn dokumentów z bogatymi metadanymi i hierarchią opartą na DAG. (Nie był to nawet DAG o swobodnej formie, był to ściśle dwupoziomowa metastruktura i dokumenty, którymi mogą być dzieci z kolekcji poziomu 1 lub poziomu 2. Więc to naprawdę proste.)
Oczywiście wymóg, aby nazwy dokumentów były unikalne w obrębie kolekcji, musiał zostać utrzymany.
A potem problemy zaczęły płynąć. Co się stanie, jeśli otworzysz kolekcję i zmienisz nazwę dokumentu na coś, co koliduje z inną kolekcją, do której należy również dokument? Pokazaliśmy komunikat o błędzie, ale użytkownicy byli całkowicie zaskoczeni. (Są to ci sami użytkownicy, którzy poprosili o ten wymóg).
Próbowali usunąć dokument, ale wszystko, co zrobili, to usunięcie go z kolekcji. Więc nadal pojawiał się w wynikach wyszukiwania. Próbowaliśmy tego też na odwrót, ale potem narzekali, że usunęli dokument z kolekcji A i magicznie zniknął z kolekcji B. Więc potrzebowaliśmy zarówno operacji „odłączenia”, jak i operacji twardego usunięcia.
W końcu przyznaliśmy się do porażki, na szczęście wciąż na czas.
Dodatkowe aspekty wyszukiwania, które umożliwiły metadane, działały jednak absolutnie nieźle.