Hay una pequeña verdad en cada respuesta aquí, pero no creo que sea toda la verdad.
Lo que usted enumera son en su mayoría características que los usuarios y desarrolladores pasan por alto todos los días.
Las personas no entienden el sistema de archivos basado en árboles más de lo que entenderían uno basado en DAG.
Y no hay absolutamente ninguna excusa para los patéticos apéndices de los nombres de archivos llamados extensiones. No solo son completamente inadecuados para su propósito (identificando el tipo de archivo) sino también una fuente interminable de molestias para los usuarios.
La razón por la que todavía los estamos usando es una mezcla de una actitud de "eso servirá" y la necesidad real de mantener la compatibilidad con el código anterior. Un nuevo enfoque para almacenar archivos significaría un cambio radical en la API básica de E / S de archivos, haciendo que la mayoría del código existente sea inútil. O eso o tienes que caminar de puntillas alrededor de ellos, manteniendo la API heredada. Recuerde PROGRA ~ 1.
Creo que por las razones anteriores, aunque el futuro podría contener sistemas de archivos más especializados para aplicaciones especiales, pero aunque las arquitecturas de PC de escritorio y portátiles actuales sobreviven, estamos atrapados en el sistema de archivos en gran parte basado en árboles con su falta de metadatos y Sus pequeñas extensiones horribles.
Ahora voy a cambiar de lado.
Debido a que está a nuestro alrededor, nunca apreciamos cuán increíblemente poderosa es la metáfora del árbol. En mi disco duro tengo varios cientos de miles de archivos. Si tengo que encontrar uno, rara vez lleva más de un minuto, incluso si sé muy poco sobre el archivo. Ahora imagine la misma tarea sin ninguna estructura, solo una lista plana de nombres, desplazándose sin cesar.
Sin embargo, todas las operaciones son sencillas, no hay acción espeluznante a distancia, nada que me haga perder el control.
En realidad, implementé una tienda de documentos con metadatos enriquecidos y una jerarquía basada en DAG una vez. (Ni siquiera era un DAG de forma libre, era estrictamente una metaestructura de dos niveles y los documentos, que podrían ser hijos de una colección de nivel 1 o de nivel 2. Así que es realmente simple).
Obviamente, el requisito de que los nombres de los documentos deberían ser únicos dentro de una colección tenía que permanecer.
Y luego los problemas comenzaron a fluir. ¿Qué sucede si abre una colección y cambia el nombre del documento a algo que entre en una colección diferente a la que también pertenece el documento? Mostramos un mensaje de error pero los usuarios estaban completamente desconcertados. (Estos son los mismos usuarios que solicitaron este requisito).
Intentaron eliminar un documento, pero todo lo que hicieron fue eliminarlo de la colección. Por lo tanto, todavía apareció en los resultados de búsqueda. Lo intentamos al revés también, pero luego se quejaban de que habían eliminado un documento de la colección A y mágicamente desapareció de la colección B. Por lo tanto, necesitábamos una operación de "desvinculación" y una eliminación completa.
Eventualmente admitimos la derrota, afortunadamente aún a tiempo.
Sin embargo, las facetas de búsqueda adicionales que los metadatos hicieron posible funcionaron absolutamente.