C'è una piccola verità in ogni risposta qui, ma non penso che sia tutta la verità.
Ciò che elenchi sono per lo più caratteristiche che ogni giorno gli utenti e gli sviluppatori sono molto persi.
Le persone non capiscono il file system basato su alberi più di quanto non capiscano uno basato su DAG.
E non ci sono assolutamente scuse per le patetiche appendici dei nomi dei file chiamati estensioni. Non sono solo del tutto inadatti al loro scopo (identificare il tipo di file) ma sono anche una fonte infinita di fastidio per gli utenti.
Il motivo per cui li stiamo ancora usando è un mix di un atteggiamento "che farà" e la reale necessità di mantenere la compatibilità con il codice precedente. Un nuovo approccio alla memorizzazione dei file significherebbe un cambiamento radicale nell'API I / O dei file di base, rendendo inutile la maggior parte del codice esistente. O quello o devi camminare in punta di piedi attorno a loro, mantenendo l'API legacy. Ricorda PROGRA ~ 1.
Penso per i motivi di cui sopra, anche se il futuro potrebbe contenere file system più specializzati per applicazioni speciali, ma mentre le architetture di PC desktop e laptop del presente sopravvivono, siamo bloccati con il file system in gran parte basato su alberi con la sua mancanza di metadati e le sue orribili piccole estensioni.
Adesso cambierò lato.
Perché è tutto intorno a noi, non apprezziamo mai davvero quanto sia incredibilmente potente la metafora dell'albero. Sul mio disco rigido ho diverse centinaia di migliaia di file. Se devo trovarne uno, raramente ci vuole più di un minuto, anche se so molto poco del file. Ora immagina lo stesso compito senza alcuna struttura, solo un elenco piatto di nomi, che scorre all'infinito.
Eppure tutte le operazioni sono semplici, non c'è azione spettrale a distanza, niente che mi faccia andare avanti.
In realtà, una volta ho implementato un archivio documenti con metadati avanzati e una gerarchia basata su DAG. (Non era nemmeno un DAG in formato libero, era rigorosamente una metastruttura a due livelli e i documenti, che potevano essere figli di una raccolta di livello 1 o di livello 2. Quindi è davvero semplice.)
Ovviamente, il requisito secondo cui i nomi dei documenti dovrebbero essere univoci all'interno di una raccolta doveva rimanere.
E poi i problemi hanno iniziato a fluire. Cosa succede se si apre una raccolta e si modifica il nome del documento in qualcosa che si scontra in una raccolta diversa a cui appartiene anche il documento? Abbiamo visualizzato un messaggio di errore ma gli utenti erano completamente sconcertati. (Questi sono gli stessi utenti che avevano richiesto questo requisito.)
Hanno provato a eliminare un documento, ma tutto ciò che è stato è stato rimuoverlo dalla raccolta. Quindi è ancora apparso nei risultati di ricerca. Abbiamo provato anche il contrario, ma poi si sono lamentati del fatto che hanno eliminato un documento dalla raccolta A e che è magicamente scomparso dalla raccolta B. Quindi avevamo bisogno sia di un "scollegamento" che di un'operazione di eliminazione definitiva.
Alla fine abbiamo ammesso la sconfitta, fortunatamente ancora in tempo.
Le sfaccettature di ricerca extra rese possibili dai metadati hanno funzionato in modo assoluto.