On Nov 12, 2008, at 10:39 AM, leppie wrote:
PS: I have another nice usage scenario, a running webserver.
There are many usage scenarios that make use of this feature. You can probably explain what you have in mind better than I do, but here is one more. A system may be composed of many libraries. Some libraries are "base" in that they don't change. Some libraries are plugins and have to be installed into the base. The plugin libraries can be loaded, registered with the base libraries, then uninstalled. When newer versions of the plugins arrive, you just load them, register them again, and uninstall them. Of course you have to handle any inconsistencies (if any) between the different versions of the plugins, but it should be doable if you use proper abstractions. My job here is to make it possible to do these things (by guaranteeing that different versions do not stomp on one another in ways that you cannot control for example). Your job would be to make sure that the logic of your application functions properly by choosing the appropriate abstractions and abstraction boundaries. The solution for how to handle the different versions would be different depending on the situation, and it's not for me to decide "the one true way" of doing it. Aziz,,,
