On 08/15/2014 11:34 PM, Rob Stewart wrote:
What that term implies is based upon one's experience. "Plugin", to me is any dynamically loaded component. The ABI you mention depends entirely upon the ubiquity of the plugin. If it must be usable by many applications and customers, it must have a documented, even standardized, API. Just as easily, however, one can create plugins based solely upon dlopen() (or LoadLibrary()) and friends of the plugins are used only for one application.
My interpretation of a "plugin" is a bit different. Normally a component decides its own interface and the application has to adjust to it. In the opposite case, when an application dictates the interface and the component has to adjust, then it is called a plugin. Dynamically loading is orthogonal to this.