4 ms·
Dynamic linking by default has been vocally criticized by everyone from Carmack to Bell Labs/Plan9/golang people. Many if not most of the big scale companies ha
by benreesman 4y ago
Dynamic linking by default has been vocally criticized by everyone from Carmack to Bell Labs/Plan9/golang people. Many if not most of the big scale companies have historically avoided it like the plague. It has horrific costs in performance, security, reproducibility, and ultimately comprehensibility of any system.
People pay out the ass in droves via Docker (huge-ass images, clunky composability, cgroup/namespace complexity) and Nix (horror-movie learning curve) and I'm sure other things to get around it / emulate static linking. `sudo apt-whatever upgrade` and pray is pretty much DOA in even low-complexity settings. People are voting with their feet.
You can disagree, and if you're not affiliated with Debian or GNU I might even believe that you come by that opinion honestly, but this gigantic bloc of people who hate it are not all "oblivious".
- pjmlp 4y agoBell Labs introduced shared objects into UNIX, maybe they should have learned better from other platforms.
- benreesman 4y agoThey realized that they had goofed like 25-30 years ago and have been battling their own monster ever since: http://harmful.cat-v.org/software/dynamic-linking/versioned-symbols http://harmful.cat-v.org/software/dynamic-linking/versioned-.... I take the authors of a disaster more seriously when they say it's a disaster, not less.
- musicale 4y ago> Docker It's strange when an app is packaged with its own private copy of all of the "shared" libraries that it uses. Many apps that could be a single static binary seem to be packaged as docker images largely for dependency inclusion and some cgroup/namespace isolation.
- intelVISA 4y agoVery few use cases that involve deliberately avoiding static linking these days imo.