Suppose you're writing an app such as a multiprotocol instant messenger or a mediaplayer that supports multiple container formats and codecs. It's a good idea for your app to have a plug-in functionality, so that plugins could be developed independently and functionality added to the program without the need to recompile the whole thing. On a system that supports dynamic linking this is trivial. On Plan9 I'm not sure how to go about this. Having separate processes interacting with the main one seems somewhat wrong to me (slower, more overhead etc). Perhaps it's better to implement a limited form of dynamic linking, so that modules compiled to load dynamically could be loaded by the application that wants to load them whenever it needs. What do you think?