Component, Module, Plugin, Template & Language
Joomla! already is a rich featured content management system, but if you're building a website with Joomla! and you need extra features which aren't available in Joomla! by default, you can easily extend it with extensions. There are five types of extensions available for a Joomla! Website.
Components can be considered as mini-applications. A component can add a completely new functionality to your website. Components can vary from search engines to entire shopping cart solutions. Each component is driven by a menu and each menu item runs a component.
You can manage your components through the sub-items of the "Components" menu in your Joomla administrative panel. Each component has two parts - back-end that allows you to configure and manage its content and a front-end that displays your information in the selected way.
Modules are more lightweight extensions that display information on your website. They can be attached to a component like the "Popular" module for example, which is attached to the com_content component and shows the most popular articles in your website.
Modules can display information even if they are not attached to a component. Actually, they can display everything - from static HTML to complex slide shows.
Plugins are usually used to add extra functionality to your website. They are complex extensions that handle different events. For example, plugins can allow you to embed movies to your articles, show tooltips and many other different types of functionalities.
There are many types of plug-ins, some examples are:
A template is basically the design of your Joomla! powered website. With a template you can change the look and feel of your website. Templates have certain fields in which the component (just one) and modules (as many as you like) will be shown.
Templates are easy to build or customize and they provide maximum flexibility in how you style your site.
Languages can be packaged in two ways: either as a core package or as an extension package. In essence, both the core and the extension language package files consist of key/value pairs, which provide the translation of static text strings, assigned within the Joomla! source code.
These language packs will affect both the front and administrator side of your Joomla site. Probably languages are the most basic extensions.