I don't understand how no language has really figured out dependencies in a way that is truly sharable. It seems like docker is the only way to create applications that can be build and run everywhere without headache.
Agreed. However containers make maintenance much more difficult. A year after a container was deployed, it needs an update. And then you discover there are a set of deprecated libraries that need updating. It can get messy. Not sure any solution is perfect.