Plugin
|
A plugin (or plug-in) is a computer program that can, or must, interact with another program to provide a certain, usually very specific, function. Typical examples are plugins to display specific graphic formats (e.g., SVG if the browser doesn't support this format natively), to play multimedia files, to encrypt/decrypt email (e.g., PGP), or to filter images in graphic programs. The main program (a web browser or an email client, for example) provides a way for plugins to register themselves with the program, and a protocol by which data is exchanged with plugins.
Plugins are slightly different from extensions, which modify or add to existing functionality. The main difference is that plugins generally run within a sandbox, rely on the main program's user interface, and have a well-defined boundary to their possible set of actions. Extensions generally have less restrictions on their actions, and may provide their own user interfaces. They are sometimes used to decrease the size of the main program and offer optional functions. Mozilla Firefox uses a well-developed extension system to reduce the feature creep that plagued the Mozilla Suite.
Many professional software packages offer plugin APIs to developers, in order to increase the utility of the base product. Examples of these include:
Perhaps the first applications to include a plugin function were HyperCard and QuarkXPress on the Macintosh, both released in 1987. These days, plugins are typically implemented as shared libraries that need to be installed in a standard place where the application will find them. HyperCard supported a similar facility, but it was more common for the plugin code to be included in the HyperCard documents (called stacks) themselves. This way, the HyperCard stack became a self-contained application in its own right, which could be distributed as a single entity that could be run by the user without the need for additional installation steps.
Some small software vendors produce no stand-alone software at all, but plugins for a certain product. In order to make such a position more viable as a business, open APIs are provided to allow application vendors to change their product or go out of business without destroying the cottage industries that grow up around them. Probably the example of an industry built around such APIs is the Adobe Photoshop plugin API, which has also been adopted to some extent by competing applications. Other examples of such APIs include Audio Units and VST.de:Plugin es:Plugin fr:Plugin it:Plugin lv:Spraudnis nl:Plugin ja:プラグイン pl:Wtyczka ro:Plugin ru:Плагин sv:Insticksprogram