I’m curious how software can be created and evolve over time. I’m afraid that at some point, we’ll realize there are issues with the software we’re using that can only be remedied by massive changes or a complete rewrite.
Are there any instances of this happening? Where something is designed with a flaw that doesn’t get realized until much later, necessitating scrapping the whole thing and starting from scratch?
Definitely. As nice as it would be, I don’t think it will significantly change any time soon, for several reasons. Not least of which is because several programs would likely just flatly refuse to implement such a change, judging by some of them refusing to even consider patches to implement the XDG Base Directory Specification.
shouldn’t even be a thing, as today disk space is cheap so there is no need to scatter binaries all over the place.
Historically, /usr
was created so that you could mount a new disk here and have more binaries installed on your system when the disk with /bin
was full.
And there are just so many other stuff like that which doesn’t make sense anymore (/var/tmp
comes to mind, /
, /home
which was supposed to be /usr
but name was already taken, etc …).
$PATH shouldn’t even be a thing, as today disk space is cheap so there is no need to scatter binaries all over the place.
$PATH is very useful for wrapper scripts, without it there wouldn’t be an easy way to for fix the mess that steam does in my homedir that places a bunch of useless dotfiles in it. The trick is simply have a script with the same name as the steam binary in a location that is first in $PATH therefore it will always be called first before steam can start and murder my home again.
About /var/tmp, I just have it symlinked to /tmp, technically /var/tmp still has a reason to exist, as that location is use for temporary files that you don’t want to lose on power loss, but I actually went over the list possible issues and iirc it was mostly some cache files of vim.
EDIT: Also today several distros symlink /bin and /sbin to /usr/bin.