You know, this is all said very earnestly but the problem is that it tends to ignore the fact that many, many great things have been achieved with current technology.<p>The linked to &quot;worse is better&quot; article I have read before, years ago. The criticism of the failure mode of Unix is invalid. If you hit an error condition, then unless you have have kept your systems state for an indeterminate period of time, it&#x27;s often not feasible to back out of the program to where the error occurred.<p>In terms of tagging, that&#x27;s never taken off. Why? Because it turns out tagging things is harder than you might think, because you can call the same thing by different names, which is somewhat ironically a major problem with hierarchical file systems. You basically end up with needing to be able to locate all the tags that are synonyms of each other.<p>At the very least, a file system comes with a convention. I know where configuration files are on Unix - I go the the &#x2F;etc directory. If I want to find my executables, I go to either &#x2F;usr&#x2F;bin or &#x2F;bin. For my files, I&#x27;m under &#x2F;home&#x2F;chris.<p>If I was to tag stuff, I&#x27;d also need to stick to a convention, or chaos reigns. I know, I&#x27;ve tried this before. I basically ended up with a hierarchical tagging structure.<p>That&#x27;s not too say tagging is awful, only that it&#x27;s not a panacea to all perceived ills.<p>As for version control - git is honestly the best example of a versioning system that does everything you describe - content addressing, versions control, snapshots... And guess what? It&#x27;s all in a DAG.<p>Oh, and one more thing: all that &quot;untyped text&quot; that is a &quot;bad persistence model&quot; firstly ignores the fact that it&#x27;s not untyped, that every file system contains metadata, and that a file name is no different to a tag that is a label.