Nowadays programs can often be expanded or modified in terms of their functions. You use plugins or addons for this – everyone has heard that before, but what exactly is it? And how is that implemented technically?
Plugins: Best Known In The Browser
Nowadays a lot takes place in the browser so that program is also the one where you are most likely to encounter extensions, plugins, addons, or whatever you want to call the structure. Chrome can be expanded in its functions via plugins. This is interesting for all those who want to do more than just browse the web. There are plenty of extensions for developers, but normal users will also get their money’s worth. Common examples are password managers, who can fill in a username and password directly, or the Google Office suite, which allows you to work without an active Internet connection.
Also In Other Programs
Not only browsers are expanded with plugins. The concept is actually quite old and is mainly used for programs that have to deal with different file formats. The best example: Microsoft Word or Adobe Photoshop. The former should also be able to read foreign formats, which was especially important in the past when Hinz and Kunz still offered word processing programs. The latter should also be able to cope with RAW files and they are different for each camera model, so plugins have to be found in order to retrofit the function. Or new effects that are also realized in the same way.
How Does This Work?
Programs that can be expanded with plugins offer an interface. It intervenes in certain functional processes. This allows a plugin to modify or expand its functions. In the Photoshop example with the RAW files, this would be in the import module when opening a file. The nice thing about this concept is that the developer only has to document the plugin interface, while the plugin developer does not need any other source code.
The interface defines how the plugin has to function roughly, which data is provided and which is expected as a response. Because, for example, to open a foreign file, the plug-in must return a data structure that the main program also understands.
With the interface, the developer has it in hand, which in principle can be expanded or even changed. If the interface is only available for data import and export, nothing else can be changed. In principle, there is of course the risk that a plugin developer could exploit his own power and render the program unusable or incorporate malicious functions. More modern plug-in concepts, therefore, go the way of checking their add-ons for plausibility and, if necessary, asking the user whether all the accesses are clear. This is particularly common with browser extensions.