What do dynamic linking and communism have in common?
blogs.sun.com
blogs.sun.com
Just step back and consider all the problems dynamic linking has caused us (DLL hell, package management headaches, C library incompatibilities, various ABI issues) and the sheer complexity of the systems invented to solve those problems (Side-by-Side assemblies; InstallShield, Windows Installer, and umpteen other install frameworks for Windows; LD_LIBRARY_PATH, ldconfig; APT, RPM, and umpteen other Linux package managers).
http://commons.wikimedia.org/wiki/File:GM_-_Countries_by_Eco...
http://images.absoluteastronomy.com/images/encyclopediaimage...
If unregulated capitalism was just as bad as communism you'd expect this chart to have a bell curve type shape, rather than it's upward curve: http://www.investmentu.com/wp-content/uploads/2008/02/200601...
You can explore the relative economic freedoms of each country here: notice that the US is only the #6 free-est economy in the world): http://www.heritage.org/Index/Ranking.aspx
I don't understand how your second link argues that less gov control means higher standards.
I think what we see in the world right now is that there are many more 3rd world countries with ineffective governments and less economic freedom than there are countries who are doing well enough to have an economy to not regulate. So in other words it's much harder for a country to go from poor, low economic freedom to prosperous than it is for a country that already has a strong unregulated economy to adopt some regulation and go to prosperous.
http://www.investmentu.com/wp-content/uploads/2008/02/200601... The graph there probably doesn't exhibit a bell curve because as soon as a country leads too far right towards pure economic freedom, it jumps back really fast. And I think enough time has passed that all the most developed countries have hit that mark and popped back left a little.
Also I think you should consider the size of countries like Hong Kong and Singapore, since different principles probably govern economies of different sizes.
Can you name me one 1st world country without economic regulations? I think this is evidence enough that there must be some slope leading down to the state of America in the early 90s, even if that slope is almost vertical.
It's missing it's legend unfortunately. Red means economically unfree and green means economically free.
> as soon as a country leads too far right towards pure economic freedom, it jumps back really fast.
I'm not aware of Hong Kong or Singapore (as the 2 leaders of economic freedom) historically jumping sharply away from economic freedom. The UK and the US slowly moved away from it in the early to mid 20th century, then moved back towards it since the 1980s.
Also don't confuse "the right" with economic freedom. Some of the right tends to support economic freedom to a degree these days, but that hasn't always been the case.
> Can you name me one 1st world country without economic regulations?
There's no countries anywhere without economic regulations, but with the data available it appears that the less economic regulations the better the outcome for people in that society.
When I said right and left, I meant literally the right and left of that chart.
My point was that both pure capitalism and pure communism dont't work, and that a balance must be struck between the two. The graph may not resemble a bell curve, but I'm sayig that it should. I explained previous why current data may not show a bell curve and it's that the data set is too small. The fact that trends show That more economic freedom leads to better life simply means that more countries are on the right side of the economic spectrum (more regulation) moving left than there are left moving right, and I explained the possible cause to this too (remember a country had to be more developed in order to even have an economy worth regulating, so more developed countries were closer to the perfect balance already). I'd also like to add that if equilibrium is indeed closer to the capitalism side, it too would explain why the data shows more economic freedom=better life. And this is because given equal distribution across the spectrum among countries, you would see more moving left to right if equilibrium is towards the right. But I already suggested that less developed countries tend to be less economically free, which means more of those countries start on the left in our current times. Now i'm not saying that civilizations start out with regulations and moves towards the right, simply that current data shows less developed countries with less economic freedom (according to your data, if true). As for civilizations I believe the position on the continuum oscillates left to right as the civilization advances until it settles towards equilibrium.
In the end you cannot claim the data shows an unregulated economy to be better than a completely regulated one. They both suck. :) Thanks, Chris
Edsger W. Dijkstra
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?
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.
(interesting link in there to Project Cybersyn too by the way! http://en.wikipedia.org/wiki/Project_Cybersyn)
Guess he must've read different editions of all those medieval philosophers than I did.
Meanwhile...
Duns Scotus anticipated a lot of modern empiricism by a few hundred years; Roger Bacon was doing science (as a monk, no less) in the thirteenth century. Abelard propagated an ethics which, while building on Aristotle's, was almost modern in its treatment of individual intentions as the key to judging an action. Avicenna gave us the grounding for a lot of advanced logic.
etc., etc.
But, alas, we have a deeply-ingrained popular conception today that those guys were all a bunch of witch-burning troglodytes who must obviously have been our intellectual inferiors, and thus incapable of anything but the caricatures of thought we assign to them.
You know what else dynamic linking is up to, Mandrake? Sapping and impurifying all of our precious bodily fluids.
- Some applications are not updated and retain the bug. Extremely dangerous if it is a security bug.
- Suddenly your package manager needs to update almost every single application on your system. All the packages in my Ubuntu system is a total of ~1GB. Now that you statically compiled them prepare for a very long download.
The problems presented are largely solved in integrated distributions (like Linux distributions or Apple software). Where this isn't as clear is when external parties are trying to distribute software in a non-coordinated way (most apps in Windows, non-Apple apps in OSX). In those cases static linking probably makes sense but even then I'd say you are better off linking dynamically to fairly standard stuff like libc.
On other hand, C++, with its writhing ABIs and changing mangling rules is definitely not suited for dynamic linking.
They could make their Class.forName() one day, but they were too arrogant and now it would never work okay. The solution is to restrict C++ usage.