There are 2 arguments for having shared libraries:
- It helps reduce disk space.
- When a shared library is updated, all the binaries depending on it get the update.
There is mainly one drawback for shared libraries:
- They (can) introduce dependency hell.
On desktop computers, the 1st advantage doesn't really hold anymore. Wasting disk space isn't much of an issue these days.
Having static binaries would allow us to get way better package managers -- I mean, the dependency hell would be a thing of the past. Adding a program would be just adding a binary; eventually a folder to let it handle its files. Deleting a program would be simply deleting this file. Dependencies? Gone.
The 2nd advantage still stands, but I think the advantage of static binaries on desktop computers outweighs it. I mean, even new languages like Go compile all their binaries in spite of the shared libraries advantages, because of the convenience.
Since one of the main advantages of shared libraries is not a big deal anymore, are C static libraries are still frowned upon? If so, why?