

To add a couple of issues with Dynamic Libraries, and why someone would choose Static Libraries:
- The dynamic library being updated can break a program due to a change in the library. Think a math call goes from divide(a,b) to divide(a,b, precision), so now the old call doesn’t exist.
- Some languages don’t have a “stable” way to talk to itself. This means that if you have a program and library compiled with compiler version A, then later compile an update to the library with compiler version B, the program won’t know how to talk to the library correctly, even though the call is still there.
Like a lot of things, there are tradeoffs, and there is no universal correct choice.
Double click the exe, pending update blocks the installer, reboot, click the exe, go through a wizard that ask questions you don’t know the answer to (usually defaults are ok though), be prompted for admin password, get blocked by corporate policies, fill out the IT ticket, have them remote to your box and install, reboot, find the program in the menu, run it, have it blocked by HBSS, put in ticket for that, update antivirus, reboot, manually pull group policy updates, reboot, more updates install, reboot, run the program.
Obviously silly, but also real.