Plug-in (computing)
Mozilla Firefox displaying a list of installed plug-ins
| Look up plug-in or add-on in Wiktionary, the free dictionary. |
In computing, a plug-in (or plugin, add-in, addin, add-on, or addon) is a software component that adds a specific feature to an existing computer program. When a program supports plug-ins, it enables customization.
Web browsers have historically allowed executables as plug-ins, though they are now mostly deprecated. (These are a different type of software module than browser extensions.) Two plug-in examples are the Adobe Flash Player for playing videos and a Java virtual machine for running applets.
A theme or skin is a preset package containing additional or changed graphical appearance details, achieved by the use of a graphical user interface (GUI) that can be applied to specific software and websites to suit the purpose, topic, or tastes of different users to customize the look and feel of a piece of computer software or an operating system front-end GUI (and window managers).
Contents
1 Purpose and examples
2 Mechanism
3 Mozilla definition
4 History
5 See also
6 References
Purpose and examples
Applications support plug-ins for many reasons. Some of the main reasons include:
- to enable third-party developers to create abilities which extend an application
- to support easily adding new features
- to reduce the size of an application
- to separate source code from an application because of incompatible software licenses.
Types of applications and why they use plug-ins:
Audio editors use plug-ins to generate, process or analyze sound. Ardour and Audacity are examples of such editors.
Digital audio workstations (DAWs) use plug-ins to generate sound or process it. Examples include Logic Pro X and ProTools.
Email clients use plug-ins to decrypt and encrypt email. Pretty Good Privacy is an example of such plug-ins.
Video game console emulators often use plug-ins to modularize the separate subsystems of the devices they seek to emulate.[1][2][3][4][5][6][7][8][9][10] For example, the PCSX2 emulator makes use of video, audio, optical, etc. plug-ins for those respective components of the PlayStation 2.
Graphics software use plug-ins to support file formats and process images. (c.f. Photoshop plugin)
Media players use plug-ins to support file formats and apply filters. foobar2000, GStreamer, Quintessential, VST, Winamp, XMMS are examples of such media players.
Packet sniffers use plug-ins to decode packet formats. OmniPeek is an example of such packet sniffers.
Remote sensing applications use plug-ins to process data from different sensor types; e.g., Opticks.
Text editors and Integrated development environments use plug-ins to support programming languages or enhance development process e.g., Visual Studio, RAD Studio, Eclipse, IntelliJ IDEA, jEdit and MonoDevelop support plug-ins. Visual Studio itself can be plugged into other applications via Visual Studio Tools for Office and Visual Studio Tools for Applications.
Web browsers have historically used executables as plug-ins, though they are now mostly deprecated. Examples include Adobe Flash Player, Java SE, QuickTime, Microsoft Silverlight and Unity. (Contrast this with browser extensions, which are a separate type of installable module still widely in use.)
Mechanism
Example Plug-In Framework
The host application provides services which the plug-in can use, including a way for plug-ins to register themselves with the host application and a protocol for the exchange of data with plug-ins. Plug-ins depend on the services provided by the host application and do not usually work by themselves. Conversely, the host application operates independently of the plug-ins, making it possible for end-users to add and update plug-ins dynamically without needing to make changes to the host application.[11][12]
Programmers typically implement plug-in functionality using shared libraries, which get dynamically loaded at run time, installed in a place prescribed by the host application. HyperCard supported a similar facility, but more commonly included the plug-in code in the HyperCard documents (called stacks) themselves. Thus the HyperCard stack became a self-contained application in its own right, distributable as a single entity that end-users could run without the need for additional installation-steps. Programs may also implement plugins by loading a directory of simple script files written in a scripting language like Python or Lua.
Mozilla definition
In Mozilla Foundation definitions, the words "add-on", "extension" and "plug-in" are not synonyms. "Add-on" can refer to anything that extends the functions of a Mozilla application. Extensions comprise a subtype, albeit the most common and the most powerful one. Mozilla applications come with integrated add-on managers that, similar to package managers, install, update and manage extensions. The term, "Plug-in", however, strictly refers to NPAPI-based web content renderers. Plug-ins are being deprecated.[13]
History
Plug-ins appeared as early as the mid 1970s, when the EDT text editor running on the Unisys VS/9 operating system using the UNIVAC Series 90 mainframe computers provided the ability to run a program from the editor and to allow such a program to access the editor buffer, thus allowing an external program to access an edit session in memory.[14] The plug-in program could make calls to the editor to have it perform text-editing services upon the buffer that the editor shared with the plug-in. The Waterloo Fortran compiler used this feature to allow interactive compilation of Fortran programs edited by EDT.
Very early PC software applications to incorporate plug-in functionality included HyperCard and QuarkXPress on the Macintosh, both released in 1987. In 1988, Silicon Beach Software included plug-in functionality in Digital Darkroom and SuperPaint, and Ed Bomke coined the term plug-in.[citation needed]
See also
- Applet
- Browser extension
References
^ "PCSX2 - The Playstation 2 emulator - Plugins". pcsx2.net. Retrieved 2018-06-10..mw-parser-output cite.citation{font-style:inherit}.mw-parser-output .citation q{quotes:"""""""'""'"}.mw-parser-output .citation .cs1-lock-free a{background:url("//upload.wikimedia.org/wikipedia/commons/thumb/6/65/Lock-green.svg/9px-Lock-green.svg.png")no-repeat;background-position:right .1em center}.mw-parser-output .citation .cs1-lock-limited a,.mw-parser-output .citation .cs1-lock-registration a{background:url("//upload.wikimedia.org/wikipedia/commons/thumb/d/d6/Lock-gray-alt-2.svg/9px-Lock-gray-alt-2.svg.png")no-repeat;background-position:right .1em center}.mw-parser-output .citation .cs1-lock-subscription a{background:url("//upload.wikimedia.org/wikipedia/commons/thumb/a/aa/Lock-red-alt-2.svg/9px-Lock-red-alt-2.svg.png")no-repeat;background-position:right .1em center}.mw-parser-output .cs1-subscription,.mw-parser-output .cs1-registration{color:#555}.mw-parser-output .cs1-subscription span,.mw-parser-output .cs1-registration span{border-bottom:1px dotted;cursor:help}.mw-parser-output .cs1-ws-icon a{background:url("//upload.wikimedia.org/wikipedia/commons/thumb/4/4c/Wikisource-logo.svg/12px-Wikisource-logo.svg.png")no-repeat;background-position:right .1em center}.mw-parser-output code.cs1-code{color:inherit;background:inherit;border:inherit;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;font-size:100%}.mw-parser-output .cs1-visible-error{font-size:100%}.mw-parser-output .cs1-maint{display:none;color:#33aa33;margin-left:0.3em}.mw-parser-output .cs1-subscription,.mw-parser-output .cs1-registration,.mw-parser-output .cs1-format{font-size:95%}.mw-parser-output .cs1-kern-left,.mw-parser-output .cs1-kern-wl-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right,.mw-parser-output .cs1-kern-wl-right{padding-right:0.2em}
^ Bernert, Pete. "Pete's PSX GPU plugins". www.pbernert.com. Retrieved 2018-06-10.
^ Team, Demul. "DEMUL - Sega Dreamcast Emulator for Windows". demul.emulation64.com. Retrieved 2018-06-10.
^ "Android Emulator Plugin - Jenkins - Jenkins Wiki". wiki.jenkins.io. Retrieved 2018-06-10.
^ "KDE/dolphin-plugins". GitHub. Retrieved 2018-06-10.
^ "Cemu Plugin Loader Makes It Easy To Load In DLL Plugins". One Angry Gamer. 2017-07-14. Retrieved 2018-06-10.
^ "OpenEmu/SNES9x-Core". GitHub. Retrieved 2018-06-10.
^ "Recommended N64 Plugins". Emulation General Wiki. Retrieved 2018-06-10.
^ "Playstation plugins & utilities!". www.emulator-zone.com. Retrieved 2018-06-10.
^ "PS3 Homebrew Apps / Plugins / Emulators | PSX-Place". www.psx-place.com. Retrieved 2018-06-10.
^ Mozilla Firefox plugins – Description of the difference between Mozilla Firefox plugins and extensions under the general term add-on.
^ Wordpress Plug-in API – Description of the Wordpress Plug-in architecture.
^ Paul, Ian. "Firefox will stop supporting plugins by end of 2016, following Chrome's lead". PCWorld. IDG. Retrieved 20 October 2016.
^ EDT Text Editor Reference Manual, Cinnaminson, New Jersey: Unisys Corporation, 1975

Comments
Post a Comment