There was a time where this debate was bigger. It seems the world has shifted towards architectures and tooling that does not allow dynamic linking or makes it harder. This compromise makes it easier for the maintainers of the tools / languages, but does take away choice from the user / developer. But maybe that’s not important? What are your thoughts?
Personally, I prefer static linking. There’s just something appealing about an all-in-one binary.
It’s also important to note that applications are rarely 100% one or the other. Full static linking is really only possible in the Linux (and BSD?) worlds thanks to syscall stability - on macOS and Windows, dynamically linking the local
libc
is the only good way to talk to the kernel.(There have been some attempts made to avoid this. Most famously, Go attempted to bypass linking
libc
on macOS in favor of raw syscalls… only to discover that when the kernel devs say “unstable,” they mean it.)Certainly agree. I remember the days when you could just copy a binary from one computer to another and it would just work™ Good times…