In the author's experience, the most painful of the compromises with dynamic loading is access to vendor-provided libraries. Most of the extensions that have been good candidates for dynamic loading are interfaces to application codes, database managers, communication programs, mathematical libraries, and the like. Unfortunately, as we have seen, the various platforms generally require special compilation options for dynamically-loaded code, and most vendors do not supply the libraries in this form. In this way, new widget sets and the like can be readily loaded. Similarly, interfaces to publicly-available components are easy to build.
Proprietary components present more of a problem.
Special techniques are needed if extensions want to share code in common, because many systems forbid attempts to load the same code twice, and loading the same code twice on others results in loading multiple copies - with unpredictable results. Gnu dld, and the CenterLine product on the HP platform, provide this functionality for dynamically loaded code. None of the other platforms even make it possible. Miscellaneous issues Other sticky points have been noted from time to time. Continue with Section 5.