Hacker News new | ask | show | jobs
by aminuit 6077 days ago
The rest of this article discusses why dynamic linking does not deliver on any of its promises and why, just as communism, it might be an idea that only works in an ideal world.

He depends on that comparison because the rest of his argument is lacking.

His first example, the one about the broken C++ ABI, isn't really an argument against dynamic linking. C++ binary compatibility has always been a nightmare because different groups refuse to agree on a standard. It's a ding against C++, but not dynamic linking per se. For any solution to the problem he's trying to solve, there are going to be pathological cases that perform poorly. Poor C++ ABI standardization seems to be one of those cases for dynamic linking.

He also doesn't really consider the world before DSOs. Consider maintaining a machine (or lots of machines) where every package was statically linked against different versions of the same core libraries. What happens when a vulnerability is discovered in one of those libraries? How do you know which packages are vulnerable? Do really want to upgrade every single package on every machine if there is a libc vulnerability?

2 comments

If you took out the references to communism, his argument would still be there, it has no actual dependence on the analogy he's using rhetorically. Your critique in this follow-up comment is a lot more useful than dismissing his claim as a simple logical fallacy when it isn't.

What happens when a vulnerability is discovered in one of those libraries?

Actually, he directly addressed that issue, by pointing out that updating a shared library when you find an issue with it may break some of the applications that link to it. You might (and I do) disagree with him that this means dynamic linking is bad (imo, downstream projects that choose to take on an upstream dependency have the obligation to know how that dep is intended to be used), but it's not really helpful to the discussion to pretend like he didn't consider it.

And if you agree with Mises' reasoning Communism doesn't even work in the ideal world http://en.wikipedia.org/wiki/Economic_calculation_debate

(interesting link in there to Project Cybersyn too by the way! http://en.wikipedia.org/wiki/Project_Cybersyn)