Using frameworks for web development
Frameworks appear in most programming languages and there is often many different types per language. The idea of a framework is to provide a certain structure that the programmer must follow. This structure will usually include functionality that can just be called upon rather than the programmer having to write it from scratch. A lot of this functionality will be based around the mundane or highly replicated programming tasks enabling the programmer to concentrate on the core elements of the software that is being developed.
Frameworks are incredibly useful and can significantly speed up the development process. Due to the programmer having to follow a specific structure the end product should be a lot easier to maintain, have less bugs and use less code.
One major issue with frameworks is the time it takes to learn them. To get the most out of the framework you need to understand its full capabilities and structure which is very time consuming. They are also often limiting if you have not written it yourself and sometimes you will find yourself using part of the framework and then bolting on your own code.
Personally l think frameworks built by someone else should only be used in programming languages that are just supporting the software/ website being built. For example at Bluelinemedia we use the MooTools JavaScript framework. Since we just use JavaScript to provide front end functionality we are happy to use a framework as it saves a lot of time and its functionality is just placed on top of the core code. Also due to the MooTools developers spending a lot of time on all the different functionality the framework provides they have been able to perfect certain aspects. It is not worth spending all the time on recreating that for ourselves when we could just use their framework to get a perfect solution.
In regards to the back end we program the core of the software in PHP & MySQL and since we want to have complete control and understanding of how this works we use our own framework that we have developed over time. Due to developing it ourselves we have been able to create it to just do exactly what we want and we all have an in depth knowledge of how it works making it very easy to update and improve.
A framework is definitely something l would suggest you use although l would write your own one if you plan to use the framework for the core parts of your code.