Users should and regular people should:
* not smoke
* not drink
* eat healthy food in moderate amounts
* ...
"Should" almost never works, especially at scale.
And now every language ecosystem has one or more package managers for development libs - pip, conda, cargo, npm, opam, dub, etc. - and then optional package managers like choco, homebrew, and probably some others I missed. It’s a huge mess. So instead we throw up our hands and just bundle everything we need in a container and duplicate the _whole distro_ because the “package” ecosystem is such a disaster.
The sane way to handle software installs and uninstalls would have been cp/rm.
Every one of these uses different flags too, so for someone who uses a number of different distros it’s a huge pain to remember them and switch back and forth.
FreeBSD at least uses the eminently sensible “pkg” command with flags like “search” and “add.”