On Wednesday, 9 January 2013 at 03:05:34 UTC, H. S. Teoh wrote:
I haven't been screaming yet because (so far) I haven't gotten to writing applications that need dynamic loading in D. But I did tell myself that I will be screaming when I do get to it, because it's a pain to have to recompile the entire application just to add a single addon.

Unfortunately for me, I'm getting to that point.


If there's another better way, I'd sure like to know about it!
[...]

Another way, yes. Better, I don't know. You *could* load plugins as separate processes and communicate via some kind of IPC mechanism, like
Unix pipes. But that's a royal pain (requires serialization /
deserialization, with the associated overhead, and a network stack or
equivalent, just to interface with each other).


T

The messaging concept does have some advantages. For example, if your external "plugin" fails for any reason (for example due to a segfault), the rest of your main application can continue operating just fine. There are other advantages, such as distributed processing, but if you can benefit from those advantages depends entirely on what you are attempting to achieve. The simplest use case that gives you a good subset of the main advantages, is through runtime loaded plugins.

In my case, I will making use of both methods, but I really prefer having the plug-in capability to start with.

--rt

Reply via email to