So, what is it with programmers relying on shared libraries for the longest time, despite notorious problems? Modern languages created this century all use static linking by default, and people love them for it, because software distribution is a (largely unsolved) problem.
Don't get me wrong, shared libraries have their place, for things like:
- plugins and foreign function interfaces;
- basic operating system services like user interfaces (think curses).
(By the way: a standard user interface package is the #1 requested feature in any programming language that doesn't have one. Developers, get a clue already.)
But otherwise? Fixing a bug in many apps at once doesn't happen. What happens instead is DLL hell. Memory savings? Arguably, though it doesn't seem to help in most operating systems, and then you have Electron-based apps. Reusing libraries? People almost always do that by linking against them, and for that you need the development version anyway.
Magical solutions make you lose sight of desired outcomes. Watch out.