It's an interesting question that I've been pondering over the last few weeks.
What is a joomla extension?
When does an extension become an application?
When you browse the list of available extensions for joomla at JED I think it's clear to see that there are three types of extension available. (And no, I do not mean components, modules and plugins.)
- Eye Candy
e.g. Frontpage Slideshow
- Additional Functionality
e.g. Phil Taylor's Forms For Joomla 1.5.x
e.g. Jomres Booking Management System
Eye Candy extensions are not essential to your site but they can be the difference between a plain boring site and one that grabs the users attention.
The main caveat is to avoid the tendency to include every "cool" extension you have ever seen to your site. This will create a site that is so busy your users will be distracted from its main focus.
Extensions that add Additional Functionality can be essential to your site as they provide the key functions missing from a standard joomla install such as form generators, galleries and calendars.
They will transform your site from a text rich site to a truly dynamic and interactive site that will grab your users attention and help them to get the most from your site.
The danger here is that you don't spend the time to visually style these extensions so that they appear to be part of your site and not something bolted on afterwards.
The final category of extensions, Applications are different. In general these sit on top of joomla and use it as a framework in the same way that Microsoft Word uses Windows as an operating system.
By sitting on top of joomla the developer has been able to concentrate on the applications functionality without concerning themselves with boring things like database connectivity, user management and site design.
In theory it is possible to strip joomla down to a base framework that a developer can build their own applications upon. That was one of the many original goals of Joomla! 1.5 but it didn't quite happen like that so developers build on top of the full joomla cms rather than just use the framework.